noip2016 Day1T3
理解错题意了....导致考场上直接爆零TAT
正解就是期望dp啊,dp[i][j][0/1]表示前i节课用了j次机会,这一次用没用的期望代价
看代码吧
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
const int Mx=310;
int n,m,d,v,C[2010],D[2010];
double dp[2010][2010][2],map[Mx][Mx];
double p[2010],ans=100000007;
int main()
{
scanf("%d%d%d%d",&n,&m,&d,&v);
for(int i=0;i<Mx;i++) for(int j=0;j<Mx;j++) map[i][j]=1073741823;
for(int i=0;i<Mx;i++) map[i][i]=0;
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++) cin>>p[i];
for(int i=1;i<=v;i++)
{
int x,y;double z;scanf("%d%d%lf",&x,&y,&z);
map[x][y]=min(map[x][y],z);
map[y][x]=min(map[y][x],z);
}
for(int k=1;k<=d;k++)
for(int i=1;i<=d;i++)
for(int j=1;j<=d;j++)
map[i][j]=min(map[i][j],map[i][k]+map[k][j]);
for(int i=0;i<2010;i++) for(int j=0;j<2010;j++) dp[i][j][0]=1073741823,dp[i][j][1]=1073741823;
dp[0][0][0]=0;dp[1][0][0]=0;dp[1][1][1]=0;
for(int i=2;i<=n;i++) dp[i][0][0]=dp[i-1][0][0]+map[C[i-1]][C[i]];
for(int i=2;i<=n;i++) for(int j=1;j<=i&&j<=m;j++)
{
/*这一位不翻*/dp[i][j][0]=min(dp[i-1][j][0]+map[C[i-1]][C[i]]/*上一位不翻*/,
((dp[i-1][j][1]+map[D[i-1]][C[i]])*p[i-1])+((dp[i-1][j][1]+map[C[i-1]][C[i]])*(1-p[i-1]))/*上一位翻转*/);
/*这一位翻转*/dp[i][j][1]=min(/*上一位翻转*/
((((dp[i-1][j-1][1]+map[D[i-1]][D[i]])*p[i-1])+((dp[i-1][j-1][1]+map[C[i-1]][D[i]])*(1-p[i-1])))*p[i])//这一位翻转成功
+((((dp[i-1][j-1][1]+map[D[i-1]][C[i]])*p[i-1])+((dp[i-1][j-1][1]+map[C[i-1]][C[i]])*(1-p[i-1])))*(1-p[i])),//这一位翻转失败,
/*上一位不翻*/((dp[i-1][j-1][0]+map[C[i-1]][D[i]])*p[i])+((dp[i-1][j-1][0]+map[C[i-1]][C[i]])*(1-p[i])));
}
for(int i=0;i<=m;i++) ans=min(ans,min(dp[n][i][0],dp[n][i][1]));
printf("%.2lf",ans);
return 0;
}
noip2016 Day1T3的更多相关文章
- NOIp2016 Day1&Day2 解题报告
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
- NOIp2016 游记
DAY -2 不要问我为什么现在就开了一篇博客. 本来想起个NOIp2016爆零记或者NOIp2016退役记之类的,但是感觉现在不能乱立flag了.所以就叫游记算了. 前几场模拟赛崩了一场又一场,RP ...
- [Noip2016]蚯蚓 D2 T2 队列
[Noip2016]蚯蚓 D2 T2 Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯 ...
- [NOIP2016]愤怒的小鸟 D2 T3 状压DP
[NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...
- NOIP2016普及总结
---恢复内容开始--- 当时我说如果不出意外有385,结果就这么跪在了第二题,惨啊 本来以为发挥算正常,结果这发挥太不正常了 [T1] 水题啊[趴 注意下细节就好考你会不会写代码. [T2] 这题大 ...
- Noip2016
<这篇是以前的,不开新的了,借版面来换了个标题> 高二了 开学一周,每天被文化课作业碾压... 但是仍然阻挡不了想刷题的心情... 对付noip2016的几块:(有点少,以后补) 高精度( ...
- [NOIP2016]换教室 D1 T3 Floyed+期望DP
[NOIP2016]换教室 D1 T3 Description 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 ...
- 游记——noip2016
2016.11.18 (day 0) 呆在家. 悠闲地呆在家.. 明后天可能出现的错误: 1)没打freopen.打了ctime: 2)对拍程序忘记怎么写了...忘记随机化种子怎么写了: 3)不知道厕 ...
- NOIP2016报零记
其实,NOIP2016已经于10天之前就结束了,但是由于种种原因,没有写总结. 现在就来填上这个坑吧. DAY1: T1:一道简(kun)单(nan)的模拟,虽然ac,但是考试的时候总觉得怪怪的.并且 ...
随机推荐
- iOS开发 解决UITapGestureRecognizer手势与UITableView的点击事件的冲突
该篇文章摘自我的新浪博客,原文地址为: http://blog.sina.com.cn/s/blog_dcc636350102wavx.html UITableView 拥有属于自己的点击事件,在将一 ...
- python爬虫—爬取百度百科数据
爬虫框架:开发平台 centos6.7 根据慕课网爬虫教程编写代码 片区百度百科url,标题,内容 分为4个模块:html_downloader.py 下载器 html_outputer.py 爬取数 ...
- SQL Server 2012 安装图解教程
在安装微软最新数据库SQL Server 2012之前,编者先确定一下安装环境:Windonws 7 SP1,32位操作系统.CPU是2.1GHz赛扬双核T3500,内存2.93GB 安装SQL Se ...
- python 常用模块之os、sys、shutil
目录: 1.os 2.sys 3.shutil 一.os模块 说明:os模块是对操作系统进行调用的接口 os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 os.chdi ...
- ORA-00911: invalid character --- 字符集的问题
网上搜了一遍, 大多数是因为分号( ; ) 的问题. 而我的sql文件是没有分号的, 最后发现是sql文件编码和服务器字符集的差异造成 sql文件怎么都看不出问题,直到在UltraEdit里切换到1 ...
- [Java入门笔记] 面向对象三大特征之:继承
理解什么是继承 首先我们知道,面对对象有三大特征: 封装:解决了数据的安全性问题 继承:解决了代码的重用问题 多态:解决了程序的扩展问题 上一篇博客中,我们了解了一下封装,现在我了再来看看什么是继承. ...
- mysql5.7.13-windows 免安装版配置简介
1.下载mysql5.7.13-windows版本 (1)mysql5.7.13-win64版本百度云下载链接分享地址:链接:http://pan.baidu.com/s/1slMl4Ah 密码:w6 ...
- C++系统预定义4个用于标准数据流对象
C++系统预定义4个用于标准数据流对象 cin cout cerr clog C++里关于cerr,clog,cout三者的区别: cerr(无缓冲标准错误)-----没有缓冲,发送给它的 ...
- python高级之多进程
python高级之多进程 本节内容 多进程概念 Process类 进程间通讯 进程同步 进程池 1.多进程概念 multiprocessing is a package that supports s ...
- 几个不错的webgl教程网
http://ogldev.atspace.co.uk/index.html http://www.opengl-tutorial.org/ http://blog.wysaid.org/catego ...