#include<bits/stdc++.h> using namespace std; int main(void) { int i,j,t,n,nmin,cnt; vector <int> dp,num; //dp表示到第i个绳子所能承受的最大重量 while(t--) { cin>>n; num.resize(n); dp.resize(n); for(i=0;i<n;++i) cin>>num[i]; dp[0]=num[0]; for(i=1;i<n;++i) { cnt=0;nmin=num[i]; for(j=i;j>=0;j--) { ++cnt; if(nmin>num[i]) nmin=num[i]; dp[i]=max(dp[i],cnt*nmin); } dp[i]=max(dp[i],dp[i-1]); } cout<<dp[n-1]<<endl; dp.clear(); num.clear(); } } |
Double click to view unformatted code.