P1967 货车运输 -60分
打了一个最大生成树+dfs,60分成功tle
#include <bits/stdc++.h>
using namespace std;
const int maxn = 10005;
const int maxm = 50005;
int n, m, cnt = 0;
struct edge
{
int from, to, value;
bool operator < (const edge b) const {
return this->value > b.value;
}
}es[maxm];
vector<edge> G[maxn];
struct car
{
int from, to;
}cs[30001];
int q;
void read() {
cin >> n >> m;
for(int i = 1; i <= m; i++) {
int x, y, z;
cin >> x >> y >> z;
es[cnt].from = x;
es[cnt].to = y;
es[cnt].value = z;
cnt++;
}
cin >> q;
for(int i = 1; i <= q; i++) cin >> cs[i].from >> cs[i].to;
}
int fa[maxn];
int find(int x) {
return x == fa[x] ? x : fa[x] = find(fa[x]);
}
void kruskal() {
sort(es, es+cnt);
for(int i = 1; i <= n; i++) fa[i] = i;
for(int i = 0; i < cnt; i++) {
int x = es[i].from; int y = es[i].to;
int fx = find(x); int fy = find(y);
if(fx == fy) {
es[i].value = -1;
continue;
}
else fa[fx] = fy;
}
}
void build_tree() {
sort(es, es+cnt);
for(int i = 0; i < cnt; i++) {
if(es[i].value != -1) {
int x = es[i].from;
int y = es[i].to;
G[x].push_back({x, y, es[i].value});
G[y].push_back({y, x, es[i].value});
}
else break;
}
}
int mini = 0x3f3f3f;
int vis[maxn];
void dfs(int from, int to, int m) {
vis[from] = 1;
if(from == to) {mini = m; return;}
vector<edge>::iterator it;
for(it = G[from].begin(); it != G[from].end(); it++) {
edge &e = *it;
if(!vis[e.to]) {
dfs(e.to, to, min(m, e.value));
}
}
}
void solve() {
for(int i = 1; i <= q; i++) {
int x = cs[i].from;
int y = cs[i].to;
mini = 0x3f3f3f;
memset(vis, 0, sizeof(vis));
dfs(x, y, 0x3f3f3f);
if(mini == 0x3f3f3f) cout << -1;
else cout << mini;
cout << endl;
}
}
int main() {
// freopen("input.in", "r", stdin);
read();
kruskal();
build_tree();
solve();
return 0;
}
P1967 货车运输 -60分的更多相关文章
- 洛谷 P1967 货车运输
洛谷 P1967 货车运输 题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在 ...
- Luogu P1967 货车运输(Kruskal重构树)
P1967 货车运输 题面 题目描述 \(A\) 国有 \(n\) 座城市,编号从 \(1\) 到 \(n\) ,城市之间有 \(m\) 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 \ ...
- P1967 货车运输
P1967 货车运输最大生成树+lca+并查集 #include<iostream> #include<cstdio> #include<queue> #inclu ...
- 洛谷P3379lca,HDU2586,洛谷P1967货车运输,倍增lca,树上倍增
倍增lca板子洛谷P3379 #include<cstdio> struct E { int to,next; }e[]; ],anc[][],log2n,deep[],n,m,s,ne; ...
- 【杂题总汇】NOIP2013(洛谷P1967) 货车运输
[洛谷P1967] 货车运输 重做NOIP提高组ing... +传送门-洛谷P1967+ ◇ 题目(copy from 洛谷) 题目描述 A国有n座城市,编号从1到n,城市之间有m条双向道路.每一条道 ...
- P1967 货车运输(倍增LCA,生成树)
题目链接: https://www.luogu.org/problemnew/show/P1967 题目描述 A国有n座城市,编号从 1到n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制, ...
- 洛谷 P1967 货车运输 Label: 倍增LCA && 最小瓶颈路
题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多 ...
- 洛谷 P1967 货车运输(克鲁斯卡尔重构树)
题目描述 AAA国有nn n座城市,编号从 11 1到n nn,城市之间有 mmm 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 qqq 辆货车在运输货物, 司机们想知道每辆车在不超过车 ...
- P1967 货车运输 树链剖分
题目描述 AA国有nn座城市,编号从 11到nn,城市之间有 mm 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 qq 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最 ...
随机推荐
- 用super daemon xinetd进行安全配置
xinetd 可以进行安全性或者是其他的管理机制的控制,这些控制手段都可以让我们的服务更为安全,资源管理更为合理.一些对客户端开放较多权限的服务(例如telnet)或者本身不带有管理机制的服务就可以通 ...
- Thread 的使用
对于Thread 的使用,我要注意的是我经常忽略".start()".之前由于在android开发中,如果是使用网络加载的功能,这个部分需要新增线程,不能在主线程使用. 然后注意要 ...
- 由case 和 break 引发的思考
我在使用case 语句的时候,发现结果不对劲,原来我是忽略了break这个语句的添加 然后,我要反思的是,这样基本的语句,我这样的错误也能犯,证明我自己之前还没有真正掌握这个语句的使用. 所以,真正地 ...
- sparklyr包--实现R与Spark接口
1.sparklyr包简介 Rstudio公司发布的sparklyr包具有以下几个功能: 实现R与Spark的连接: sparklyr包提供了一个完整的dplyr后端,可筛选并聚合Spark数据集,接 ...
- NUC_TeamTEST_B(贪心)
B - B Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- 支持向量机(SVM)
断断续续看了好多天,赶紧补上坑. 感谢july的 http://blog.csdn.net/v_july_v/article/details/7624837/ 以及CSDN上淘的比较正规的SMO C+ ...
- 【wikioi】1041 Car的旅行路线
题目链接 算法:最短路(数据弱,Floyd也能过) 惨痛的教训:此题我至少提交了20次,原因在于= =太草率和粗心了,看到那个多少组数据以为是城市的数量,导致数组开得小小的= =.(对不起,wikio ...
- JavaScript进阶(二)
什么是事件 JavaScript 创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件. 比如说,当用户单击 ...
- 递归函数的用法及array_merge的用法
$info=M('navclass')->select(); function getAllArray($data, $pid =1) { $arr = array(); foreach ($d ...
- Redis_高可用方案Sentinel配置
最小化的sentinel配置文件为: 1 port 7031 2 3 dir /opt/app/redis/redis-2.8.17/tmp 4 5 sentinel monitor mymaster ...