题目链接:

  http://codeforces.com/problemset/problem/698/C

题目大意:

  n个物品,k个格子,第i个物品每次被选取的概率为$p_{i}$,如果格子里没有该物品就把它丢进去,如果没有,再看格子是否被装满,如果被装满,就把最早选取的替换成该物品,求$10^{100}$次后格子里含有每个物品的概率。

  答案精度要求小于$10^{-6}$。

题解:

  就不能自己玩一次试试吗= =

  因为选取的次数太多了,所以可以看做一定会选到能选取的物品。(有一些为0的当然选不到了)

  然后正着推……

  我们可以发现,一个物品是否存在只与其最后一次出现的位置有关(显然),同时重复一个物品的情况可以直接合并(不会对答案产生贡献)。即,问题在于最后若干次选取中,选到k个物品。所以我们的问题就变成了在k次选取中,选到每种物品的概率。

  然后……这题还有容斥流!?

  想想也是…然而没有写。

 #include<cstdio>
using namespace std;
int n,m;
double ans[];
double f[<<];
double p[];
int num[<<];
double tot[<<];
int main(){
scanf("%d%d",&n,&m);
int cnt=n;
for(int i=;i<n;i++){
scanf("%lf",p+i),f[<<i]=p[i];
cnt-=(p[i]==0.0);
}
if(m>cnt) m=cnt;
for(int i=;i<(<<n);i++)
for(int j=;j<n;j++)
if(i&(<<j))
num[i]++;
else
tot[i]+=p[j];
for(int s=;s<(<<n);s++){
for(int i=;i<n;i++){
if((<<i)&s)
continue;
else if(tot[s]!=) f[(<<i)|s]+=f[s]*p[i]/tot[s];
}
}
for(int i=;i<(<<n);i++)
if(num[i]==m)
for(int j=;j<n;j++)
ans[j]+=f[i]*(((<<j)&i)>);
for(int i=;i<n;i++)
printf("%.20lf ",ans[i]);
}

  

【codeforces 698C】LRU的更多相关文章

  1. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  2. 【codeforces 707E】Garlands

    [题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...

  3. 【codeforces 707C】Pythagorean Triples

    [题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...

  4. 【codeforces 709D】Recover the String

    [题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...

  5. 【codeforces 709B】Checkpoints

    [题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...

  6. 【codeforces 709C】Letters Cyclic Shift

    [题目链接]:http://codeforces.com/contest/709/problem/C [题意] 让你改变一个字符串的子集(连续的一段); ->这一段的每个字符的字母都变成之前的一 ...

  7. 【Codeforces 429D】 Tricky Function

    [题目链接] http://codeforces.com/problemset/problem/429/D [算法] 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = ...

  8. 【Codeforces 670C】 Cinema

    [题目链接] http://codeforces.com/contest/670/problem/C [算法] 离散化 [代码] #include<bits/stdc++.h> using ...

  9. 【codeforces 515D】Drazil and Tiles

    [题目链接]:http://codeforces.com/contest/515/problem/D [题意] 给你一个n*m的格子; 然后让你用1*2的长方形去填格子的空缺; 如果有填满的方案且方案 ...

随机推荐

  1. 【基础】CSS实现多重边框的5种方式

    简言 目前最优雅地实现多重边框的方案是利用CSS3 的 box-shadow属性,但如果要兼容老的浏览器,则需要选择其它的方案.本文简要地列举了几种多重边框的实现方案,大家可以根据项目实际及兼容性要求 ...

  2. linux swing 乱码

    转载 Linux下关于解决JavaSwing中文乱码的情况 redhed 貌似没出现乱码 本身就jdk就支持中文 红旗linux  suse等都不支持,需要自己手工配置,解决办法: 第一种方法: 1. ...

  3. javax.mail

    摘抄 example: public static void sendEmail(ConfBean cBean, String filename, String filepath) { try { P ...

  4. Spring Cloud入门教程 - Zuul实现API网关和请求过滤

    简介 Zuul是Spring Cloud提供的api网关和过滤组件,它提供如下功能: 认证 过滤 压力测试 Canary测试 动态路由 服务迁移 负载均衡 安全 静态请求处理 动态流量管理 在本教程中 ...

  5. Mac Launchpad出现两个相同快捷方式的解决办法

    进入以下目录 ~/Library/Application Support/Dock 把里面的.db文件删掉,然后注销重新登录即可.    

  6. python3学习笔记4---引用http://python3-cookbook.readthedocs.io/zh_CN/latest/

    2018-03-01数据结构与算法(4) 1.16过滤序列元素 最简单的过滤序列元素的方法就是使用列表推导.比如: >>> mylist = [1, 4, -5, 10, -7, 2 ...

  7. Spring4托管Hibernate5并利用HibernateTemplate进行数据库操作

    时隔半年,再次发布配置类的相关Blog,因为左手受伤原因先做一个简述. 首先利用idea创建一个Spring+SpringMVC+Hibernate项目,注意的是因为我们要完全放弃Hibernate以 ...

  8. hadoop中setup,cleanup,run和context讲解

    hadoop 执行中的setup run cleanup context的作用1.简介1) setup(),此方法被MapReduce框架仅且执行一次,在执行Map任务前,进行相关变量或者资源的集中初 ...

  9. 使图片自适应div大小

    <img src=“” onload="javascript:if(this.height>MaxHeight)this.height=MaxHeight;if(this.wid ...

  10. MySQL无法存储emoji表情方案

    今天学习爬虫爬伯乐在线的文章,由于在文章中有emoji表情,导致有emoji表情的文章都爬取不下来 经过一番搜索之后终于解决了问题. 原文可参考: 1. MySQL无法存储Emoji表情问题 2. m ...