【期望DP+最短路】BZOJ4720 [NOIP2016]换教室
来源:互联网 发布:java常用包介绍 编辑:程序博客网 时间:2024/05/14 10:02
题面在这里
一道简单的期望DP题……
定义
前i节课,已经用了j次申请机会,第i节课申请/不申请
那么显然,根据期望的线性性,可以得到:
其中w(i,j)表示点i到点j的最短路径
那么用Floyd预处理出w(i,j)即可
附上代码:
#include<cstdio>#include<cstring>#include<algorithm>#define w(x,y) g[x][y]using namespace std;const int maxn=2005,maxv=305;int n,m,v,e,g[maxv][maxv],c[maxn],d[maxn];double k[maxn],f[maxn][maxn][2];inline int red(){ int tot=0,f=1;char ch=getchar(); while (ch<'0'||'9'<ch) {if (ch=='-') f=-f;ch=getchar();} while ('0'<=ch&&ch<='9') tot=tot*10+ch-48,ch=getchar(); return tot*f;}void floyd(){ for (int k=1;k<=v;k++) for (int i=1;i<=v;i++) for (int j=1;j<=v;j++) g[i][j]=min(g[i][j],g[i][k]+g[k][j]);}int main(){ n=red(),m=red(),v=red(),e=red(); for (int i=1;i<=n;i++) c[i]=red(); for (int i=1;i<=n;i++) d[i]=red(); for (int i=1;i<=n;i++) scanf("%lf",&k[i]); memset(g,63,sizeof(g)); for (int i=1;i<=v;i++) g[i][i]=0; for (int i=1,x,y;i<=e;i++) x=red(),y=red(),g[x][y]=min(g[x][y],red()),g[y][x]=g[x][y]; floyd(); memset(f,127,sizeof(f)); f[1][0][0]=f[1][1][1]=0; for (int i=2;i<=n;i++) for (int j=0,tj=min(i,m);j<=tj;j++){ f[i][j][0]=f[i-1][j][0]+w(c[i-1],c[i]); f[i][j][0]=min(f[i][j][0],f[i-1][j][1]+k[i-1]*w(d[i-1],c[i])+(1-k[i-1])*w(c[i-1],c[i])); if (!j) continue; f[i][j][1]=f[i-1][j-1][0]+k[i]*w(c[i-1],d[i])+(1-k[i])*w(c[i-1],c[i]); f[i][j][1]=min(f[i][j][1],f[i-1][j-1][1]+ k[i]*k[i-1]*w(d[i-1],d[i]) + k[i]*(1-k[i-1])*w(c[i-1],d[i]) + (1-k[i])*k[i-1]*w(c[i],d[i-1]) + (1-k[i])*(1-k[i-1])*w(c[i],c[i-1])); } double ans=1e100; for (int j=0;j<=m;j++) ans=min(ans,min(f[n][j][0],f[n][j][1])); printf("%.2lf",ans); return 0;}
阅读全文
2 0
- 【期望DP+最短路】BZOJ4720 [NOIP2016]换教室
- BZOJ4720(NOIP2016)[换教室]题解--期望DP
- [BZOJ4720][NOIP2016]换教室-期望DP
- bzoj4720 [NOIP2016] 换教室(期望概率DP)
- BZOJ4720 [Noip2016]换教室 解题报告【SPFA】【期望DP】
- bzoj 4720: [Noip2016]换教室 期望dp+最短路
- [bzoj4720][Noip2016]换教室 签到概率DP
- BZOJ4720 [Noip2016]换教室
- bzoj4720 [Noip2016]换教室
- bzoj4720: [Noip2016]换教室
- bzoj4720 [Noip2016]换教室
- 【bzoj4720】【noip2016】【换座位】期望dp+Floyd
- 【期望dp】NOIP2016换教室
- noip2016 换教室 期望+DP
- NOIP2016 换教室 期望DP
- [NOIP] [期望DP] [最短路] NOIP2016Day1 换教室
- 【BZOJ】4720 [Noip2016]换教室 期望DP
- BZOJ 4720 [Noip2016]换教室 期望DP
- [置顶]Android APK反编译源码就这么简单 详解(附图)
- Spring--IOC容器 《一》
- CFgym: Laying Cables(单调栈)
- 简洁易用报表工具-丰富可视化效果web报表工具
- XGBoost-Python完全调参指南-参数解释篇
- 【期望DP+最短路】BZOJ4720 [NOIP2016]换教室
- 使用Redux和ngrx构建更好的Angular2应用(四)
- Struts1框架八之国际化
- (转)值传递和引用传递实例讲解
- ASP.NET测试
- [Debug]
- RESTful Webservice 和 SOAP Webserivce 对比
- java设计模式之简单工厂模式
- NSA