提出 #68602306
ソースコード 拡げる
#include <string> #pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include <bits/stdc++.h> using namespace std; using lint = long long int; using P = pair<int, int>; using PL = pair<lint, lint>; #define FOR(i, begin, end) for(int i=(begin),i##_end_=(end);i<i##_end_;i++) #define IFOR(i, begin, end) for(int i=(end)-1,i##_begin_=(begin);i>=i##_begin_;i--) #define REP(i, n) FOR(i,0,n) #define IREP(i, n) IFOR(i,0,n) #define ALL(a) (a).begin(),(a).end() constexpr int MOD = 1000000007; vector<lint> RH_B = {1532834020, 1388622299}; vector<lint> RH_M = {2147482409, 2147478017}; constexpr int INF = 2147483647; void yes(bool expr) {cout << (expr ? "Yes" : "No") << "\n";} template<class T>void chmax(T &a, const T &b) { if (a<b) a=b; } template<class T>void chmin(T &a, const T &b) { if (b<a) a=b; } int N, K; int solve(vector<int> &cycle) { int L = cycle.size(); REP(i, L) cycle.push_back(cycle[i]); vector<int> cumsum(L*2+1, 0); REP(i, L*2) { cumsum[i+1] = cumsum[i] + cycle[i]; } vector<int> next(L*2+1, -1); REP(i, L*2) { FOR(j, i+1, L*2+1) { if ((cumsum[j] - cumsum[i]) % N == 0) { next[i] = j; break; } } } vector<vector<int>> dp(L, vector<int>(L+1)); REP(i, L) dp[i][1] = 0; FOR(j, 2, L+1) REP(i, L) { int r = i + j - 1; FOR(k, 1, j) { int i2 = i + k; chmax(dp[i][j], dp[i][k] + dp[i2%L][j-k] + (next[i] == i2)); if(next[i] == i2) break; } } int ret = 0; REP(i, L) chmax(ret, dp[i][L]); return ret; } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> N >> K; vector<int> P(N*K); REP(i, N*K) { cin >> P[i]; P[i]--; } vector<vector<int>> cycles; vector<bool> used(N*K, false); REP(i, N*K) { if (used[i]) continue; vector<int> cycle; int cur = i; while (!used[cur]) { used[cur] = true; int dist = P[cur] - cur; dist = (dist + N*K) % N; cycle.push_back(dist); cur = P[cur]; } cycles.push_back(cycle); } int ans = 0; for (auto &cycle : cycles) { ans += solve(cycle); } cout << ans << "\n"; }
提出情報
提出日時 | |
---|---|
問題 | B - Sort Permutation |
ユーザ | Shun_PI |
言語 | C++ 20 (gcc 12.2) |
得点 | 0 |
コード長 | 2243 Byte |
結果 | WA |
実行時間 | 2214 ms |
メモリ | 101200 KiB |
コンパイルエラー
Main.cpp: In function ‘int solve(std::vector<int>&)’: Main.cpp:44:9: warning: unused variable ‘r’ [-Wunused-variable] 44 | int r = i + j - 1; | ^
ジャッジ結果
セット名 | Sample | All | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
得点 / 配点 | 0 / 0 | 0 / 800 | ||||||||
結果 |
|
|
セット名 | テストケース |
---|---|
Sample | 01-sample-01.txt, 01-sample-02.txt, 01-sample-03.txt |
All | 01-sample-01.txt, 01-sample-02.txt, 01-sample-03.txt, 02-small-01.txt, 02-small-02.txt, 02-small-03.txt, 02-small-04.txt, 02-small-05.txt, 02-small-06.txt, 02-small-07.txt, 02-small-08.txt, 02-small-09.txt, 02-small-10.txt, 02-small-11.txt, 02-small-12.txt, 02-small-13.txt, 02-small-14.txt, 02-small-15.txt, 02-small-16.txt, 03-random-01.txt, 03-random-02.txt, 03-random-03.txt, 03-random-04.txt, 03-random-05.txt, 04-large-01.txt, 04-large-02.txt, 04-large-03.txt, 04-large-04.txt, 04-large-05.txt, 05-id-01.txt, 05-id-02.txt, 05-id-03.txt, 05-id-04.txt, 06-large-cycle-01.txt, 06-large-cycle-02.txt, 06-large-cycle-03.txt, 06-large-cycle-04.txt, 06-large-cycle-05.txt, 07-large-cycle-2-01.txt, 07-large-cycle-2-02.txt, 07-large-cycle-2-03.txt, 07-large-cycle-2-04.txt, 07-large-cycle-2-05.txt, 08-divide-01.txt, 08-divide-02.txt, 08-divide-03.txt, 08-divide-04.txt, 08-divide-05.txt, 09-large-ans-01.txt, 09-large-ans-02.txt, 09-large-ans-03.txt, 09-large-ans-04.txt, 09-large-ans-05.txt |
ケース名 | 結果 | 実行時間 | メモリ |
---|---|---|---|
01-sample-01.txt | AC | 1 ms | 3372 KiB |
01-sample-02.txt | AC | 1 ms | 3428 KiB |
01-sample-03.txt | AC | 1 ms | 3472 KiB |
02-small-01.txt | AC | 1 ms | 3468 KiB |
02-small-02.txt | AC | 1 ms | 3488 KiB |
02-small-03.txt | AC | 1 ms | 3424 KiB |
02-small-04.txt | AC | 1 ms | 3392 KiB |
02-small-05.txt | AC | 1 ms | 3472 KiB |
02-small-06.txt | AC | 1 ms | 3424 KiB |
02-small-07.txt | AC | 1 ms | 3480 KiB |
02-small-08.txt | AC | 1 ms | 3476 KiB |
02-small-09.txt | AC | 1 ms | 3448 KiB |
02-small-10.txt | AC | 1 ms | 3484 KiB |
02-small-11.txt | AC | 1 ms | 3528 KiB |
02-small-12.txt | AC | 1 ms | 3480 KiB |
02-small-13.txt | AC | 1 ms | 3528 KiB |
02-small-14.txt | AC | 1 ms | 3388 KiB |
02-small-15.txt | AC | 1 ms | 3532 KiB |
02-small-16.txt | AC | 1 ms | 3424 KiB |
03-random-01.txt | TLE | 2208 ms | 15952 KiB |
03-random-02.txt | TLE | 2209 ms | 21356 KiB |
03-random-03.txt | AC | 2 ms | 3496 KiB |
03-random-04.txt | AC | 73 ms | 3832 KiB |
03-random-05.txt | WA | 1875 ms | 8092 KiB |
04-large-01.txt | TLE | 2208 ms | 15652 KiB |
04-large-02.txt | TLE | 2208 ms | 14360 KiB |
04-large-03.txt | TLE | 2209 ms | 21136 KiB |
04-large-04.txt | TLE | 2210 ms | 36668 KiB |
04-large-05.txt | TLE | 2209 ms | 20732 KiB |
05-id-01.txt | AC | 2 ms | 3668 KiB |
05-id-02.txt | AC | 2 ms | 3656 KiB |
05-id-03.txt | AC | 2 ms | 3776 KiB |
05-id-04.txt | AC | 2 ms | 3652 KiB |
06-large-cycle-01.txt | TLE | 2213 ms | 101200 KiB |
06-large-cycle-02.txt | TLE | 2212 ms | 82588 KiB |
06-large-cycle-03.txt | TLE | 2213 ms | 93836 KiB |
06-large-cycle-04.txt | TLE | 2210 ms | 50716 KiB |
06-large-cycle-05.txt | TLE | 2213 ms | 98488 KiB |
07-large-cycle-2-01.txt | TLE | 2209 ms | 21248 KiB |
07-large-cycle-2-02.txt | TLE | 2211 ms | 68232 KiB |
07-large-cycle-2-03.txt | TLE | 2213 ms | 86052 KiB |
07-large-cycle-2-04.txt | TLE | 2208 ms | 14944 KiB |
07-large-cycle-2-05.txt | TLE | 2212 ms | 72004 KiB |
08-divide-01.txt | AC | 5 ms | 3640 KiB |
08-divide-02.txt | AC | 116 ms | 3704 KiB |
08-divide-03.txt | AC | 4 ms | 3532 KiB |
08-divide-04.txt | AC | 9 ms | 3564 KiB |
08-divide-05.txt | AC | 4 ms | 3496 KiB |
09-large-ans-01.txt | TLE | 2210 ms | 42516 KiB |
09-large-ans-02.txt | AC | 927 ms | 10924 KiB |
09-large-ans-03.txt | TLE | 2214 ms | 57624 KiB |
09-large-ans-04.txt | TLE | 2209 ms | 25780 KiB |
09-large-ans-05.txt | AC | 1254 ms | 14384 KiB |