Submission #434009
Source Code Expand
#include <iostream> #include <cstdio> #include <cassert> #include <cstring> #include <vector> #include <valarray> #include <array> #include <queue> #include <set> #include <unordered_set> #include <map> #include <unordered_map> #include <algorithm> #include <cmath> #include <complex> #include <random> using namespace std; typedef long long ll; typedef unsigned long long ull; const int MD = 1e9+7; int dp[1<<20][25]; bool pri[5][5]; bool used[5][5]; int xp[25], yp[25]; int dfs(int p) { if (p == 25) { return 1; } if (xp[p] != -1) { int i = yp[p], j = xp[p]; if (1 <= i && i <= 3) { if (used[i-1][j] && !used[i+1][j]) { return 0; } if (!used[i-1][j] && used[i+1][j]) { return 0; } } if (1 <= j && j <= 3) { if (used[i][j-1] && !used[i][j+1]) { return 0; } if (!used[i][j-1] && used[i][j+1]) { return 0; } } used[i][j] = true; int sm = dfs(p+1); used[i][j] = false; return sm; } int u = 0; int mp = 0; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (pri[i][j]) continue; if (used[i][j]) { mp |= (1<<u); } u++; } } if (dp[mp][p] != -1) return dp[mp][p]; int sm = 0; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (pri[i][j]) continue; if (used[i][j]) continue; if (1 <= i && i <= 3) { if (used[i-1][j] && !used[i+1][j]) { continue; } if (!used[i-1][j] && used[i+1][j]) { continue; } } if (1 <= j && j <= 3) { if (used[i][j-1] && !used[i][j+1]) { continue; } if (!used[i][j-1] && used[i][j+1]) { continue; } } used[i][j] = true; sm += dfs(p+1); sm %= MD; used[i][j] = false; } } return dp[mp][p] = sm; } int main() { memset(xp, -1, sizeof(xp)); memset(yp, -1, sizeof(yp)); memset(dp, -1, sizeof(dp)); for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { int d; cin >> d; d--; if (d != -1) { xp[d] = j; yp[d] = i; pri[i][j] = true; } } } cout << dfs(0) << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 25個の整数 |
User | yosupo |
Language | C++11 (GCC 4.9.2) |
Score | 100 |
Code Size | 2789 Byte |
Status | AC |
Exec Time | 649 ms |
Memory | 103328 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 | 214 ms | 103200 KB |
sample-02.txt | AC | 216 ms | 103152 KB |
sample-03.txt | AC | 212 ms | 103196 KB |
sample-04.txt | AC | 213 ms | 103204 KB |
test-1-01.txt | AC | 213 ms | 103200 KB |
test-1-02.txt | AC | 213 ms | 103076 KB |
test-1-03.txt | AC | 212 ms | 103080 KB |
test-1-04.txt | AC | 213 ms | 103068 KB |
test-1-05.txt | AC | 212 ms | 103200 KB |
test-1-06.txt | AC | 213 ms | 103080 KB |
test-1-07.txt | AC | 213 ms | 103076 KB |
test-1-08.txt | AC | 214 ms | 103200 KB |
test-1-09.txt | AC | 209 ms | 103204 KB |
test-1-10.txt | AC | 213 ms | 103208 KB |
test-1-11.txt | AC | 214 ms | 103196 KB |
test-1-12.txt | AC | 212 ms | 103204 KB |
test-1-13.txt | AC | 212 ms | 103196 KB |
test-1-14.txt | AC | 212 ms | 103208 KB |
test-1-15.txt | AC | 212 ms | 103204 KB |
test-2-01.txt | AC | 216 ms | 103204 KB |
test-2-02.txt | AC | 212 ms | 103200 KB |
test-2-03.txt | AC | 213 ms | 103072 KB |
test-2-04.txt | AC | 217 ms | 103208 KB |
test-2-05.txt | AC | 230 ms | 103212 KB |
test-2-06.txt | AC | 484 ms | 103328 KB |
test-2-07.txt | AC | 386 ms | 103084 KB |
test-2-08.txt | AC | 461 ms | 103200 KB |
test-2-09.txt | AC | 409 ms | 103196 KB |
test-2-10.txt | AC | 649 ms | 103076 KB |