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

 #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. 原生JS---1

    js的历史 在上个世纪的1995年,当时的网景公司正凭借其Navigator浏览器成为Web时代开启时最著名的第一代互联网公司. 由于网景公司希望能在静态HTML页面上添加一些动态效果,于是叫Bren ...

  2. compare正序与逆序

    //list:在数据查询出来的Record集合 //juli:是需要比较的字段   //实现一个Comparator接口 //后面减去前面是正序   前面减去后面是倒叙 //我这里做的一个距离排序 R ...

  3. C# 处理oralce 时间

     addWorkSql.Append("to_date(' " + DateTime.Now.ToString("yyyy-MM-dd HH:ss:mm") + ...

  4. epoll实现reactor模式

  5. 牛客练习赛19 -E-托米的饮料

    题目描述 好了,现在是小托米的故事啦~~~ 可爱的小托米得到了n瓶饮料. 但他不小心把开盖的工具弄丢了,所以他只能利用饮料瓶来开盖. 已知第i个瓶子的品牌为ai,且其能打开bi品牌的瓶子. 问有几瓶饮 ...

  6. java selenium启动火狐浏览器报错:Cannot find firefox binary in PATH. Make sure firefox is installed. OS appears to be: VISTA Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T19:05:14.666Z

    Cannot find firefox binary in PATH. Make sure firefox is installed. OS appears to be: VISTA Build in ...

  7. Jenkins自动化部署.netcore程序

    一.安装jenkins 百度一下 二.构建前的准备 搭建好.net core2.0的环境,下载:https://aka.ms/dotnetcore-2-windowshosting  (,net co ...

  8. 将DataTable某一列的值整体赋值给 另一个DataTable

    将 DataTable某一列的值,赋值给 另一个DataTable: DataSet _ds=bll.GetAllList(); //将要取其中一列 DataView view = _ds.Table ...

  9. CSS多列布局(实例)

    前言 一列布局 二列布局 三列布局 1 一列布局 一列布局: HTML部分 <!DOCTYPE html> <html> <head> <meta chars ...

  10. JavaScript中赋值运算符的使用

    JavaScript中的赋值运算可以分为简单赋值运算和复合赋值运算.简单赋值运算是将赋值运算符(=)右边表达式的值保存到左边的变量中:而复合赋值运算混合了其他操作(例如算术运算操作)和赋值操作.例如: ...