C18-team4
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
太土了
by yxdb
-------------------------------
赛后过了E题, 理清楚了思路以后写了不到20分钟就写好了
由于要取模, 中间的减法可能会产生负数, 改对后提交, 2Y
代码:
{{{
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long LL;
const int MOD = 1000000007;
LL dp[1005][1005], sum[1005][1005];
int gao(char s[]) {
int n = strlen(s) + 1;
sum[1][1] = 1;
for (int i = 2; i <= n; ++i) {
for (int j = 1; j <= i; ++j) {
if (s[i-2] == 'I')
dp[i][j] = sum[i-1][j-1];
else if (s[i-2] == 'D')
dp[i][j] = (sum[i-1][i-1] - sum[i-1][j-1] + MOD) % MOD;
else
dp[i][j] = sum[i-1][i-1];
sum[i][j] = (sum[i][j-1] + dp[i][j]) % MOD;
}
}
return sum[n][n];
}
int main() {
char s[1005];
while (1 == scanf("%s", s)) {
printf("%d\n", gao(s));
}
}
}}}
感觉我们队在遇到比较难的套题的时候就会乱了阵脚, 主要还是实力不够吧... 像今天又被ac自动机和线段树虐了...
搞不出题, 就会后半场打酱油!
by yxdb
太土了
by yxdb
赛后过了E题, 理清楚了思路以后写了不到20分钟就写好了
由于要取模, 中间的减法可能会产生负数, 改对后提交, 2Y
代码:
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long LL;
const int MOD = 1000000007;
LL dp[1005][1005], sum[1005][1005];
int gao(char s[]) {
int n = strlen(s) + 1;
sum[1][1] = 1;
for (int i = 2; i <= n; ++i) {
for (int j = 1; j <= i; ++j) {
if (s[i-2] == 'I')
dp[i][j] = sum[i-1][j-1];
else if (s[i-2] == 'D')
dp[i][j] = (sum[i-1][i-1] - sum[i-1][j-1] + MOD) % MOD;
else
dp[i][j] = sum[i-1][i-1];
sum[i][j] = (sum[i][j-1] + dp[i][j]) % MOD;
}
}
return sum[n][n];
}
int main() {
char s[1005];
while (1 == scanf("%s", s)) {
printf("%d\n", gao(s));
}
}
感觉我们队在遇到比较难的套题的时候就会乱了阵脚, 主要还是实力不够吧... 像今天又被ac自动机和线段树虐了...
搞不出题, 就会后半场打酱油!
by yxdb
附加文件
- c18_code.zip by Pi