解题思路:
注意事项:
参考代码:
#include<cstdio> #include<cstring> #define max(u,v) u>v ? u:v #define min(u,v) u<v ? u:v int n,m,x,a[1001],fmax[1001][1001],fmin[1001][1001]; int maxx=-999999999,minn=999999999; int main() { scanf("%d%d",&n,&m); memset(fmin,127,sizeof(fmin)); for(int i=1;i<=n*2;i++) fmin[i][i]=0; for(int i=1;i<=n;i++) { scanf("%d",&x); a[i]=a[i-1]+x; } for(int i=n+1;i<=2*n-1;i++) a[i]=a[i-n]+a[n]; for(int l=1;l<=n;l++) for(int i=1;i<=n-l;i++) { int j=l+i; for(int k=i;k<j;k++) { fmax[i][j]=max(fmax[i][j],fmax[i][k]+fmax[k+1][j]+a[j]-a[i-1]); fmin[i][j]=min(fmin[i][j],fmin[i][k]+fmin[k+1][j]+a[j]-a[i-1]); } } for(int i=1;i<=n;i++) { if(minn>fmin[i][i+n-1]) minn=fmin[i][i+n-1]; if(maxx<fmax[i][i+n-1]) maxx=fmax[i][i+n-1]; } if(m>maxx) printf("It is easy\n"); else if(m<minn) printf("I am..Sha...X\n"); else printf("I will go to play WarIII\n"); return 0; }
0.0分
2 人评分
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:2498 |
Biggest Number (C++代码)回溯法浏览:1676 |
时间转换 (Java代码)浏览:617 |
C语言训练-最大数问题 (C语言代码)浏览:648 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:932 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:577 |
大神老白 (C语言代码)浏览:690 |
简单的for循环浏览:1495 |
简单的a+b (C语言代码)浏览:674 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:512 |