记录编号 42643 评测结果 AAAAAAAAAA
题目名称 [NOIP 2010冲刺六]数列游戏 最终得分 100
用户昵称 Gravatar苏轼 是否通过 通过
代码语言 C++ 运行时间 0.033 s
提交时间 2012-09-27 19:32:00 内存使用 5.59 MiB
显示代码纯文本
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstdlib>
  4. using namespace std;
  5. int n,w[1005]={0};
  6. int q[1005][1005]={0};
  7. int main()
  8. {
  9. freopen ("seqgame.in","r",stdin);
  10. freopen ("seqgame.out","w",stdout);
  11. cin>>n;
  12. for (int i=1;i<=n;i++)
  13. {
  14. cin>>w[i];
  15. if (w[i]==i)
  16. {
  17. q[i][0]=q[i-1][0]+1;
  18. }
  19. else
  20. {
  21. q[i][0]=q[i-1][0];
  22. }
  23. }
  24. for (int i=1;i<=n;i++)
  25. {
  26. for (int j=0;j<=i;j++)
  27. {
  28. q[i][j]=q[i-1][j];
  29. if (w[i]==i-j)
  30. {
  31. q[i][j]=max(q[i][j],q[i-1][j]+1);
  32. }
  33. q[i][j]=max(q[i][j],q[i-1][j-1]);
  34. }
  35. }
  36. int answer=0;
  37. for (int i=0;i<=n;i++)
  38. {
  39. if (q[n][i]>answer)
  40. answer=q[n][i];
  41. }
  42. cout<<answer;
  43. return 0;
  44. }