记录编号 248412 评测结果 AAAAA
题目名称 石子合并(加强版) 最终得分 100
用户昵称 Gravatar水墨青花 是否通过 通过
代码语言 C++ 运行时间 0.840 s
提交时间 2016-04-10 14:20:05 内存使用 61.39 MiB
显示代码纯文本
  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<cmath>
  5.  
  6. using namespace std;
  7.  
  8. void Read();
  9. void Work();
  10.  
  11. int a[4001];
  12. int f[4001][4001];
  13. int n;
  14.  
  15. int main()
  16. {
  17. freopen("stone3.in","r",stdin);
  18. freopen("stone3.out","w",stdout);
  19. memset(a,0,sizeof(a));
  20. memset(f,0,sizeof(f));
  21. Read();
  22. Work();
  23. fclose(stdin);
  24. fclose(stdout);
  25. return 0;
  26. }
  27.  
  28. void Read()
  29. {
  30. scanf("%d",&n);
  31. for(int i=1;i<=n;i++)
  32. {
  33. scanf("%d",&a[i]);
  34. a[i+n]=a[i];
  35. }
  36. for(int i=1;i<=n*2;i++)
  37. {
  38. a[i]+=a[i-1];
  39. }
  40. }
  41.  
  42. void Work()
  43. {
  44. for(int d=2;d<=n;d++)
  45. {
  46. for(int i=1;i<=n*2-d+1;i++)
  47. {
  48. int j=i+d-1;
  49. f[i][j]=max(f[i+1][j],f[i][j-1])+a[j]-a[i-1];
  50. }
  51. }
  52. int maxn=0;
  53. for(int i=1;i<=n;i++)
  54. {
  55. maxn=max(maxn,f[i][i+n-1]);
  56. }
  57. printf("%d",maxn);
  58. }
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.