【NOIP2016】换教室(期望dp)
来源:互联网 发布:折线图数据单位不一样 编辑:程序博客网 时间:2024/05/14 18:35
题目:
我是超链接
题解:
昔日的伤痕再揭开依然很疼,这道题就是当时一急连暴力都没有写......
现在看来确是最简单的期望dp
兼顾着上一次申请过没过哦,毕竟涉及到现在的位置
代码:
#include <cstdio>#include <iostream>#include <cstring>#define INF 1e9using namespace std;int n,m,v,e,c[2005],d[2005],f[305][305];double p[2005],dp[2005][2005][2];int main(){int i,a1,b1,c1,k,j;scanf("%d%d%d%d",&n,&m,&v,&e);for (i=1;i<=n;i++) scanf("%d",&c[i]);for (i=1;i<=n;i++) scanf("%d",&d[i]);for (i=1;i<=n;i++) scanf("%lf",&p[i]);memset(f,0x7f,sizeof(f));for (i=1;i<=e;i++) {scanf("%d%d%d",&a1,&b1,&c1); if (c1<f[a1][b1]) f[a1][b1]=f[b1][a1]=c1;}for (i=1;i<=v;i++) f[i][i]=0; for (k=1;k<=v;k++) for (i=1;i<=v;i++) for (j=1;j<=v;j++) if (f[i][k]<INF && f[k][j]<INF && f[i][j]>f[i][k]+f[k][j]) f[i][j]=f[i][k]+f[k][j];//dp[i][j][0/1]表示前i个时间选j节课这门课申不申请的路程期望 memset(dp,0x7f,sizeof(dp)); dp[1][0][0]=0;dp[1][1][1]=0;for (i=2;i<=n;i++) {dp[i][0][0]=dp[i-1][0][0]+f[c[i-1]][c[i]];for (j=1;j<=min(m,i);j++) { dp[i][j][0]=min(dp[i-1][j][0]+f[c[i-1]][c[i]],dp[i-1][j][1]+f[d[i-1]][c[i]]*p[i-1]+f[c[i-1]][c[i]]*(1.0-p[i-1])); double x1,x2; x1=dp[i-1][j-1][0]+f[c[i-1]][d[i]]*p[i]+f[c[i-1]][c[i]]*(1.0-p[i]); x2=dp[i-1][j-1][1]+f[c[i-1]][d[i]]*p[i]*(1.0-p[i-1])+f[c[i-1]][c[i]]*(1.0-p[i-1])*(1.0-p[i])+f[d[i-1]][d[i]]*p[i]*p[i-1]+f[d[i-1]][c[i]]*(1.0-p[i])*p[i-1];dp[i][j][1]=min(x1,x2);}}double ans=dp[n][0][0];for (i=1;i<=m;i++) ans=min(ans,min(dp[n][i][0],dp[n][i][1]));printf("%.2lf",ans);}
阅读全文
0 0
- 【NOIP2016】换教室(期望dp)
- 【期望dp】NOIP2016换教室
- noip2016 换教室 期望+DP
- NOIP2016 换教室 期望DP
- bzoj4720 [NOIP2016] 换教室(期望概率DP)
- bzoj 4720(NOIP2016) 换教室 期望DP+SPFA
- bzoj 4720: [Noip2016]换教室 (期望dp)
- 【BZOJ】4720 [Noip2016]换教室 期望DP
- BZOJ4720(NOIP2016)[换教室]题解--期望DP
- BZOJ 4720 [Noip2016]换教室 期望DP
- NOIP2016[换教室] 期望概率DP
- BZOJ 4720: [Noip2016]换教室 期望dp
- [BZOJ4720][NOIP2016]换教室-期望DP
- [noip2016]换教室---floyd+期望DP
- noip2016 d1t3 换教室 期望dp+floyd
- BZOJ 4720 [Noip2016]换教室 (Floyd + 期望dp)
- bzoj 4720: [Noip2016]换教室 期望dp+最短路
- 【期望DP+最短路】BZOJ4720 [NOIP2016]换教室
- Qt平台C++拖动功能实现
- 使用js提交form表单的两种方法
- Java中四种访问权限总结
- 工欲善其事必先利其器——Android Studio Mac下快捷键与坑
- Jfinal结合Freemarker渲染界面
- 【NOIP2016】换教室(期望dp)
- Ruby 中的when
- TypeError: slice indices must be integers or None or have an index method
- Oracle 创建普通用户,并赋予权限
- 浅谈我的前端之路
- [译]The Python Tutorial#5. Data Structures
- 边沿检测
- HTML编码规范整理
- Coin sums Problem 31