洛谷 1850 NOIP2016提高组 换教室
【题解】
先用floyed处理出两点间的最短路。
设f[i][j][k]表示走到第i个教室,总共换了j次,当前换或者不换,期望的最小移动距离。
分情况讨论来转移即可。
#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
#define rg register
#define N 2010
using namespace std;
int n,m,v,e,dis[][],c[N],d[N];
double f[N][N][],k[N],ans=2e9;
inline int read(){
int k=,f=; char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(''<=c&&c<='')k=k*+c-'',c=getchar();
return k*f;
}
int main(){
n=read(); m=read(); v=read(); e=read();
for(rg int i=;i<=n;i++)
for(rg int j=;j<=m;j++) f[i][j][]=f[i][j][]=1e9;
f[][][]=f[][][]=;
for(rg int i=;i<=v;i++)
for(rg int j=;j<=v;j++) if(i!=j)dis[i][j]=1e9;
for(rg int i=;i<=n;i++) c[i]=read();
for(rg int i=;i<=n;i++) d[i]=read();
for(rg int i=;i<=n;i++) scanf("%lf",&k[i]);
for(rg int i=;i<=e;i++){
int u=read(),v=read();
dis[u][v]=dis[v][u]=min(dis[u][v],read());
}
for(rg int mid=;mid<=v;mid++)
for(rg int i=;i<=v;i++)
for(rg int j=;j<=v;j++) dis[i][j]=dis[j][i]=min(dis[i][j],dis[i][mid]+dis[mid][j]);
for(rg int i=;i<=n;i++){
int num=min(i,m);
for(rg int j=;j<=num;j++){
f[i][j][]=min(f[i][j][],f[i-][j][]+dis[c[i-]][c[i]]);
if(j>=)
f[i][j][]=min(f[i][j][],f[i-][j][]+k[i-]*dis[d[i-]][c[i]]+(-k[i-])*dis[c[i-]][c[i]]);
if(j>=)
f[i][j][]=min(f[i][j][],f[i-][j-][]+k[i]*dis[c[i-]][d[i]]+(-k[i])*dis[c[i-]][c[i]]);
if(j>=){
double tmp=;
tmp+=k[i-]*k[i]*dis[d[i-]][d[i]] + k[i-]*(-k[i])*dis[d[i-]][c[i]];
tmp+=(-k[i-])*k[i]*dis[c[i-]][d[i]] + (-k[i-])*(-k[i])*dis[c[i-]][c[i]];
f[i][j][]=min(f[i][j][],f[i-][j-][]+tmp);
}
}
}
for(rg int i=;i<=m;i++) ans=min(ans,min(f[n][i][],f[n][i][]));
printf("%.2lf\n",ans);
return ;
}
洛谷 1850 NOIP2016提高组 换教室的更多相关文章
- [NOIp2016提高组]换教室
题目大意: 有n节课,第i节课在c[i]上课,同时d[i]也有一节课d[i]. 你有权利向教务处发出m次申请把自己的教室改到d[i],相应的批准概率是k[i]. 教室是图上的一些点,其中每条边都有边权 ...
- Luogu P1850 [NOIp2016提高组]换教室 | 期望dp
题目链接 思路: <1>概率与期望期望=情况①的值*情况①的概率+情况②的值*情况②的概率+--+情况n的值*情况n的概率举个例子,抛一个骰子,每一面朝上的概率都是1/6,则这一个骰子落地 ...
- 【分块】【常数优化】【Orz faebdc】洛谷 P1083 NOIP2012提高组 借教室
分块90分. By AutSky_JadeK [重点在下面] #include<cstdio> #include<cmath> using namespace std; #de ...
- 题解 P1850 [NOIP2016 提高组] 换教室
做完这道题才略微感觉自己懂了一点关于概率与期望的知识QAQ... 一:关于概率与期望的定义 转载节选于blog 1.什么是数学期望? 数学期望亦称期望.期望值等.在概率论和统计学中,一个离散型随机变量 ...
- 洛谷P1563 [NOIP2016 提高组] 玩具谜题
题目链接:https://www.luogu.com.cn/problem/P1563 哈哈哈,这个题拿来一读是不是很吃惊hahaha,我刚开始读的时候吓了我一跳,这么长的题干,这么绕的题意,还有下面 ...
- 洛谷P2827 [NOIP2016 提高组] 蚯蚓 (二叉堆/队列)
容易想到的是用二叉堆来解决,切断一条蚯蚓,其他的都要加上一个值,不妨用一个表示偏移量的delta. 1.取出最大的x,x+=delta: 2.算出切断后的两个新长度,都减去delta和q: 3.del ...
- 洛谷P1083 [NOIP2012提高组Day2T2]借教室
P1083 借教室 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借 ...
- 洛谷 P2678 & [NOIP2015提高组] 跳石头
题目链接 https://www.luogu.org/problemnew/show/P2678 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布 ...
- 洛谷 P1025 & [NOIP2001提高组] 数的划分(搜索剪枝)
题目链接 https://www.luogu.org/problemnew/show/P1025 解题思路 一道简单的dfs题,但是需要剪枝,否则会TLE. 我们用dfs(a,u,num)来表示上一个 ...
随机推荐
- jrebel永久免费使用教程,这个标题怎么样?不能带“激活”俩字?
文章转载自:https://www.jiweichengzhu.com/article/33c0330308f5429faf7a1e74127c9708 如果还有问题,加群交流:686430774(就 ...
- Docker+Jenkins+Git发布SpringBoot应用
Doccker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之 ...
- CocoaPods 升级出现问题 (一)
升级了cocoapods 然后出现了这个问题 , 一上午时间各种FQ啊 ,终于吃完饭后找到原因了 ,OK 开工
- saltstack实战笔记
#运维管理工具 ansible #支持ssh,不需要客户端 saltstack #也是只是ssh,不需要客户端的 安装架构是,master /minion 安装salt的依赖模块 python zer ...
- Kubernetes集群认证
1.集群搭建:https://www.kubernetes.org.cn/3808.html 2.集群验证:https://www.kubernetes.org.cn/1861.html
- 贪心 Codeforces Round #273 (Div. 2) C. Table Decorations
题目传送门 /* 贪心:排序后,当a[3] > 2 * (a[1] + a[2]), 可以最多的2个,其他的都是1个,ggr,ggb, ggr... ans = a[1] + a[2]; 或先2 ...
- [转]在 Azure 云服务上设计大规模服务的最佳实践
本文转自:http://technet.microsoft.com/zh-cn/magazine/jj717232.aspx 英文版:http://msdn.microsoft.com/library ...
- 波哥!一个不安分的IT男
第一篇博文,紧张,窃喜,辣眼睛! 这个订阅号主要是写给自己的,近期越来越发现记忆力不如以前了! 时光如梭,岁月荏苒,或许这两句经典的开头文比较契合自己的年纪.依稀记得几年前还在组装服务器.搬机柜.做系 ...
- Toolbar自定义布局
Toolbar如何使用想必大家清楚地很,实际开发中标题栏的样式各色各样,因此其基本样式便不能满足我们的需求,这就需要我们自定义布局.打开ToolBar源码我们发现它继承ViewGroup,这就表示我们 ...
- Android学习笔记(十五) Http
1.Http协议概要 应用程序和服务间的请求/响应是无状态的,即响应完即断开连接. HttpClient库是Android自带的,故无需引入该库 2.Http请求和获取数据 生成代表客户端的HttpC ...