LeetCode Biweekly Contest 22
問題文
省略
省略
C++に変換後のコードはこちら
#define main dummy_main
{}
#undef main
int N, A[1000];
int dp[1000][1000];
int solve(int a, int b){
int res = 0;
if(a > b) return 0;
if(a >= N) (a, b) -= N;
if(dp[a][b] >= 0) return dp[a][b];
rep(i,3,b-a,3) res >?= solve(a, a+i-1) + solve(a+i, b);
rep(i,a+1,b,3) res >?= A[i] + solve(a+1, i-1) + solve(i+1, b-1);
return dp[a][b] = res;
}
class Solution {
public:
int maxSizeSlices(vector<int>& slices) {
int res = -1;
N = slices.size();
rep(i,2N) A[i] = slices[i % N];
rep(i,2N) rep(j,2N) dp[i][j] = -1;
rep(i,N) res >?= solve(i, i+N-1);
return res;
}
};
Current time: 2024年04月25日02時38分24秒
Last modified: 2020年03月29日02時38分42秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る
Logged in as: unknown user (not login)