一道C语言动态规划题
描述
假设有一张n*n个方格的棋盘以及一个棋子.必须根据以下的规则把棋子从棋盘的底边移动到棋盘的顶边.在每一步你可以把棋子移动到三个方格中的一个:
1) 正上方的方格
2) 左上方的方格(只能当这个棋子不在最左列的时候)
3) 右上方的方格(只能当这个棋子不在最右列的时候)
每移动到一个方格就会得到相应方格内的钱.棋子可以从棋盘的底边的上的任意一个方格开始移动,到棋盘顶边的任意一个方格结束.请你给出一种算法,使得这个棋子按上述规则移动而等到尽可能多的钱.
输入
第一行一个整数T,表示有 T组测试数据:
对于每组测试数据:第一行一个整数 n (nb)
m=a;
else
m=b;
if(mb)
m=a;
else
m=b;
return m;
}
main()
{
int m,n,a[100][100],f[100][100],i,j;
scanf(%d,&n);
while(n--)
{
scanf(%d,&m);
for(i=0;i
一道C语言动态规划题描述 假设有一张n*n个方格的棋盘以及一个棋子.必须根据以下的规则把棋子从棋盘的底边移动到棋盘的顶边
答案:1 悬赏:30 手机版
解决时间 2021-08-20 17:08
- 提问者网友:星軌
- 2021-08-19 17:33
最佳答案
- 五星知识达人网友:蕴藏春秋
- 2021-08-19 18:30
#include
#include
using namespace std;
int a[101][101],f[101][101],n,T;
int maxi(int a,int b,int c)
{
if(aT;
for(;T;T--)
{
cin>>n;
memset(a,0,sizeof(a));
memset(f,0,sizeof(f));
for(int i=1;ia[i][j],j++);
//f[i][j]=max{f[i+1][j-1],f[i+1][j],f[i+1][j+1]}+a[i][j],1
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯