思路:简单dp,dp【n】=dp[i-j]*dp[j]的最大值,注意dp[n]的初始不能是n因为它必须分一块
class Solution {
vector<long long> dp=vector<long long> (60,0);
public:
int cuttingRope(int n) {
for(int i=1;i<=n;i++){
if(i!=n) dp[i]=i;
for(int j=1;j<i;j++){
dp[i]=max(dp[i],dp[i-j]*dp[j]);
}
}
return dp[n];
}
};