次小生成树。求出两点间最短路径的最大权值,再把要加入的边与之比较即可。

 #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的更多相关文章

  1. POJ 2831 Can We Build This One:次小生成树【N^2预处理】

    题目链接:http://poj.org/problem?id=2831 题意: 给你一个图,每条边有边权. 然后有q组询问(i,x),问你如果将第i条边的边权改为x,这条边是否有可能在新的最小生成树中 ...

  2. POJ 2831 Can We Build This One?

    Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 1728   Accepted: 643 Case Time Limit: 2 ...

  3. poj 2831 次小生成树模板

    /*次小生成树 题意:给你一些路径,现在将一部分路径权值减少后问是否可以替代最小生成树里面的边. 解:次小生成树,即将这条边连上,构成一个环 求出任意两点路径之间的除了这条边的最大值,比较这个最大值& ...

  4. POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理

    Halloween treats Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7644   Accepted: 2798 ...

  5. POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理

    Find a multiple Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7192   Accepted: 3138   ...

  6. POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治

    The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22286 ...

  7. POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37427   Accepted: 16288 Descr ...

  8. POJ 3254. Corn Fields 状态压缩DP (入门级)

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9806   Accepted: 5185 Descr ...

  9. POJ 2739. Sum of Consecutive Prime Numbers

    Sum of Consecutive Prime Numbers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20050 ...

随机推荐

  1. Java中继承,类的高级概念的知识点

    1. 继承含义 在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承(inheritance). 2. 继承的优点 A.代码的可重用性 B.子类可以扩 ...

  2. insufficient space

  3. bzoj1705[Usaco2007 Nov]Telephone Wire 架设电话线(dp优化)

    1705: [Usaco2007 Nov]Telephone Wire 架设电话线 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 441  Solved: ...

  4. Python 35 线程(2)线程特性、守护线程、线程互斥锁

    一:线程特性介绍 from threading import Thread import time n=100 def task(): global n n=0 if __name__ == '__m ...

  5. 【Leetcode】376. Wiggle Subsequence

    Description: A sequence of numbers is called a wiggle sequence if the differences between successive ...

  6. invoke与call

    “调用一个委托实例” 中的 “调用” 对应的是invoke,理解为 “唤出” 更恰当.它和后面的 “在一个对象上调用方法” 中的 “调用” 稍有不同,后则对应的是call.在英语的语境中,invoke ...

  7. Asp.net MVC4 Step by Step (3)-数据验证

    ASP.NET MVC把数据验证集成到了请求处理过程中,控制器操作可以通过查询ModelState 来检查请求是否有效, 下面判断了ModelState的有效性后进行“保存或返回”操作.   [Htt ...

  8. Activity生命周期(待整理)

    1. 定义 有一些方法共同定义生命周期,如下图示:(图片来自于官网文档) 2. onStart()——在Activity即将对用户可见之前调用 (1)Activity启动动画.二维动画在onStart ...

  9. Shiny学习实践01

    Shiny是什么东东? 官方描述: Shiny is an R package that makes it easy to build interactive web apps straight fr ...

  10. **ML : ML中的最优化方法

    前言:         在机器学习方法中,若模型理解为决策模型,有些模型可以使用解析方法.不过更一般的对模型的求解使用优化的方法,更多的数据可以得到更多的精度.         AI中基于归纳的方法延 ...