C.没有什么好说的直接计数排序即可
D.好好复习一下概率DP(白学了)
我们好好看看想想:对于每一天会随机等概率产生一个魔法球:我们可以想到什么 概率Dp没错吧:
e[i][j]=e[i][j−1]∗i/n+e[i−1][j−1]∗(n−i+1)/n
dp[
0] =
1;
for(
int n =
1; d <=
1000; n++) {
for(
int x = k; x >
0; --x)
dp[x] = (x * dp[x] + (k - x +
1) * dp[x -
1]) / k;
while(d <=
1000 &&
2000 * dp[k] >= (d - eps)) {
ans[d] = n;
d++;
}
dp[
0] =
0;
}
E.来,入门博弈。。。
对于这种博弈题我们是很 容易看出来的 对于该题恶心的限制我们可以通过把每堆的石头分成
1,2,3,4,5......n
个部分 把每个部分当成一个石头即可
int main() {
int n,x,f=
0;
cin>>n;
while(n--) {
scanf(
"%d",&x);
int i=
1,k=
1;
while(x>=i)x-=i,k=i++;
f^=k;
}
puts(f?
"NO":
"YES");
}