POJ 2831
次小生成树。求出两点间最短路径的最大权值,再把要加入的边与之比较即可。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; const int MAXN=;
const int MAXM=;
const int inf=;
int map[MAXN][MAXN];
int edge[MAXM][];
bool exist[MAXN][MAXN],used[MAXN][MAXN],vis[MAXN];
int f[MAXN][MAXN],dist[MAXN],pre[MAXN];
int m,n,q;
int ans1=;
void init(){
for(int i=;i<=n;i++){
vis[i]=false;
for(int j=i;j<=n;j++){
map[i][j]=map[j][i]=inf;
exist[i][j]=exist[j][i]=used[i][j]=used[j][i]=false;
f[i][j]=f[j][i]=;
}
}
} void prim(){
dist[]=;
for(int i=;i<=n;i++){
dist[i]=map[][i];
if(dist[i]!=inf)
pre[i]=;
else pre[i]=-;
}
vis[]=true;
for(int i=;i<=n;i++){
int min=inf,p=-;
for(int k=;k<=n;k++){
if(dist[k]<min&&!vis[k]){
min=dist[k]; p=k;
}
}
if(p==-) return ;
for(int k=;k<=n;k++){
if(vis[k]){
f[k][p]=max(f[k][pre[p]],map[pre[p]][p]);
f[p][k]=f[k][p];
}
}
vis[p]=true;
for(int k=;k<=n;k++){
if(!vis[k]&&map[p][k]<dist[k]){
dist[k]=map[p][k];
pre[k]=p;
}
}
}
} int main(){
int u,v,d;
int c,w;
while(scanf("%d%d%d",&n,&m,&q)!=EOF){
init();
for(int i=;i<=m;i++){
scanf("%d%d%d",&u,&v,&d);
edge[i][]=u; edge[i][]=v; edge[i][]=d;
if(d<map[u][v])
map[u][v]=map[v][u]=d;
}
prim();
for(int i=;i<=q;i++){
scanf("%d%d",&c,&w);
u=edge[c][]; v=edge[c][];
if(w<=f[u][v])
printf("Yes\n");
else printf("No\n");
}
}
return ;
}
POJ 2831的更多相关文章
- POJ 2831 Can We Build This One:次小生成树【N^2预处理】
题目链接:http://poj.org/problem?id=2831 题意: 给你一个图,每条边有边权. 然后有q组询问(i,x),问你如果将第i条边的边权改为x,这条边是否有可能在新的最小生成树中 ...
- POJ 2831 Can We Build This One?
Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 1728 Accepted: 643 Case Time Limit: 2 ...
- poj 2831 次小生成树模板
/*次小生成树 题意:给你一些路径,现在将一部分路径权值减少后问是否可以替代最小生成树里面的边. 解:次小生成树,即将这条边连上,构成一个环 求出任意两点路径之间的除了这条边的最大值,比较这个最大值& ...
- POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
- POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理
Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7192 Accepted: 3138 ...
- POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治
The Pilots Brothers' refrigerator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22286 ...
- POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37427 Accepted: 16288 Descr ...
- POJ 3254. Corn Fields 状态压缩DP (入门级)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
- POJ 2739. Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...
随机推荐
- Enter the path to the kernel header files for the 3.18.0-kali1-686-pae kerne vmware tool
安装VMWare Tools出现提示:Enter the path to the kernel header files for the 3.18.0-kali1-686-pae kerne? 201 ...
- 七牛php上传下载类,集成官方文档的方法
<?phpuse Qiniu\Auth;use Qiniu\Storage\UploadManager;class qiniu{ public $_accesskey = null; publi ...
- Django day08 多表操作 (三) 基于对象的跨表查询 基于双下划线的多表查询
一: 基于对象的跨表查询 1. 一对一 正向: 反向: 2. 一对多 正向: 反向: 3.多对多 正向: 反向: 4.*****基于对象的多表查询 二: 基于双下划线的多表查询 1. 连表查询 一对一 ...
- JavaScript是按值传递还是按引用传递?
JavaScript是按值传递的,但是要分情况才知道传递之后原来的值会不会变,不然会出现你想都想不出来的bug 一.按值传递--元类型输入tip:元类型( number, string, boolea ...
- ThreadLocal类详解
学习一个东西首先要知道为什么要引入它,就是我们能用它来干什么.所以我们先来看看ThreadLocal对我们到底有什么用,然后再来看看它的实现原理. ThreadLocal如果单纯从名字上来看像是“本地 ...
- 5.20rieds切换数据库
- HTML的display属性将行内元素、块状元素、行内块状元素互相转换以及三者的区别
1.行内元素 查看演示 (1)设置宽高无效 (2)对margin仅设置左右方向有效,上下无效:padding设置上下左右都有效,即会撑大空间 (3)不会自动进行换行 <html> < ...
- C# 不卡屏延时方法,延迟系统时间,但系统又能同时能执行其它任务
//延迟系统时间,但系统又能同时能执行其它任务,不卡屏延时方法 public static void Delay(int milliSecond) { int start = Environment. ...
- 2星|《工业X.0》:物联网的资料汇编
工业X.0:实现工业领域数字价值 看完比较失望,没有看到新的观点想法.基本算是物联网的资料汇编.总体评价2星. 以下是书中一些内容的摘抄: 1:例如,埃森哲为其员工开发了一个用例,用增强现实技术解决实 ...
- veket智能机器人
官方网站:http://www.lucky8k.com/forum.php veket儿童操作系统 希望工具超过小puppy linux系统 一个还在发展中的linux系统: Slax Linux : ...