ログインしてください。
Submission #71055352
Source Code Expand
#include <stdio.h>
#include <string.h>
#include <inttypes.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 N;
uint64_t K;
int a[64][64];
void matmul(int x[64][64], int y[64][64], int out[64][64]) {
int i, j, k;
int ans[64][64];
memset(ans, 0, sizeof(ans));
for (k = 0; k < N; k++) {
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
ans[i][j] = add(ans[i][j], mul(x[i][k], y[k][j]));
}
}
}
memcpy(out, ans, sizeof(ans));
}
int cur[64][64];
int main(void) {
int i, j;
int ans = 0;
if (scanf("%d%" SCNu64, &N, &K) != 2) return 1;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
if (scanf("%d", &a[i][j]) != 1) return 1;
}
cur[i][i] = 1;
}
while (K > 0) {
if (K & 1) matmul(cur, a, cur);
matmul(a, a, a);
K >>= 1;
}
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
ans = add(ans, cur[i][j]);
}
}
printf("%d\n", ans);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | R - Walk |
| User | mikecat |
| Language | C (gcc 12.2.0) |
| Score | 100 |
| Code Size | 1074 Byte |
| Status | AC |
| Exec Time | 25 ms |
| Memory | 1784 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 0_00, 0_01, 0_02, 0_03, 0_04, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 1 ms | 1636 KiB |
| 0_01 | AC | 1 ms | 1768 KiB |
| 0_02 | AC | 0 ms | 1636 KiB |
| 0_03 | AC | 0 ms | 1640 KiB |
| 0_04 | AC | 1 ms | 1780 KiB |
| 1_00 | AC | 0 ms | 1692 KiB |
| 1_01 | AC | 0 ms | 1656 KiB |
| 1_02 | AC | 1 ms | 1776 KiB |
| 1_03 | AC | 18 ms | 1660 KiB |
| 1_04 | AC | 1 ms | 1764 KiB |
| 1_05 | AC | 18 ms | 1664 KiB |
| 1_06 | AC | 1 ms | 1624 KiB |
| 1_07 | AC | 25 ms | 1624 KiB |
| 1_08 | AC | 13 ms | 1772 KiB |
| 1_09 | AC | 17 ms | 1772 KiB |
| 1_10 | AC | 18 ms | 1776 KiB |
| 1_11 | AC | 16 ms | 1740 KiB |
| 1_12 | AC | 17 ms | 1784 KiB |
| 1_13 | AC | 20 ms | 1760 KiB |
| 1_14 | AC | 18 ms | 1640 KiB |
| 1_15 | AC | 19 ms | 1772 KiB |
| 1_16 | AC | 19 ms | 1636 KiB |
| 1_17 | AC | 19 ms | 1664 KiB |