±³¾°£º1Y£¬01±³°ü¶à¼ÓÁËÒ»¸öÌôѡѻ·¶øÒÑ¡£
·Ö×é±³°üµÄµäÐÍÃèÊö£º¶ÔÓںܶ౳°ü£¬°ÑËü·ÖΪk¸ö×飬ÿ¸ö×éÄÚµÄ×éÔ±ÊÇÏ໥³åÍ»µÄ£¬ËùÒÔÖ»ÄÜÑ¡ÔñÒ»¸ö¡£
ÎҵĴúÂ룺
#include#include #include using namespace std; int main(void){ int n,m; while(scanf("%d%d",&n,&m),n*n+m*m){ int c[n][m],F[101]; memset(F,0,sizeof(F)); for(int i=0;i < n;i++) for(int j=0;j < m;j++) scanf("%d",&c[i][j]); for(int i=0;i < n;i++){ for(int j=m;j >= 1;j--){ for(int k=0;k < m;k++){ if(k+1 <= j) F[j]=max(F[j],F[j-k-1]+c[i][k]); } } } printf("%d\n",F[m]); } return 0; }