http://acm.hdu.edu.cn/showproblem.php?pid=2571

127 篇文章 0 订阅

动态规划水题。。坑爹的是要注意边界条件。。

#include<stdio.h>  
#include<string.h>  
int n,num[25][1024],m;  
int main( )  
{  
int t;  
scanf( "%d",&t );  
 while( t-- )  
{  
	scanf( "%d%d",&n,&m );  
       for( int i = 1; i <= n; ++i )  
           for( int j = 1; j <= m; ++j )  
             scanf( "%d",&num[i][j] );  
	   for( int i = n; i; --i )  
            for( int j = m; j; --j )  
             {if(i==n&&j==m) continue;
		        int max=-11111;
				if(i<n) 
					if(max<num[i+1][j]) max=num[i+1][j];
				if(j<m)
					if(max<num[i][j+1]) max=num[i][j+1];
				int c=2*j;
				while(c<=m)
				{
					if(num[i][c]>max) max=num[i][c];
					c+=j;
				}
				num[i][j]+=max;
		  }
 printf( "%d\n",num[1][1] );  
}  return 0;  
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值