做的时候觉得很难,很多题都是看题解做的,所以放了一段时间。这几天把kuangbin聚聚博客上的3篇论文仔细看了看,再看这些题就感觉思路很显然了。但仍然有几题不能想出来,故这里补一下总结,这也算kuangbin专题的最后一篇博客了。
首先将这几篇论文贴上来,论文真的真的很难懂。。认真看看但不要太深入即可。(高中生太强了。。
《信息学竞赛中概率问题求解初探》
《浅析竞赛中一类数学期望问题的解决方法》
《有关概率和期望问题的研究》
J - Lights inside 3D Grid
这题做的时候并没有思路,看题解后才明白,期望有的时候会算每个点的贡献,而并非要一起算,这题我们可以先求出每个点被包围的概率,再用等比数列求和算出被包围奇数次的概率,再将每个点的概率相加即可。
#include<bits/stdc++.h>
using namespace std;
double Cal(int a,int b)
{
return 1.0-(0.0+(a-1)*(a-1)+(b-a)*(b-a))/(0.0+b*b);
}
int main()
{
int T;
scanf("%d",&T);
int cas=1;
while(T--)
{
int X,Y,Z,K;
scanf("%d %d %d %d",&X,&Y,&Z,&K);
double ans=0;
for(int i=1;i<=X;i++)
for(int j=1;j<=Y;j++)
for(int k=1;k<=Z;k++)
{
double p=Cal(i,X)*Cal(j,Y)*Cal(k,Z);
//cout<<p<<endl;
ans+=(0.5-0.5*pow(1.0-2*p,1.0*K));
}
printf("Case %d: %.6f\n",cas++,ans);
}
return 0;
}
N - Aladdin and the Magical Sticks
这题有点数学知识在里面。
根据期望的线性性,E(CX)=CE(X)
所以可以对每根棍子求一下它被抽到的期望次数,再乘以它的权值。
对于不可识别的棍子,由于他被抽到的概率满足几何分布
所以可以转化成一类经典模型,叫做邮票收集问题(稍后会开另一篇博客详细介绍这个)。
对于那些可以识别的棍子,它们的贡献实际上就只有1次,那么将其重量加起来即可。
对于那些不可识别的棍子,它们被抽的期望次数是 H