提出 #68600542


ソースコード 拡げる

//  ↘ ⬇ ⬇ ⬇ ⬇ ⬇ ↙
//  ➡ @roadfromroi ⬅
//  ↗ ⬆ ⬆ ⬆ ⬆ ⬆ ↖
/*
░░░░░░░█▐▓▓░████▄▄▄█▀▄▓▓▓▌█
░░░░░▄█▌▀▄▓▓▄▄▄▄▀▀▀▄▓▓▓▓▓▌█
░░░▄█▀▀▄▓█▓▓▓▓▓▓▓▓▓▓▓▓▀░▓▌█
░░█▀▄▓▓▓███▓▓▓███▓▓▓▄░░▄▓▐█▌
░█▌▓▓▓▀▀▓▓▓▓███▓▓▓▓▓▓▓▄▀▓▓▐█
▐█▐██▐░▄▓▓▓▓▓▀▄░▀▓▓▓▓▓▓▓▓▓▌█▌
█▌███▓▓▓▓▓▓▓▓▐░░▄▓▓███▓▓▓▄▀▐█
█▐█▓▀░░▀▓▓▓▓▓▓▓▓▓██████▓▓▓▓▐█
▌▓▄▌▀░▀░▐▀█▄▓▓██████████▓▓▓▌█▌
▌▓▓▓▄▄▀▀▓▓▓▀▓▓▓▓▓▓▓▓█▓█▓█▓▓▌█▌
█▐▓▓▓▓▓▓▄▄▄▓▓▓▓▓▓█▓█▓█▓█▓▓▓▐█ йоу
 */
#include <iostream>
#include "queue"
#include "vector"
#include "algorithm"
#include "numeric"
#include "climits"
#include "iomanip"
#include "bitset"
#include "cmath"
#include "map"
#include "deque"
#include "array"
#include "set"
#include "random"
#ifndef __APPLE__
#include "bits/stdc++.h"
#endif
#define all(x) x.begin(), x.end()
using namespace std;

int N;
void upd(int &a, int b) {
    a = max(a, b);
}
int calc(vector<int> a, int k) {
    int n = a.size();
    vector<int> ind(N, -1);
    for (int i = 0; i < n; ++i) {
        a.push_back(a[i]);
        ind[a[i]] = i;
        //cout << a[i] << ' ';
    }
    //cout << '\n';
    vector<vector<int>> dp(n, vector<int>(n));
    for (int len = 1; len < n; ++len) {
        for (int i = 0; i + len < n; ++i) {

            //cout << i << ' ' << len << '\n';
            int j = i + len;
            upd(dp[i][j], dp[i + 1][j]);
            upd(dp[i][j], dp[i][j - 1]);
            for (int l = a[i] % k; l < N; l += k) {
                int p = ind[l];
                if (p != -1) {
                    if (i < p and p <= j) {
                        upd(dp[i][j], dp[i][p-1] + dp[p][j] + 1);
                    }
                }
            }
        }
    }

    //cerr << res << '\n';
    return dp[0][n-1];
}
void solve() {
    int n, k;
    cin >> n >> k;
    vector<int> p(n * k);
    N = n * k;
    for (int i = 0; i < p.size(); ++i) {
        cin >> p[i];
        p[i]--;
    }
    int res = 0;
    vector<int> seen(p.size());
    for (int i = 0; i < p.size(); ++i) {
        if (seen[i] == 0) {
            vector<int> clc;
            int v = i;
            while (seen[v] == 0) {
                seen[v] = 1;
                clc.push_back(v);
                v = p[v];
            }
            res += calc(clc, n);
        }
    }
    cout << res << '\n';
}

signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
    //cin >> t;
    while (t--) {
        solve();
    }
}

/*
2 2 50
3 4 0 1 1 0 1 1
4 5 1 2 1 1 1 2
 1 5 3 2 4 1 5 3 2 4
 */

提出情報

提出日時
問題 B - Sort Permutation
ユーザ SomethingNew
言語 C++ 20 (gcc 12.2)
得点 800
コード長 3215 Byte
結果 AC
実行時間 842 ms
メモリ 101008 KiB

コンパイルエラー

Main.cpp: In function ‘void solve()’:
Main.cpp:77:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   77 |     for (int i = 0; i < p.size(); ++i) {
      |                     ~~^~~~~~~~~~
Main.cpp:83:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   83 |     for (int i = 0; i < p.size(); ++i) {
      |                     ~~^~~~~~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 800 / 800
結果
AC × 3
AC × 53
セット名 テストケース
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 3508 KiB
01-sample-02.txt AC 1 ms 3368 KiB
01-sample-03.txt AC 1 ms 3496 KiB
02-small-01.txt AC 1 ms 3568 KiB
02-small-02.txt AC 1 ms 3428 KiB
02-small-03.txt AC 1 ms 3508 KiB
02-small-04.txt AC 1 ms 3440 KiB
02-small-05.txt AC 1 ms 3628 KiB
02-small-06.txt AC 1 ms 3452 KiB
02-small-07.txt AC 1 ms 3504 KiB
02-small-08.txt AC 1 ms 3400 KiB
02-small-09.txt AC 1 ms 3508 KiB
02-small-10.txt AC 1 ms 3408 KiB
02-small-11.txt AC 1 ms 3432 KiB
02-small-12.txt AC 1 ms 3364 KiB
02-small-13.txt AC 1 ms 3500 KiB
02-small-14.txt AC 1 ms 3504 KiB
02-small-15.txt AC 1 ms 3564 KiB
02-small-16.txt AC 1 ms 3508 KiB
03-random-01.txt AC 44 ms 15672 KiB
03-random-02.txt AC 134 ms 21388 KiB
03-random-03.txt AC 1 ms 3452 KiB
03-random-04.txt AC 2 ms 3860 KiB
03-random-05.txt AC 34 ms 8024 KiB
04-large-01.txt AC 384 ms 34104 KiB
04-large-02.txt AC 100 ms 14152 KiB
04-large-03.txt AC 243 ms 20980 KiB
04-large-04.txt AC 212 ms 36392 KiB
04-large-05.txt AC 261 ms 20716 KiB
05-id-01.txt AC 2 ms 3620 KiB
05-id-02.txt AC 2 ms 3556 KiB
05-id-03.txt AC 2 ms 3488 KiB
05-id-04.txt AC 2 ms 3496 KiB
06-large-cycle-01.txt AC 842 ms 101008 KiB
06-large-cycle-02.txt AC 615 ms 82532 KiB
06-large-cycle-03.txt AC 768 ms 93884 KiB
06-large-cycle-04.txt AC 288 ms 50552 KiB
06-large-cycle-05.txt AC 812 ms 98360 KiB
07-large-cycle-2-01.txt AC 237 ms 21052 KiB
07-large-cycle-2-02.txt AC 517 ms 67964 KiB
07-large-cycle-2-03.txt AC 711 ms 85852 KiB
07-large-cycle-2-04.txt AC 99 ms 14892 KiB
07-large-cycle-2-05.txt AC 622 ms 71964 KiB
08-divide-01.txt AC 2 ms 3604 KiB
08-divide-02.txt AC 5 ms 3776 KiB
08-divide-03.txt AC 2 ms 3584 KiB
08-divide-04.txt AC 2 ms 3628 KiB
08-divide-05.txt AC 2 ms 3728 KiB
09-large-ans-01.txt AC 326 ms 42444 KiB
09-large-ans-02.txt AC 69 ms 10876 KiB
09-large-ans-03.txt AC 405 ms 57472 KiB
09-large-ans-04.txt AC 151 ms 25656 KiB
09-large-ans-05.txt AC 66 ms 14312 KiB