博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF494C Helping People
阅读量:6549 次
发布时间:2019-06-24

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

题解

注意到区间之间没有交叉,所以只有包含的关系,我们可以把它整成一棵树。

然后设一下\(dp[i][j]\)表示以\(i\)为根的子树,最大值不超过区间最大值+\(j\)的概率。

转移:

\[ dp[u][j]=p*\prod dp[v][mx[u]-mx[v]-1+j]+(1-p)*\prod dp[v][mx[u]-mx[v]+j] \]

代码

#include
#define N 100002#define M 5002using namespace std;typedef long long ll;int n,nw[N],top,mx[M],q,st[N];vector
vec[N];double f[M][M],ans,g[M][M];int size[M];inline ll rd(){ ll x=0;char c=getchar();bool f=0; while(!isdigit(c)){if(c=='-')f=1;c=getchar();} while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=getchar();} return f?-x:x;}struct node{ int l,r;double p; inline bool operator <(const node &b)const{ if(l!=b.l)return l
b.r; }}a[M];void dfs(int u){ int l=a[u].l; size[u]=u!=0; for(vector
::iterator it=vec[u].begin();it!=vec[u].end();++it){ int v=*it; dfs(v); for(int i=l;i
::iterator it=vec[u].begin();it!=vec[u].end();++it){ int v=*it; mx[u]=max(mx[u],mx[v]); } for(int i=0;i<=q;++i){ f[u][i]=(1-a[u].p); g[u][i]=a[u].p; } if(now==mx[u])g[u][0]=0; for(vector
::iterator it=vec[u].begin();it!=vec[u].end();++it){ int v=*it; size[u]+=size[v]; for(int j=0;j<=size[u];++j){ if(mx[u]-mx[v]-1+j<=size[u]&&mx[u]-mx[v]-1+j>=0)g[u][j]*=f[v][mx[u]-mx[v]-1+j]; if(mx[u]-mx[v]+j<=size[u])f[u][j]*=f[v][mx[u]-mx[v]+j]; } } for(int i=0;i<=q;++i)f[u][i]+=g[u][i];}int main(){ n=rd();q=rd(); for(int i=1;i<=n;++i)nw[i]=rd(); for(int i=1;i<=q;++i){ a[i].l=rd();a[i].r=rd();scanf("%lf",&a[i].p); } sort(a+1,a+q+1); for(int i=1;i<=q;++i){ while(top&&a[st[top]].r

转载于:https://www.cnblogs.com/ZH-comld/p/11025327.html

你可能感兴趣的文章
Android中asset文件夹和raw文件夹区别
查看>>
第二章家庭作业 2.78
查看>>
Android 下拉刷新上拉载入 多种应用场景 超级大放送(上)
查看>>
Risc-V指令集
查看>>
Python进阶04 函数的参数对应
查看>>
C语言结构体的“继承”
查看>>
POJ 3468 A Simple Problem with Integers(线段树 区间更新)
查看>>
安装apr-1.6.3报错[cannot remove `libtoolT’: No such file or directory]解决方法
查看>>
Git 使用教程
查看>>
TIMO 后台管理系统 v2.0.1 发布,加入 jwt 身份验证组件,基于 Spring Boot
查看>>
Java 11 将至,不妨了解一下 Oracle JDK 之外的版本
查看>>
Log4j_学习_03_自己动手封装log工具
查看>>
Redis的各项功能解决了哪些问题?
查看>>
FastAdmin 极速后台管理框架 1.0.0.20190301_beta
查看>>
Selenium2 WebDriver 启动Chrome, Firefox, IE 浏览器、设置profile&加载插件
查看>>
Hello,Java女神
查看>>
rpc远程调用开发
查看>>
复习-css控制文本字体属性
查看>>
学习设计模式——观察者模式
查看>>
什么是centos 的epel源
查看>>