Luogu P1850 [NOIp提高组2016]换教室
2017-09-14 18:00
309 查看
题目描述 传送门
作为蒟蒻的我不懂概率,不懂期望QWQ。看别人的题解裸地期望DP似懂非懂。先写一下吧,以后再做应该会更能理解的。
代码
作为蒟蒻的我不懂概率,不懂期望QWQ。看别人的题解裸地期望DP似懂非懂。先写一下吧,以后再做应该会更能理解的。
代码
#include<cstdio> #inclu 4000 de<cstring> #include<algorithm> #include<iostream> using namespace std; const int maxn=2010,maxv=305; int a[maxn],b[maxn]; double c[maxn],f[maxn][maxn][2]; int d[maxv][maxv]; int main(){ int n,m,v,e; cin>>n>>m>>v>>e; for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) scanf("%d",&b[i]); for(int i=1;i<=n;i++) scanf("%lf",&c[i]); for(int i=1;i<=v;i++) for(int j=1;j<=v;j++) d[i][j]=1e9; for(int i=0;i<e;i++){ int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a!=b&&c<d[a][b]) d[a][b]=d[b][a]=c; } for(int i=1;i<=v;i++) d[i][i]=0; for(int k=1;k<=v;k++) for(int i=1;i<=v;i++) for(int j=1;j<=v;j++) if(d[i][k]+d[k][j]<d[i][j]) d[i][j]=d[i][k]+d[k][j]; for(int i=0;i<=n;i++) for(int j=0;j<=n;j++) f[i][j][0]=f[i][j][1]=1e9; f[1][0][0]=0; f[1][1][1]=0; for(int i=2;i<=n;i++){ f[i][0][0]=f[i-1][0][0]+d[a[i-1]][a[i]]; for(int j=1;j<=min(i,m);j++){ f[i][j][0]=min(f[i-1][j][0]+d[a[i-1]][a[i]],f[i-1][j][1]+d[b[i-1]][a[i]]*c[i-1]+d[a[i-1]][a[i]]*(1-c[i-1])); f[i][j][1]=min(f[i-1][j-1][0]+d[a[i-1]][b[i]]*c[i]+d[a[i-1]][a[i]]*(1-c[i]),f[i-1][j-1][1]+d[b[i-1]][b[i]]*c[i]*c[i-1]+d[b[i-1]][a[i]]*c[i-1]*(1-c[i])+d[a[i-1]][b[i]]*(1-c[i-1])*c[i]+d[a[i-1]][a[i]]*(1-c[i])*(1-c[i-1])); } } double ans=f [0][0]; for(int i=1;i<=m;i++) ans=min(ans,min(f [i][0],f [i][1])); printf("%.2lf",ans); return 0; }
相关文章推荐
- Noip 提高组 2016 Day1 T3 换教室 Floyd+期望dp
- 【NOIP2016提高组复赛】换教室
- [NOIp2016提高组]换教室
- 【NOIP2016提高组day1】换教室
- noip2016提高组 换教室 (数学期望+Floyd)
- 【NOIP 2016 提高组】换教室
- 【NOIP2016提高组T3】换教室-Floyd+概率DP
- 【NOIP2016提高组】换教室
- 【jzoj4905】【NOIP2016提高组】【换教室】【动态规划】【期望】
- NOIP2016提高组day1 换教室
- JZOJ 4817. 【NOIP2016提高A组五校联考4】square
- 【NOIP2016提高A组集训第9场11.7】涂色游戏
- NOIP2016提高组Day1 真题测试
- 【NOIP2016提高A组模拟10.15】打膈膜
- JZOJ 4820. 【NOIP2016提高A组模拟10.15】最大化
- bzoj4720 [NOIP2016] 换教室(期望概率DP)
- 打膈膜 【NOIP2016提高A组模拟10.15】
- 【NOIP2016提高A组模拟10.15】算循环
- JZOJ 4778. 【NOIP2016提高A组模拟9.14】数列编辑器
- 【NOIP2016提高A组集训第16场11.15】三部曲