link
第一场,比赛时只过了6题,被a题卡了然后run了。
A.九小时九个人九扇门
思路
或许有用的结论:一个数的数字根等于这个数对9取模的结果(特别地,取模得0则数字根为9)
dp,状态转移方程蛮简单的,然而比赛时一直不知道怎么处理只选第
i
i
i 个数的情况,看题解发现设
d
p
[
0
]
[
0
]
=
1
dp[0][0] = 1
dp[0][0]=1确实很妙。
code
// Decline is inevitable,
// Romance will last forever.
int dp[2][10];
int n;
void solve() {
cin >> n;
int x;
int k = 0;
dp[0][0] = 1;
for(int i = 1; i <= n; i++) {
k ^= 1;
cin >> x;
x %= 9;
for(int j = 0; j < 9; j++) {
dp[k][(j+x)%9] = (dp[k^1][(j+x)%9] + dp[k^1][j]) % P;
}
}
for(int i = 1; i <= 9; i++) {
if(i == 9)
cout << dp[k][0]-1 << endl;
else
cout << dp[k][i] << ' ';
}
}
I.B站与各唱各的
一道挺有意思的概率期望题,然而比赛时并没有看,直接贴一下题解。
void solve() {
cin >> n >> m;
cout << m * (power(2, n) - 2 + P) % P * inv(power(2, n)) % P << endl;;
}