ps : rp 巨差 , 调试半天 … 写得太受挫了哭泣的脸

初始化是不是写得太麻烦了呢?

   1:  #include <iostream>
   2:   
   3:  using namespace std;
   4:  int f[1005],ans[1005][35][2];
   5:  int main()
   6:  {
   7:      int n,m;
   8:      cin>>n>>m;
   9:      int a=0;
  10:      for(int i=0;i<n;i++){
  11:           cin>>f[i];
  12:           if(f[i]==1)
  13:           {
  14:               a++;
  15:               ans[i][0][0]=a;
  16:               ans[i][0][1]=0;
  17:           }
  18:           else
  19:           {
  20:               ans[i][0][0]=a;
  21:               ans[i][0][1]=0;
  22:           }
  23:      }
  24:      if(f[0]==1)
  25:      for(int i=1;i<=m;i++)
  26:      {
  27:          ans[0][i][0]=1;
  28:          ans[0][i][1]=1;
  29:      }
  30:      else
  31:      for(int i=1;i<=m;i++)
  32:      {
  33:          ans[0][i][0]=0;
  34:          ans[0][i][1]=1;
  35:      }
  36:      for(int i=1;i<n;i++)
  37:      for(int j=1;j<=m;j++)
  38:      {
  39:          for(int k=0;k<=1;k++)
  40:          {
  41:              int d=0;
  42:              ans[i][j][k]=ans[i-1][j][k];
  43:              if(f[i]-1==k) d=1;
  44:              ans[i][j][k]=max(ans[i][j][k]+d,ans[i-1][j-1][(k+1)%2]+d);
  45:          }
  46:      }
  47:      cout<<max(ans[n-1][m][0],ans[n-1][m][1])<<endl;
  48:      return 0;
  49:  }
 posted on 2011-05-02 20:26  eth0  阅读(142)  评论(0编辑  收藏  举报