博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【CF248E】Piglet's Birthday(动态规划)
阅读量:5281 次
发布时间:2019-06-14

本文共 839 字,大约阅读时间需要 2 分钟。

【CF248E】Piglet's Birthday(动态规划)

题面

翻译:
给定\(n\)个货架,初始时每个上面有\(a[i]\)个蜜罐。
\(q\)次操作,每次操作形如\(u,v,k\),表示从货架\(u\)上任意选择\(k\)个蜜罐试吃(吃过的也还能吃),吃完后把这\(k\)个蜜罐放到\(v\)货架上去。
每次操作完之后回答所有蜜罐都被试吃过的货架数量的期望。

题解

发现没被吃过的数量对于每个货架而言都是单调不增的。

所以考虑没有被吃过的数量,设\(f[i][j]\)表示第\(i\)个货架有\(j\)个蜜罐没有被试吃的概率。
转移的话枚举当前试吃了几个没被吃过的蜜罐用组合数转移即可。

#include
#include
#include
#include
#include
#include
using namespace std;#define ll long long#define MAX 100100inline int read(){ int x=0;bool t=false;char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar(); if(ch=='-')t=true,ch=getchar(); while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar(); return t?-x:x;}double f[MAX][111],ans;int n,q,a[MAX],b[MAX];double C(int n,int m){ if(n

转载于:https://www.cnblogs.com/cjyyb/p/9403512.html

你可能感兴趣的文章
循环队列实现
查看>>
CSS层模型
查看>>
springBoot 项目 jar/war打包 并运行
查看>>
HDU 1501 Zipper
查看>>
打包java程序生成exe
查看>>
八叉树
查看>>
poj 1129 搜索
查看>>
Git 远程仓库
查看>>
HttpClient的巨坑
查看>>
关于静态文本框透明度的问题
查看>>
海量数据、高并发的优化方案
查看>>
javascript的发展及个人笔记
查看>>
全选,反全选,反选,获取选中的值,根据子选择控制全选按钮
查看>>
梦断代码读后感01
查看>>
[CF#250 Div.2 D]The Child and Zoo(并查集)
查看>>
博客园博客插入公式
查看>>
hdu 1028 Ignatius and the Princess III(母函数入门+模板)
查看>>
Ubuntu下配置安装telnet server
查看>>
Codeforces 235 E Number Challenge
查看>>
ubuntu 常见命令整理
查看>>