社区讨论
除了前两个点都RE
P5307[COCI 2018/2019 #6] Mobitel参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mi7xzmhv
- 此快照首次捕获于
- 2025/11/21 05:27 4 个月前
- 此快照最后确认于
- 2025/11/21 05:27 4 个月前
求大佬查错
CPP#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
const int mod = 1000000007;
int a[305][305], v[5005], r[5005], d[305][5005], f[305][5005], c;
int up(int x, int y)
{
return x % y == 0 ? x / y : x / y + 1;
}
int main(int argc, char **argv)
{
int n, m, N, i, j, k;
scanf("%d%d%d", &n, &m, &N);
for(i = 1; i <= n; i++)
for(j = 1; j <= m; j++)
scanf("%d", &a[i][j]);
v[c = 1] = N, r[N] = 1;
for(i = 2; i <= N; i++) if(up(N, i) != up(N, i - 1)) v[++c] = up(N, i), r[up(N, i)] = c;
d[1][r[up(N, a[1][1])]] = 1;
for(i = 1; i <= n; i++)
{
for(j = 1; j < m; j++)
for(k = 1; k <= c; k++)
d[j + 1][r[up(v[k], a[i][j + 1])]] = (d[j + 1][r[up(v[k], a[i][j + 1])]] + d[j][k]) % mod;
memset(f, 0, sizeof(f));
if(i < n)
{
for(j = 1; j <= m; j++)
for(k = 1; k <= c; k++)
f[j][r[up(v[k], a[i + 1][j])]] = (f[j][r[up(v[k], a[i + 1][j])]] + d[j][k]) % mod;
memcpy(d, f, sizeof(d));
}
}
printf("%d\n", d[m][c]);
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...