【BZOJ4720】【NOIP2016】换教室
我当年真是naive……
原题:
f[i][j][k],i是时间,j是用了多少次机会,k=0/1表示用了/没用
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int rd(){int z=,mk=; char ch=getchar();
while(ch<''||ch>''){if(ch=='-')mk=-; ch=getchar();}
while(ch>=''&&ch<=''){z=(z<<)+(z<<)+ch-''; ch=getchar();}
return z*mk;
}
int n,m,nn,mm,a[],b[]; double p[];
int e[][];
double f[][][];
void floyd(){
for(int k=;k<=nn;++k)for(int i=;i<=nn;++i)for(int j=;j<=nn;++j)
if(e[i][k]+e[k][j]<e[i][j]) e[i][j]=e[i][k]+e[k][j];
}
int main(){//freopen("ddd.in","r",stdin);
memset(e,,sizeof(e));
cin>>n>>m>>nn>>mm;
for(int i=;i<=n;++i) a[i]=rd();
for(int i=;i<=n;++i) b[i]=rd();
for(int i=;i<=n;++i) scanf("%lf",&p[i]);
int l,r,v;
while(mm--){ l=rd(),r=rd(),v=rd(); e[l][r]=e[r][l]=min(v,e[l][r]);}
for(int i=;i<=nn;++i) e[i][i]=;
floyd();
for(int i=;i<=n;++i)for(int j=;j<=m;++j) f[i][j][]=f[i][j][]=1e30;
f[][][]=f[][][]=;
for(int i=;i<=n;++i)for(int j=;j<=m;++j){
f[i][j][]=min(f[i-][j][]+e[a[i-]][a[i]],f[i-][j][]+e[a[i-]][a[i]]*(-p[i-])+e[b[i-]][a[i]]*p[i-]);
if(j>=){
f[i][j][]=min(f[i][j][],f[i-][j-][]+e[a[i-]][a[i]]*(-p[i])+e[a[i-]][b[i]]*p[i]);
f[i][j][]=min(f[i][j][],f[i-][j-][]+e[a[i-]][a[i]]*(-p[i-])*(-p[i])+e[a[i-]][b[i]]*(-p[i-])*p[i]
+e[b[i-]][a[i]]*p[i-]*(-p[i])+e[b[i-]][b[i]]*p[i-]*p[i]);
}
}
double ans=1e30;
for(int i=;i<=m;++i) ans=min(ans,min(f[n][i][],f[n][i][]));
printf("%.2lf\n",ans);
return ;
}
【BZOJ4720】【NOIP2016】换教室的更多相关文章
- bzoj4720: [Noip2016]换教室(期望dp)
4720: [Noip2016]换教室 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1294 Solved: 698[Submit][Status ...
- BZOJ4720 [Noip2016]换教室
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- 2018.08.30 bzoj4720: [Noip2016]换教室(期望dp)
传送门 一道无脑的期望dp. 用f[i][j][0/1]表示前i堂课提出了j次申请且第i堂课没有(有)提出申请. 这样就可以状态转移了. 然而这题状态转移方程有点长... (主要是情况多... 代码: ...
- [NOIP2016]换教室 D1 T3 Floyed+期望DP
[NOIP2016]换教室 D1 T3 Description 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 ...
- BZOJ 4720 [Noip2016]换教室
4720: [Noip2016]换教室 Description 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节课程安排在n个时间段上.在第i( ...
- 【BZOJ】4720: [Noip2016]换教室
4720: [Noip2016]换教室 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1690 Solved: 979[Submit][Status ...
- [NOIP2016]换教室 题解(奇怪的三种状态)
2558. [NOIP2016]换教室 [题目描述] 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第i(1< ...
- 【bzoj4720】[NOIP2016]换教室
题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的 ...
- 【bzoj4720】[NOIP2016]换教室 期望dp
题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的 ...
- [NOIp2016] 换教室
题目类型:期望\(DP\) 传送门:>Here< 题意:现有\(N\)个时间段,每个时间段上一节课.如果不申请换教室,那么时间段\(i\)必须去教室\(c[i]\)上课,如果申请换课成功, ...
随机推荐
- python介绍与入门
一.python 的介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为 ...
- netty]--最通用TCP黏包解决方案
netty]--最通用TCP黏包解决方案:LengthFieldBasedFrameDecoder和LengthFieldPrepender 2017年02月19日 15:02:11 惜暮 阅读数:1 ...
- 戴尔poweredge r730服务器配置及系统安装详解教程
第一次给服务器安装的是ubantu系统: 首先我们开机进入小型BIOS设置一下RAID,或者进入服务器管理系统,在系统的BIOS中进行RAID设置: 开机后当看到出现< Ctrl > 时按 ...
- sass 继承 占位符 %placeholder
@extend //SCSS .btn { border: 1px solid #ccc; padding: 6px 10px; font-size: 14px; } .btn-primary { b ...
- 深入理解java虚拟机---虚拟机工具jinfo(十五)
作用: 实时查看和调整虚拟机参数. jinfo 是jdk自带的一个工具,它可以用来查看正在运行的java应用程序的扩展参数(JVM中-X标示的参数):甚至支持在运行时修改部分参数. 1.通过以下的命令 ...
- hibernate查询oracle数据库表报错SQL state [null]; error code [17027]; 流已被关闭; nested exception is java.sql.SQLException: 流已被关闭
把表字段类型 long 修改为 number类型即可
- L319 Zigbee test coding- field test fail-base on EFR32MG1
1 Test coding Zigbee test of Tx power and frequency for every channel. Testing Procedure1) Power up ...
- 2019-02-22 L231
Scientists at the Massachusetts Institute of Technology have said lobsters could be key to creating ...
- JAVA_概念01_跨域
1.什么是跨域? 协议.域名.端口都相同是同域,否则是跨域. 服务器不允许ajax跨域获取数据 2.解决办法? ①jsonp :Jsonp不是一种数据格式,而json是一种数据格式,jsonp是用来解 ...
- elementUI 日期 周一、周二、周三、周四、周五、周六、周日快捷键
<el-date-picker v-model="ruleForm.pickDateMeal" type="daterange" align=" ...