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]\)上课,如果申请换课成功, ...
随机推荐
- 20155321 《网络对抗》 Exp6 信息搜集与漏洞扫描
20155321 <网络对抗> Exp6 信息搜集与漏洞扫描 实验内容 信息搜集 whois 在kali终端输入whois 网址,查看注册的公司.服务.注册省份.传真.电话等信息 dig或 ...
- ActiveMQ 的安装与使用(springboot版本)
一.安装 上官网下载tar包 http://activemq.apache.org/ tar -zxvf 后进入bin/linux-86-64 ./activimq start 启动 二.使用 pom ...
- JSON传输数组的基本操作
目标JSON结果如下: 生成JSON的的过程如下: Document document; Document::AllocatorType& allocator = document.GetAl ...
- scala学习——(1)scala基础(下)
(七)定长数组 val array_name = new Array[T](length) val array_name = Array("","") 通过() ...
- 工具神器推荐 Vox 和 search everything
工具神器推荐 Vox 和 search everything vox官网: http://www.wox.one/
- Macaca 基础原理浅析
导语 前面几篇文章介绍了在Macaca实践中的一些实用技巧与解决方案,今天简单分析一下Macaca的基础原理.这篇文章将以前面所分享的UI自动化Macaca-Java版实践心得中的demo为基础,进行 ...
- 一个可以代替冗长switch-case的消息分发小框架
在项目中,我需要维护一个应用层的字节流协议.这个协议的每条报文都是一个字节数组,数组的头两个字节表示消息的传送方向,第三.四个字节表示消息ID,也就是消息种类,再往后是消息内容.时间戳.校验码等……整 ...
- 【Android UI设计与开发】第04期:引导界面(四)仿人人网V5.9.2最新版引导界面
这一篇我将会以人人网的引导界面为实例来展开详细的讲解,人人网的引导界面比较的新颖,不同于其他应用程序千篇一律的靠滑动来引导用户,而是以一个一个比较生动形象的动画效果展示在用户们的面前,有一种给人眼前一 ...
- C#_委托
委托属于C#中的新名词,它的应用也非常广泛,例如事件就是委托最简单而又直接的例子. 那么首先说说什么是委托,其实委托在用过C或者C++的人看来就是函数指针,不过使用C#的大多数人都没有用过这两门语言, ...
- 浅谈SVG(可缩放的矢量图形)
前一段项目中用到了svg图片就和其他的元素一样 直接引用就可以展示在页面上,因为项目紧张没有仔细的研究,最近在扩展自己的基础知识,偶然看到了这个东西,于是总结了一些博客园中关于这个svg的基础知识,只 ...