NOIP2016提高组Day1T3 换教室
来源:互联网 发布:linux上传文件命令rz 编辑:程序博客网 时间:2024/04/28 19:17
分析
这是一道期望题,
设
转移比较简单,但是有一定麻烦。
因为v很小,
所以最短路可以用Floyd预先处理一下。
code(c++)
#include <cstdio>#include <algorithm>#include <cstring>#include <string.h>#include <cmath>#include <math.h>#define N 2003using namespace std;int n,m,v,e,x,y,z; int d[2003],c[2003]; double f[2003][2003][2],dis[303][303],k[2003],ans;int main(){ freopen("classroom.in","r",stdin); freopen("classrooms.out","w",stdout); scanf("%d%d%d%d",&n,&m,&v,&e); for(int i=1;i<=n;i++) scanf("%d",&c[i]); for(int i=1;i<=n;i++) scanf("%d",&d[i]); for(int i=1;i<=n;i++) scanf("%lf",&k[i]); memset(dis,127,sizeof(dis)); memset(f,127,sizeof(f)); for(int i=1;i<=e;i++) { scanf("%d%d%d",&x,&y,&z); if((x!=y)&&(dis[x][y]>z))dis[x][y]=dis[y][x]=z; } for(int k=1;k<=v;k++) for(int i=1;i<=v;i++) if(i!=k) for(int j=1;j<=v;j++) if(dis[i][k]+dis[k][j]<dis[i][j])dis[i][j]=dis[i][k]+dis[k][j]; for(int i=0;i<=v;i++) dis[i][i]=dis[0][i]=0; f[0][0][0]=c[0]=d[0]=0; for(int i=0;i<=m;i++) f[0][i][0]=f[0][i][1]=0; for(int i=1;i<=n;i++) for(int j=0;j<=min(i,m);j++) { f[i][j][0]=f[i-1][j][0]+dis[c[i-1]][c[i]]; if(j>=1) { f[i][j][0]=min(f[i][j][0],f[i-1][j][1]+k[i-1]*dis[d[i-1]][c[i]]+(1-k[i-1])*dis[c[i-1]][c[i]]); f[i][j][1]=f[i-1][j-1][0]+k[i]*dis[c[i-1]][d[i]]+(1-k[i])*dis[c[i-1]][c[i]]; if(j>=2)f[i][j][1]=min(f[i][j][1],f[i-1][j-1][1] +k[i-1]*k[i]*dis[d[i-1]][d[i]] +(1-k[i-1])*k[i]*dis[c[i-1]][d[i]] +k[i-1]*(1-k[i])*dis[d[i-1]][c[i]] +(1-k[i-1])*(1-k[i])*dis[c[i-1]][c[i]]); } } ans=2147483647; for(int i=0;i<=m;i++) { ans=min(ans,f[n][i][0]); ans=min(ans,f[n][i][1]); } printf("%.2lf",ans);}
1 0
- 换教室(NOIP2016提高组Day1T3)
- NOIP2016提高组Day1T3 换教室
- 【NOIP2016提高组day1】换教室
- NOIP2016提高组day1 换教室
- 【NOIP2016提高组复赛】换教室
- 【NOIP2016提高组】换教室
- [NOIP2016]Day1T3 换座位
- 【jzoj4905】【NOIP2016提高组】【换教室】【动态规划】【期望】
- noip2016提高组 换教室 (数学期望+Floyd)
- 【NOIP2016提高组T3】换教室-Floyd+概率DP
- BZOJ4720 [Noip2016]换教室
- [NOIP2016]换教室
- [NOIP2016] 换教室
- 【noip2016】换教室 题解
- NOIP2016 换教室
- bzoj4720 [Noip2016]换教室
- NOIP2016换教室
- NOIP2016 T3 换教室
- mybatis 并发问题解决,参考hibernate
- 参考文献
- 小谈网络游戏同步
- 润乾报表样式的CSS控制
- mac重装系统之Maven安装
- NOIP2016提高组Day1T3 换教室
- 无参考图像质量评价之图像质量评价方法(一)[均方根误差、峰值信噪比、结构相似度]
- 灰度共生矩阵 学习笔记
- 52-table中cellspacing、cellpadding的css替代写法
- 【NOIP 2016 提高组】天天爱跑步
- 【JZOJ 4876】 基因突变
- Android程序员知会的进程和线程相关知识
- iOS 键盘相关
- Android免root流量防火墙,简单小程序