Submission #1214234

#TimeUsernameProblemLanguageResultExecution timeMemory
1214234salmonChorus (JOI23_chorus)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h> using namespace std; int N, K; long long int memo[510][510]; long long int pre[510][510]; int in[1100]; int bin[1100]; string s; long long int inf = 1.1e18; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cin >> N >> K; cin >> s; int a = 1; int b = 1; for(int i = 0; i < N * 2; i++){ if(s[i] == 'A'){ in[i] = a; bin[a] = b; a++; } else{ in[i] = b; b++; } } for(int i = 1; i <= N; i++){ pre[i][i - 1] = 0; for(int j = i; j <= N; j++){ pre[i][j] = pre[i][j - 1] + max(0,bin[j] - j + 1); } } for(int i = 0; i <= N; i++){ for(int j = 0; j <= K; j++){ memo[i][j] = inf; } } for(int i = 0; i <= K; i++){ memo[0][i] = 0; } for(int i = 1; i <= N; i++){ for(int j = 1; j <= K; j++){ for(int k = i; k >= 1; k--){ memo[i][j] = min(memo[i][j], memo[k - 1][j - 1] + pre[k][i]); } } } for(int i = 1; i <= N; i++){ } printf("%lld",memo[N][K]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...