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]\)上课,如果申请换课成功, ...
随机推荐
- 20155229《网络对抗技术》Exp3:免杀原理与实践
实验预习 免杀: 看为一种能使病毒木马避免被杀毒软件查杀的技术. 免杀的分类: 开源免杀:指在有病毒.木马源代码的前提下,通过修改源代码进行免杀.. 手工免杀:指在仅有病毒.木马的可执行文件(.exe ...
- MFC Timer定时器
知识点: 定时器Timer 创建定时器 销毁定时器 代码测试 一. 创建定时器 UINT SetTimer( HWND hWnd, // 指定关联定时器的窗口句柄,在MFC版将省略此参数 UINT n ...
- mfc 类模板
类模板 创建类模板 添加成员变量 添加成员函数 定义类模板对象 一.创建类模板 template <class T,class T2> template <class T> 二 ...
- CS190.1x-ML_lab1_review_student
这是CS190.1x第一次作业,主要教你如何使用numpy.numpy可以说是python科学计算的基础包了,用途非常广泛.相关ipynb文件见我github. 这次作业主要分成5个部分,分别是:数学 ...
- SQL Server Integration Services的10大最佳实践
原文出处:https://blogs.msdn.microsoft.com/sqlcat/2013/09/16/top-10-sql-server-integration-services-best- ...
- 初级字典树查找在 Emoji、关键字检索上的运用 Part-2
系列索引 Unicode 与 Emoji 字典树 TrieTree 与性能测试 生产实践 在有了 Unicode 和 Emoji 的知识准备后,本文进入编码环节. 我们知道 Emoji 是 Unico ...
- Vxlan抓包
实验目的:验证Openstack vxlan组网模式验证虚拟机数据是否通过物理网卡流出 一. 同网段不同主机间虚拟机通讯 (同网段通讯直接通过物理机隧道口链接对端物理机隧道口,不需要通过网络节点): ...
- 【翻译】Brewer's CAP Theorem CAP定理
Brewer's CAP Theorem 原文地址:http://www.julianbrowne.com/article/brewers-cap-theorem Brewer’s (CAP) The ...
- spring boot 2.0 源码分析(二)
在上一章学习了spring boot 2.0启动的大概流程以后,今天我们来深挖一下SpringApplication实例变量的run函数. 先把这段run函数的代码贴出来: /** * Run the ...
- Daily Scrum - 11/19
今天任烁帮忙更新了大家在Sprint 2中的Task,基本每人的Task都是细分到每天的,这样大家初期的工作应该会更有效率一点. 任烁今天表示“进度条背词法”应该是可以融合到原有算法中的,期待他的改进 ...