以前做感觉非常难,现在发现我竟然能独立做普及组的题目了
代码:
1 #include2 #include 3 #include 4 using namespace std; 5 int n,m,p; 6 int f[1001],val[1001][1001],cst[1001]; 7 int main() 8 { 9 cin>>n>>m>>p;10 memset(f,128,sizeof(f));11 for(int i=1;i<=n;i++)12 for(int j=1;j<=m;j++)13 cin>>val[i][j];14 for(int i=1;i<=n;i++) cin>>cst[i];15 f[0]=0;16 for(int i=1;i<=m;i++)17 for(int j=1;j<=n;j++)18 {19 int id=j-1;if(!id) id=n;20 int v=val[id][i];21 for(int k=1;k<=p;k++)22 {23 if(i-k<0) break;24 f[i]=max(f[i],f[i-k]+v-cst[id]);25 id--;if(!id) id=n;26 v+=val[id][i-k];27 } 28 }29 cout< <