P15465 [ICPC 2024 WF] Bingo for the Win! 宾果游戏的胜利!

ooliver OI

P15465 [ICPC 2024 WF] Bingo for the Win! 宾果游戏的胜利!

不难发现,对于一个号码,只有拿到这个号码的反应最慢的人才会产生贡献,贡献为 sumnk\frac{sum}{nk},其中 sumsum 表示号码的个数,所以这启示我们在统计答案是从反应慢的开始遍历到反应快的(也就是编号从大到小)。

对于每个人,每个号码对其产生贡献的概率是互斥的,所以直接加法定理加起来就行。

代码:

C++

#include
using namespace std;

const int N=1005;
int n,k;
int a[N][N],ans[N];
map sum;

signed main(){
    scanf("%d%d",&n,&k);
    for(int i=1;i0;i--) for(int j=1;j
`#include
using namespace std;

const int N=1005;
int n,k;
int a[N][N],ans[N];
map,int> sum;

signed main(){
    scanf("%d%d",&n,&k);
    for(int i=1;in;i++) for(int j=1;jk;j++) scanf("%d",&a[i][j]),sum[a[i][j]]++;
    for(int i=n;i>0;i--) for(int j=1;jk;j++) if(sum[a[i][j]]) ans[i]+=sum[a[i][j]],sum[a[i][j]]=0;
    for(int i=1;in;i++) printf("%.6f\n",ans[i]*1.0/(n*k));
    return 0;
}`