Submission #1291196
Source Code Expand
#include <algorithm> #include <cmath> #include <cstdlib> #include <iomanip> #include <iostream> #include <map> #include <math.h> #include <numeric> #include <queue> #include <stdio.h> #include <stdlib.h> #include <string> #include <time.h> #include <unordered_map> #include <vector> using namespace std; #define MOD 1000000007 bool B[26]; int T[1 << 25]; int mp[26]; int bit_count(int i) { i = (i & 0x55555555) + (i >> 1 & 0x55555555); i = (i & 0x33333333) + (i >> 2 & 0x33333333); i = (i & 0x0f0f0f0f) + (i >> 4 & 0x0f0f0f0f); i = (i & 0x00ff00ff) + (i >> 8 & 0x00ff00ff); return (i & 0x0000ffff) + (i >> 16 & 0x0000ffff); } bool has_i(int state, int i) { int pos = 1 << i; return (state & pos) > 0; } int minus_i(int state, int i) { int pos = 1 << i; return state - pos; } int dfs_count(int state) { if (T[state] != -1) return T[state]; int c = bit_count(state); if (B[c]) { int j = mp[c]; if (!has_i(state, j)) { T[state] = 0; return 0; } int x = j % 5; int y = j / 5; if (0 < x && x < 4 && (has_i(state, j + 1) ^ (has_i(state, j - 1)))) { T[state] = 0; return 0; } if (0 < y && y < 4 && (has_i(state, j + 5) ^ (has_i(state, j - 5)))) { T[state] = 0; return 0; } int res = dfs_count(minus_i(state, j)); T[state] = res; return res; } else { int sum = 0; for (int j = 0; j < 25; j++) { if (!has_i(state, j)) { continue; } int x = j % 5; int y = j / 5; if (0 < x && x < 4 && (has_i(state, j + 1) ^ (has_i(state, j - 1)))) { continue; } if (0 < y && y < 4 && (has_i(state, j + 5) ^ (has_i(state, j - 5)))) { continue; } sum += dfs_count(minus_i(state, j)); sum %= MOD; } T[state] = sum; return sum; } } int main() { for (int i = 0; i < (1 << 25); i++) { T[i] = -1; } for (int i = 0; i < 25; i++) { int c; cin >> c; if (c != 0) { B[c] = true; mp[c] = i; } } T[0] = 1; cout << dfs_count((1 << 25) - 1) << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 25個の整数 |
User | mban |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2495 Byte |
Status | AC |
Exec Time | 487 ms |
Memory | 131328 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt |
Subtask1 | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, test-1-01.txt, test-1-02.txt, test-1-03.txt, test-1-04.txt, test-1-05.txt, test-1-06.txt, test-1-07.txt, test-1-08.txt, test-1-09.txt, test-1-10.txt, test-1-11.txt, test-1-12.txt, test-1-13.txt, test-1-14.txt, test-1-15.txt |
Subtask2 | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, test-1-01.txt, test-1-02.txt, test-1-03.txt, test-1-04.txt, test-1-05.txt, test-1-06.txt, test-1-07.txt, test-1-08.txt, test-1-09.txt, test-1-10.txt, test-1-11.txt, test-1-12.txt, test-1-13.txt, test-1-14.txt, test-1-15.txt, test-2-01.txt, test-2-02.txt, test-2-03.txt, test-2-04.txt, test-2-05.txt, test-2-06.txt, test-2-07.txt, test-2-08.txt, test-2-09.txt, test-2-10.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample-01.txt | AC | 39 ms | 131328 KB |
sample-02.txt | AC | 39 ms | 131328 KB |
sample-03.txt | AC | 43 ms | 131328 KB |
sample-04.txt | AC | 39 ms | 131328 KB |
test-1-01.txt | AC | 40 ms | 131328 KB |
test-1-02.txt | AC | 39 ms | 131328 KB |
test-1-03.txt | AC | 39 ms | 131328 KB |
test-1-04.txt | AC | 39 ms | 131328 KB |
test-1-05.txt | AC | 40 ms | 131328 KB |
test-1-06.txt | AC | 39 ms | 131328 KB |
test-1-07.txt | AC | 39 ms | 131328 KB |
test-1-08.txt | AC | 40 ms | 131328 KB |
test-1-09.txt | AC | 39 ms | 131328 KB |
test-1-10.txt | AC | 39 ms | 131328 KB |
test-1-11.txt | AC | 39 ms | 131328 KB |
test-1-12.txt | AC | 39 ms | 131328 KB |
test-1-13.txt | AC | 39 ms | 131328 KB |
test-1-14.txt | AC | 39 ms | 131328 KB |
test-1-15.txt | AC | 39 ms | 131328 KB |
test-2-01.txt | AC | 46 ms | 131328 KB |
test-2-02.txt | AC | 40 ms | 131328 KB |
test-2-03.txt | AC | 42 ms | 131328 KB |
test-2-04.txt | AC | 63 ms | 131328 KB |
test-2-05.txt | AC | 41 ms | 131328 KB |
test-2-06.txt | AC | 146 ms | 131328 KB |
test-2-07.txt | AC | 487 ms | 131328 KB |
test-2-08.txt | AC | 209 ms | 131328 KB |
test-2-09.txt | AC | 175 ms | 131328 KB |
test-2-10.txt | AC | 152 ms | 131328 KB |