题目:
分析:
取余就ok!!!
代码:
class Solution {
public:
int maximumScore(vector<int>& nums, vector<int>& m) {
vector<int> v(m.size()+1,0);
vector<vector<int> > vv(m.size()+1,v);
//初始化
for(int i=1;i<=m.size();i++) vv[i][0]=vv[i-1][0]+m[i-1]*nums[i-1];
for(int i=1;i<=m.size();i++) vv[0][i]=vv[0][i-1]+m[i-1]*nums[nums.size()-i];
//dp
for(int i=1;i<=m.size();i++)
for(int j=1;j<=m.size()-i;j++)
vv[i][j]=max(vv[i-1][j]+m[i+j-1]*nums[i-1],vv[i][j-1]+m[i+j-1]*nums[nums.size()-j]);
int ans=-(1<<30);
for(int i=0;i<=m.size();i++)
ans=max(ans,vv[i][m.size()-i]);
return ans;
}
};