usaco 过路费 Cow Toll Paths, 2009 Dec
Description
翰家有 N 片草地,编号为 1 到 N ,彼此之间由 M 条双向道路连接,第 i 条道路连接了 Ai 和Bi,两片草地之间可能有多条道路,但没有道路会连接同一片草地,现有的道路可以保证任意两片草 地都是连通的。
有一天,约翰宣布奶牛走路要收过路费,只要奶牛走过第 i 条道路,就要收费 Li 元。此外,约 翰还要求每头奶牛购买牌照,他为每片草地设置了牌照标准,如果奶牛购买的牌照价格低于某片草地 的标准,她将被禁止进入那片草地。第 i 片草地的牌照标准为 Ci。
新政策一出,奶牛们敢怒不敢言,有 Q 头奶牛向你咨询最省钱的走路办法,第 i 头奶牛要从草地Si 走到 Ti。请你帮她们算算,选择什么样的路线才能最省钱?
Input Format
第一行:三个整数 N ,M 和 Q,1 ≤ N ≤ 250; 1 ≤ M ≤ 10000; 1 ≤ Q ≤ 10000
• 第二行到第 N + 1 行:第 i + 1 行有一个整数 Ci,1 ≤ Ci ≤ 10^6
• 第 N + 2 行到第 N + M + 1 行:第 i + 1 行有三个整数 Ai,Bi 和 Li,1 ≤ Ai ; B i ≤ N ,1 ≤ Li ≤ 10^6
• 第 N + M +2 行到第 N + M + Q +1 行:第 i + N + M +1 行有两个整数 Si 和 Ti,1 ≤ Si,Ti ≤ N
Output Format
第一行到第 Q 行:第 i 行有一个整数,表示从 Si 到 Ti 的最低费用是多少
Sample Input
样例输入
5 7 2
2
5
3
3
4
1 2 3
1 3 2
2 5 3
5 3 1
5 4 1
2 4 3
3 4 4
1 4
2 3
Sample Output
样例输出
8
9
解释
最 好 办 法 分 别 是 1 → 3 → 5 → 4 和
2 → 5 → 3 一题不错的floyed图论题;要吃透了floyed才能打出正解;
首先最暴力打法就是枚举牌照;那么时间复杂度就会达到n^4;40%;
数据中 n<=250;那么我们很显然要考虑优化;n^3?;
可floyed中的起始点和终止点和过渡点是没法省略的;
那方向就明确了;要把枚举路牌那维降到o(1);
我们仔细想想 这些路径有以下性质
不妨设s为起点;t为终点;
1:路牌费用越大 那么s->t的路程是非上升的序列;
2:路径上最大路牌的费用+路程=总费用;
那么我们将每个点的点权进行排序,然后从小到大枚举过渡点进行floyed;100%;
排序的合理性在于 由于路径满足性质 1;所以在floyed过程中最短路会持续更新;
s->t的起终点不变;过渡点点权持续增加那么 路径的最大点权也会持续更新;
那就可以考虑到所有的情况 是合理的;
核心程序
bool cmp(const st x,const st y)
{
if(x.w<y.w)return true;
return false;
} std::sort(mu+,mu++n,cmp);
for(i=;i<=n;++i)
{
g[i][i]=w[i];
f[i][i]=;
}
for(int z=;z<=n;++z)
{
k=mu[z].id;
for(i=;i<=n;++i)
for(j=;j<=n;++j)
{
f[i][j]=min(f[i][k]+f[k][j],f[i][j]);
g[j][i]=g[i][j]=min(g[i][j],max(w[k],max(w[i],w[j]))+f[i][j]);
}
}
usaco 过路费 Cow Toll Paths, 2009 Dec的更多相关文章
- <USACO09DEC>过路费Cow Toll Pathsの思路
啊好气 在洛谷上A了之后 隔壁jzoj总wa 迷茫了很久.发现那题要文件输入输出 生气 肥肠不爽 Description 跟所有人一样,农夫约翰以着宁教我负天下牛,休叫天下牛负我的伟大精神,日日夜夜苦 ...
- P2966 [USACO09DEC]牛收费路径Cow Toll Paths
P2966 [USACO09DEC]牛收费路径Cow Toll Paths 题目描述 Like everyone else, FJ is always thinking up ways to incr ...
- P2966 [USACO09DEC]Cow Toll Paths G
题意描述 Cow Toll Paths G 这道题翻译的是真的不错,特别是第一句话 给定一张有 \(n\) 个点 \(m\) 条边的无向图,每条边有边权,每个点有点权. 两点之间的路径长度为所有边权 ...
- USACO 2009 Dec cow toll paths 过路费-floyd
这道题首先要明确一点,那就是当你从一个点走到自己时,也是需要花费这个点点权值的费用.这个点卡了我两次QWQ 然后我比较喜欢分两步搞: 首先,我们利用floyd的一个性质:就是在更新其他点之间的路线时要 ...
- BZOJ1774[USACO 2009 Dec Gold 2.Cow Toll Paths]——floyd
题目描述 跟所有人一样,农夫约翰以着宁教我负天下牛,休叫天下牛负我的伟大精神,日日夜夜苦思生 财之道.为了发财,他设置了一系列的规章制度,使得任何一只奶牛在农场中的道路行走,都 要向农夫约翰上交过路费 ...
- Luogu P2966 [USACO09DEC]牛收费路径Cow Toll Paths
题目描述 Like everyone else, FJ is always thinking up ways to increase his revenue. To this end, he has ...
- [USACO09DEC] Cow Toll Paths
https://www.luogu.org/problem/show?pid=2966 题目描述 Like everyone else, FJ is always thinking up ways t ...
- 洛谷 P2966 [USACO09DEC]牛收费路径Cow Toll Paths
题目描述 Like everyone else, FJ is always thinking up ways to increase his revenue. To this end, he has ...
- [USACO09DEC]牛收费路径Cow Toll Paths(floyd、加路径上最大点权值的最短路径)
https://www.luogu.org/problem/P2966 题目描述 Like everyone else, FJ is always thinking up ways to increa ...
随机推荐
- 【第8篇】:Python之面向对象
python之--------封装 一.封装: 补充封装: 封装: 体现在两点: 1.数据的封装(将数据封装到对象中) obj = Foo('宝宝',22) 2.封装方法和属性,将一类操作封装到一个类 ...
- cogs——49. 跳马问题
49. 跳马问题 水题 dfs裸基础 #include<cstdio> using namespace std; ]={,,,,}, ans,my[]={,-,,-,}; inline v ...
- Dinic当前弧优化 模板及教程
在阅读本文前,建议先自学最大流的Ek算法. 引入 Ek的核心是执行bfs,一旦找到增广路就停下来进行增广.换言之,执行一遍BFS执行一遍DFS,这使得效率大大降低.于是我们可以考虑优化. 核心思路 在 ...
- Linux:在安装虚拟机时如何选择网络类型?
如图所示工作站提供了5种网络模式,我们主要用的就是上面3种:桥接模式,NAT,仅主机 1,仅主机模式 仅主机模式:虚拟机用过vmnet1网卡与宿主机通信,但是不能与物理局域网内其他主机通信,可利用虚拟 ...
- 9.boost权重控制
主要知识点: 学会在should中使用boost进行权重控制 假如现在有一个需求:要把should中某些字段优先显示, 1.不加boost权重控制 GET /forum/article/_se ...
- Problem 42
Problem 42 https://projecteuler.net/problem=42 The nth term of the sequence of triangle numbers is g ...
- Jzzhu and Numbers
Jzzhu and Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- [Poj3261] [Bzoj1717] [后缀数组论文例题,USACO 2006 December Gold] Milk Patterns [后缀数组可重叠的k次最长重复子串]
和上一题(POJ1743,上一篇博客)相似,只是二分的判断条件是:是否存在一段后缀的个数不小于k #include <iostream> #include <algorithm> ...
- MySQL5.7出现无法启动服务等问题
MySQL5.7版本后有点不同,就是没有DATA文件夹.总是莫名其妙出现一些错误.比如连不上数据库了,出现错误 can't connect mysql on localhost,键入 net star ...
- N天学习一个linux命令之rsync
用途 主要用于本地和远程主机同步文件 特性 1 使用增量传输算法(delta-transfer algorithm) 2 支持ssh,rsync协议 3 可以用于本地同步文件 4 本地和远程主机都需要 ...