BZOJ 4720 [Noip2016]换教室
4720: [Noip2016]换教室
Description
Input
Output
Sample Input
2 1 2
1 2 1
0.8 0.2 0.5
1 2 5
1 3 3
2 3 1
Sample Output
/**************************************************************
Problem: 4720
User: Doggu
Language: C++
Result: Accepted
Time:1960 ms
Memory:1292 kb
****************************************************************/ #define PN "classroom"
#include <cstdio>
#include <cstring>
#include <algorithm>
#define smin(x,y) x=std::min(x,y)
const int N = +;
const int M = +;
const int V = +;
int n, m, v, e, c[N], d[N], dis[V][V], cur=;
double k[N], f[][][M]; int main() {
scanf("%d%d%d%d",&n,&m,&v,&e);
for( int i = ; i <= n; i++ ) scanf("%d",&c[i]);
for( int i = ; i <= n; i++ ) scanf("%d",&d[i]);
for( int i = ; i <= n; i++ ) scanf("%lf",&k[i]);
memset(dis,,sizeof(dis));
for( int i = ,a,b,w; i <= e; i++ ) {
scanf("%d%d%d",&a,&b,&w);
if(dis[a][b]>w) dis[a][b]=dis[b][a]=w;
}
for( int i = ; i <= v; i++ ) dis[i][i]=;
for( int p = ; p <= v; p++ )
for( int i = ; i <= v; i++ )
for( int j = ; j <= v; j++ )
if (dis[i][j]>dis[i][p]+dis[p][j])
dis[i][j]=dis[i][p]+dis[p][j],
dis[j][i]=dis[i][j];
memset(f[cur],,sizeof(f[cur]));f[cur][][]=f[cur][][]=;
for( int i = ; i <= n; i++ ) {
cur^=;memset(f[cur],,sizeof(f[cur]));
for( int p = ; p <= m; p++ ) {
smin(f[cur][][p],f[cur^][][p]+k[i-]*dis[c[i]][d[i-]]+(-k[i-])*dis[c[i]][c[i-]]);
smin(f[cur][][p],f[cur^][][p]+dis[c[i]][c[i-]]);
smin(f[cur][][p+],f[cur^][][p]+k[i]*k[i-]*dis[d[i]][d[i-]]+(-k[i])*k[i-]*dis[c[i]][d[i-]]+k[i]*(-k[i-])*dis[d[i]][c[i-]]+(-k[i])*(-k[i-])*dis[c[i]][c[i-]]);
smin(f[cur][][p+],f[cur^][][p]+k[i]*dis[d[i]][c[i-]]+(-k[i])*dis[c[i]][c[i-]]);
}
}
double ans=;
for( int j = ; j <= ; j++ )
for( int p = ; p <= m; p++ )
ans=std::min(ans,f[cur][j][p]);
printf("%.2lf\n",ans);
return ;
}
NOIP第一道期望DP
BZOJ 4720 [Noip2016]换教室的更多相关文章
- bzoj 4720: [Noip2016]换教室【期望dp】
状压dp,设f[i][j][0/1]为前i个时间段换了j间教室的期望体力消耗,转移很好想(但是写起来好长= =) #include<iostream> #include<cstdio ...
- 【BZOJ】4720: [Noip2016]换教室
4720: [Noip2016]换教室 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1690 Solved: 979[Submit][Status ...
- BZOJ P4720[Noip2016]换教室____solution
题目太长不表 <--无形传送,最为致命 学习一点数学期望的基础,预处理最短路,然后加上DP即可.(废话) 理解决策和结果的差别: 在这里每阶段的决策有两个:申请|不申请 结果有两个:换|不换 然 ...
- bzoj4720: [Noip2016]换教室(期望dp)
4720: [Noip2016]换教室 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1294 Solved: 698[Submit][Status ...
- [NOIP2016]换教室 D1 T3 Floyed+期望DP
[NOIP2016]换教室 D1 T3 Description 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 ...
- [NOIP2016]换教室 题解(奇怪的三种状态)
2558. [NOIP2016]换教室 [题目描述] 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第i(1< ...
- NOIP2016换教室 BZOJ 4720
BZOJ 4720 换教室 题目描述: 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节 课程安排在n个时间段上.在第i(1≤i≤n)个时间段上 ...
- 【bzoj4720】[NOIP2016]换教室
题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的 ...
- [NOIp2016] 换教室
题目类型:期望\(DP\) 传送门:>Here< 题意:现有\(N\)个时间段,每个时间段上一节课.如果不申请换教室,那么时间段\(i\)必须去教室\(c[i]\)上课,如果申请换课成功, ...
随机推荐
- 解决debug到jdk源码时不能查看变量值的问题
目录 如何跟踪jdk源码 1. 编译源码 2. 关联源码 3. 大功告成 如何跟踪jdk源码 看到这个标题大概大家都会在心里想谁还跟踪个源码呀,在eclipse中打个断点,以debug的方式运行,然后 ...
- Kubernetes学习之路(二十四)之Prometheus监控
目录 1.Prometheus概述 2.Prometheus部署 2.1.创建名称空间prom 2.2.部署node_exporter 2.3.部署prometheus-server 2.4.部署ku ...
- opencv配置(转)
1. 下载安装Opencv,去官网http://opencv.org/即可下载最新版本的Opencv,此处用的是Opencv 2.4.10 安装时傻瓜式的,最新版本的安装就是相当于解压到你指定的安装目 ...
- 继承类中static数据值
class A{ static int num = 1; public static void Display(){ System.out.println( num ); } } class B ex ...
- JS跨浏览器的事件处理
1. 事件流 事件:用户或浏览器自身执行的某种动作.如click(点击事件).mouse***(鼠标事件). 事件流:页面中接收事件的顺序,也可理解为事件在页面中传播的顺序. DOM事件流包括三个阶段 ...
- CS50.2
1,ssd硬盘(solid state disk),固态硬盘,固盘. 2,把电磁信号转化为0或者1 ps:记得吧图给加上 反向即从磁盘中得到数据 3,软盘,floppy disk.早期使用的一种存储. ...
- 一步一步来熟悉Akka.Net(一)
一步一步来熟悉Akka.Net(一) 标签(空格分隔): .netcore 分布式 一.不利flag 好久没写过文章了,翻开前几年写的博客,看到有两个目标"代码生成器"和&qu ...
- 【GAN与NLP】GAN的原理 —— 与VAE对比及JS散度出发
0. introduction GAN模型最早由Ian Goodfellow et al于2014年提出,之后主要用于signal processing和natural document proces ...
- 一个http请求发送到后端的详细过程
我们来看当我们在浏览器输入http://www.mycompany.com:8080/mydir/index.html,幕后所发生的一切. 首先http是一个应用层的协议,在这个层的协议,只是一种通讯 ...
- jmeter学习(1)基础支持+安装部署
1. Apache jmeter 是100%的java桌面应用程序 支持的协议有:WEB-HTTP/HTTPS , SOAP, FTP, JDBC, LDAP, MAIL, MongoDB ...