数组分组(计蒜客)
Posted caxi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组分组(计蒜客)相关的知识,希望对你有一定的参考价值。
标准的动态规划的问题,先求出,任意两个数之间的余数,再调用动态规划即可得出。
#include<iostream> #include<math.h> using namespace std; int s[1000][1000]; int dp[1005]; int main() { int n; cin>>n; for(int i=1;i<=n;i++) { cin>>s[i][i]; } for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) { s[i][j]=s[i][j-1]*s[j][j]%1000; } dp[0]=0; dp[1]=s[1][1]; for(int i=2;i<=n;i++) for(int j=0;j<i;j++) { dp[i]=max(dp[i],dp[j]+s[j+1][i]); } cout<<dp[n]<<endl; return 0; }
以上是关于数组分组(计蒜客)的主要内容,如果未能解决你的问题,请参考以下文章