Submission #1077672

# Submission time Handle Problem Language Result Execution time Memory
1077672 2024-08-27T08:33:17 Z coolboy19521 Beautiful row (IZhO12_beauty) C++17
0 / 100
2297 ms 262144 KB
#include "bits/stdc++.h"
#define ll long long

using namespace std;

const int sz = 22;

int vi[1ll << sz][sz];
ll dp[1ll << sz][sz];
int tw[sz], tr[sz];
int a[sz], n;

bool matc(int i, int j) {
    if (tw[i] == tw[j] || tr[i] == tr[j])
        return true;
    return false;
}

ll go(int i, int bt) {
    if (bt == (1ll << n) - 1) return 1ll;
    int& v = vi[bt][i];
    ll& r = dp[bt][i];
    if (v) return r;
    v = 1;
    for (int j = 0; j < n; j ++) {
        int f = bt & (1ll << j);
        if (!f && matc(i, j))
            r += go(j, bt | (1 << j));
    }
    return r;
}

void zero() {
    for (int i = 0; i < (1ll << n); i ++)
        for (int j = 0; j < n; j ++)
            dp[i][j] = vi[i][j] = 0;
}

signed main() {
    cin >> n;

    for (int i = 0; i < n; i ++)
        cin >> a[i];

    for (int i = 0; i < n; i ++) {
        for (int cn = a[i]; 0 < cn; cn /= 2)
            tw[i] += cn % 2;
        for (int cn = a[i]; 0 < cn; cn /= 3)
            tr[i] += 1 == cn % 3;
    }

    ll cn = 0;

    for (int i = 0; i < n; i ++) {
        zero();
        cn += go(i, 1ll << i);
    }

    cout << cn << '\n';
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 0 ms 2492 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 1 ms 2396 KB Output is correct
6 Correct 1 ms 2652 KB Output is correct
7 Correct 1 ms 2496 KB Output is correct
8 Correct 2 ms 2500 KB Output is correct
9 Correct 1 ms 2652 KB Output is correct
10 Correct 2 ms 2652 KB Output is correct
11 Correct 38 ms 8796 KB Output is correct
12 Correct 24 ms 8792 KB Output is correct
13 Correct 206 ms 19804 KB Output is correct
14 Correct 1758 ms 69972 KB Output is correct
15 Correct 2297 ms 70012 KB Output is correct
16 Correct 1154 ms 69980 KB Output is correct
17 Correct 2089 ms 70016 KB Output is correct
18 Correct 1074 ms 70016 KB Output is correct
19 Runtime error 102 ms 262144 KB Execution killed with signal 9
20 Halted 0 ms 0 KB -