提出 #30091431
ソースコード 拡げる
#include <stdio.h>
#include <inttypes.h>
#include <string.h>
#define MOD_BY 1000000007
int add(int a, int b) {
return a + b - MOD_BY * (a + b >= MOD_BY);
}
int mul(int a, int b) {
return (int)((long long)a * b % MOD_BY);
}
int K;
uint64_t N;
int mat[16][16];
char status[2][4];
void asumikana(int pos) {
if(pos >= K) {
int init = 0, result = 0;
int i;
for (i = 0; i < K; i++) {
if (status[0][i] == 2) init |= 1 << i;
if (status[1][i]) result |= 1 << i;
}
mat[init][result]++;
} else if (status[0][pos]) {
asumikana(pos + 1);
} else {
status[0][pos] = 1;
status[1][pos] = 1;
asumikana(pos + 1);
status[1][pos] = 0;
if (pos + 1 < K && !status[0][pos + 1]) {
status[0][pos + 1] = 1;
asumikana(pos + 2);
status[0][pos + 1] = 0;
}
status[0][pos] = 0;
}
}
void matmul(int res[16][16], int a[16][16], int b[16][16], int size) {
static int buf[16][16];
int i, j, k;
memset(buf, 0, sizeof(buf));
for (i = 0; i < size; i++) {
for (k = 0; k < size; k++) {
for (j = 0; j < size; j++) {
buf[i][j] = add(buf[i][j], mul(a[i][k], b[k][j]));
}
}
}
memcpy(res, buf, sizeof(buf));
}
void matpow(int res[16][16], int a[16][16], int b, int size) {
static int abuf[16][16];
static int rbuf[16][16];
int i;
memcpy(abuf, a, sizeof(abuf));
memset(rbuf, 0, sizeof(rbuf));
for (i = 0; i < size; i++) rbuf[i][i] = 1;
while (b > 0) {
if (b & 1) matmul(rbuf, rbuf, abuf, size);
if (b > 1) matmul(abuf, abuf, abuf, size);
b >>= 1;
}
memcpy(res, rbuf, sizeof(rbuf));
}
int kitamuraeri[16][16];
int main(void) {
int i, j;
if (scanf("%d%" SCNu64, &K, &N) != 2) return 1;
for (i = 0; i < (1 << K); i++) {
for (j = 0; j < K; j++) {
status[0][j] = ((i >> j) & 1) * 2;
}
asumikana(0);
}
matpow(kitamuraeri, mat, N, 1 << K);
printf("%d\n", kitamuraeri[0][0]);
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | 057 - Domino Tiling |
| ユーザ | mikecat |
| 言語 | C (GCC 9.2.1) |
| 得点 | 0 |
| コード長 | 1930 Byte |
| 結果 | WA |
| 実行時間 | 6 ms |
| メモリ | 1676 KiB |
ジャッジ結果
| セット名 | Sample | k_2 | k_3 | k_4 | All | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 0 / 2 | 0 / 30 | 0 / 400 | 0 / 568 | ||||||||||||||||||
| 結果 |
|
|
|
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_k_2.txt, sample_k_3.txt, sample_k_4.txt |
| k_2 | k_2_01.txt, k_2_02.txt, k_2_03.txt, k_2_04.txt, k_2_05.txt, k_2_06.txt, k_2_07.txt, k_2_08.txt, k_2_09.txt, k_2_10.txt, k_2_11.txt, k_2_12.txt, k_2_13.txt, k_2_14.txt, k_2_15.txt, k_2_16.txt, k_2_17.txt, k_2_18.txt, k_2_19.txt, k_2_20.txt, sample_k_2.txt |
| k_3 | k_3_01.txt, k_3_02.txt, k_3_03.txt, k_3_04.txt, k_3_05.txt, k_3_06.txt, k_3_07.txt, k_3_08.txt, k_3_09.txt, k_3_10.txt, k_3_11.txt, k_3_12.txt, k_3_13.txt, k_3_14.txt, k_3_15.txt, k_3_16.txt, k_3_17.txt, k_3_18.txt, k_3_19.txt, k_3_20.txt, sample_k_3.txt |
| k_4 | k_4_01.txt, k_4_02.txt, k_4_03.txt, k_4_04.txt, k_4_05.txt, k_4_06.txt, k_4_07.txt, k_4_08.txt, k_4_09.txt, k_4_10.txt, k_4_11.txt, k_4_12.txt, k_4_13.txt, k_4_14.txt, k_4_15.txt, k_4_16.txt, k_4_17.txt, k_4_18.txt, k_4_19.txt, k_4_20.txt, sample_k_4.txt |
| All | k_2_01.txt, k_2_02.txt, k_2_03.txt, k_2_04.txt, k_2_05.txt, k_2_06.txt, k_2_07.txt, k_2_08.txt, k_2_09.txt, k_2_10.txt, k_2_11.txt, k_2_12.txt, k_2_13.txt, k_2_14.txt, k_2_15.txt, k_2_16.txt, k_2_17.txt, k_2_18.txt, k_2_19.txt, k_2_20.txt, k_3_01.txt, k_3_02.txt, k_3_03.txt, k_3_04.txt, k_3_05.txt, k_3_06.txt, k_3_07.txt, k_3_08.txt, k_3_09.txt, k_3_10.txt, k_3_11.txt, k_3_12.txt, k_3_13.txt, k_3_14.txt, k_3_15.txt, k_3_16.txt, k_3_17.txt, k_3_18.txt, k_3_19.txt, k_3_20.txt, k_4_01.txt, k_4_02.txt, k_4_03.txt, k_4_04.txt, k_4_05.txt, k_4_06.txt, k_4_07.txt, k_4_08.txt, k_4_09.txt, k_4_10.txt, k_4_11.txt, k_4_12.txt, k_4_13.txt, k_4_14.txt, k_4_15.txt, k_4_16.txt, k_4_17.txt, k_4_18.txt, k_4_19.txt, k_4_20.txt, sample_k_2.txt, sample_k_3.txt, sample_k_4.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| k_2_01.txt | AC | 6 ms | 1668 KiB |
| k_2_02.txt | WA | 1 ms | 1608 KiB |
| k_2_03.txt | WA | 1 ms | 1672 KiB |
| k_2_04.txt | WA | 1 ms | 1604 KiB |
| k_2_05.txt | WA | 2 ms | 1612 KiB |
| k_2_06.txt | WA | 1 ms | 1672 KiB |
| k_2_07.txt | WA | 1 ms | 1608 KiB |
| k_2_08.txt | WA | 2 ms | 1608 KiB |
| k_2_09.txt | WA | 1 ms | 1604 KiB |
| k_2_10.txt | WA | 1 ms | 1592 KiB |
| k_2_11.txt | WA | 1 ms | 1604 KiB |
| k_2_12.txt | WA | 1 ms | 1672 KiB |
| k_2_13.txt | WA | 1 ms | 1612 KiB |
| k_2_14.txt | WA | 2 ms | 1592 KiB |
| k_2_15.txt | WA | 1 ms | 1592 KiB |
| k_2_16.txt | WA | 1 ms | 1612 KiB |
| k_2_17.txt | WA | 3 ms | 1592 KiB |
| k_2_18.txt | WA | 1 ms | 1676 KiB |
| k_2_19.txt | WA | 2 ms | 1608 KiB |
| k_2_20.txt | WA | 1 ms | 1668 KiB |
| k_3_01.txt | AC | 2 ms | 1612 KiB |
| k_3_02.txt | AC | 1 ms | 1592 KiB |
| k_3_03.txt | AC | 1 ms | 1612 KiB |
| k_3_04.txt | WA | 1 ms | 1592 KiB |
| k_3_05.txt | WA | 1 ms | 1588 KiB |
| k_3_06.txt | WA | 1 ms | 1612 KiB |
| k_3_07.txt | WA | 2 ms | 1608 KiB |
| k_3_08.txt | WA | 1 ms | 1588 KiB |
| k_3_09.txt | WA | 1 ms | 1608 KiB |
| k_3_10.txt | WA | 3 ms | 1616 KiB |
| k_3_11.txt | WA | 1 ms | 1600 KiB |
| k_3_12.txt | WA | 1 ms | 1672 KiB |
| k_3_13.txt | WA | 1 ms | 1668 KiB |
| k_3_14.txt | WA | 2 ms | 1672 KiB |
| k_3_15.txt | WA | 1 ms | 1608 KiB |
| k_3_16.txt | WA | 1 ms | 1668 KiB |
| k_3_17.txt | WA | 1 ms | 1612 KiB |
| k_3_18.txt | WA | 1 ms | 1604 KiB |
| k_3_19.txt | AC | 3 ms | 1604 KiB |
| k_3_20.txt | WA | 1 ms | 1608 KiB |
| k_4_01.txt | AC | 2 ms | 1592 KiB |
| k_4_02.txt | WA | 2 ms | 1672 KiB |
| k_4_03.txt | WA | 1 ms | 1612 KiB |
| k_4_04.txt | WA | 1 ms | 1676 KiB |
| k_4_05.txt | WA | 2 ms | 1592 KiB |
| k_4_06.txt | WA | 1 ms | 1588 KiB |
| k_4_07.txt | WA | 3 ms | 1604 KiB |
| k_4_08.txt | WA | 2 ms | 1608 KiB |
| k_4_09.txt | WA | 2 ms | 1672 KiB |
| k_4_10.txt | WA | 2 ms | 1612 KiB |
| k_4_11.txt | WA | 2 ms | 1668 KiB |
| k_4_12.txt | WA | 2 ms | 1608 KiB |
| k_4_13.txt | WA | 1 ms | 1668 KiB |
| k_4_14.txt | WA | 2 ms | 1592 KiB |
| k_4_15.txt | WA | 2 ms | 1600 KiB |
| k_4_16.txt | WA | 1 ms | 1596 KiB |
| k_4_17.txt | WA | 1 ms | 1668 KiB |
| k_4_18.txt | WA | 2 ms | 1596 KiB |
| k_4_19.txt | WA | 2 ms | 1592 KiB |
| k_4_20.txt | WA | 2 ms | 1608 KiB |
| sample_k_2.txt | AC | 2 ms | 1596 KiB |
| sample_k_3.txt | AC | 1 ms | 1588 KiB |
| sample_k_4.txt | AC | 1 ms | 1592 KiB |