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

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. using namespace std;
  6.  
  7. const int MAXN=;
  8. const int MAXM=;
  9. const int inf=;
  10. int map[MAXN][MAXN];
  11. int edge[MAXM][];
  12. bool exist[MAXN][MAXN],used[MAXN][MAXN],vis[MAXN];
  13. int f[MAXN][MAXN],dist[MAXN],pre[MAXN];
  14. int m,n,q;
  15. int ans1=;
  16. void init(){
  17. for(int i=;i<=n;i++){
  18. vis[i]=false;
  19. for(int j=i;j<=n;j++){
  20. map[i][j]=map[j][i]=inf;
  21. exist[i][j]=exist[j][i]=used[i][j]=used[j][i]=false;
  22. f[i][j]=f[j][i]=;
  23. }
  24. }
  25. }
  26.  
  27. void prim(){
  28. dist[]=;
  29. for(int i=;i<=n;i++){
  30. dist[i]=map[][i];
  31. if(dist[i]!=inf)
  32. pre[i]=;
  33. else pre[i]=-;
  34. }
  35. vis[]=true;
  36. for(int i=;i<=n;i++){
  37. int min=inf,p=-;
  38. for(int k=;k<=n;k++){
  39. if(dist[k]<min&&!vis[k]){
  40. min=dist[k]; p=k;
  41. }
  42. }
  43. if(p==-) return ;
  44. for(int k=;k<=n;k++){
  45. if(vis[k]){
  46. f[k][p]=max(f[k][pre[p]],map[pre[p]][p]);
  47. f[p][k]=f[k][p];
  48. }
  49. }
  50. vis[p]=true;
  51. for(int k=;k<=n;k++){
  52. if(!vis[k]&&map[p][k]<dist[k]){
  53. dist[k]=map[p][k];
  54. pre[k]=p;
  55. }
  56. }
  57. }
  58. }
  59.  
  60. int main(){
  61. int u,v,d;
  62. int c,w;
  63. while(scanf("%d%d%d",&n,&m,&q)!=EOF){
  64. init();
  65. for(int i=;i<=m;i++){
  66. scanf("%d%d%d",&u,&v,&d);
  67. edge[i][]=u; edge[i][]=v; edge[i][]=d;
  68. if(d<map[u][v])
  69. map[u][v]=map[v][u]=d;
  70. }
  71. prim();
  72. for(int i=;i<=q;i++){
  73. scanf("%d%d",&c,&w);
  74. u=edge[c][]; v=edge[c][];
  75. if(w<=f[u][v])
  76. printf("Yes\n");
  77. else printf("No\n");
  78. }
  79. }
  80. return ;
  81. }

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. leetcode树相关

    目录 144前序遍历 94中序遍历(98验证二叉搜索树.230二叉搜索树中第K小的元素) 145后序遍历 102/107层次遍历(104二叉树最大深度.103 105从前序与中序遍历序列构造二叉树 1 ...

  2. Coursera Algorithms week1 算法分析 练习测验: 3Sum in quadratic time

    题目要求: Design an algorithm for the 3-SUM problem that takes time proportional to n2 in the worst case ...

  3. Node.js安全清单

    前言 安全性,总是一个不可忽视的问题.许多人都承认这点,但是却很少有人真的认真地对待它.所以我们列出了这个清单,让你在将你的应用部署到生产环境来给千万用户使用之前,做一个安全检查. 以下列出的安全项, ...

  4. PCB 周期计算采用 SQL 函数调用.net Dll 标量函数 实现

    PCB 周期计算采用 SQL函数调用.net Dll实现 (实现代码重用目的) 玩过SQL SERVER数据库经常经需要写存储过程,函数之类的,当业务逻辑过于复杂,用SQL去写简直是恶梦, 这里以PC ...

  5. [Apple开发者帐户帮助]二、管理你的团队(1)邀请团队成员

    组织可以选择向其开发团队添加其他人员.如果您已加入Apple开发者计划,您将在App Store Connect中管理团队成员.有关详细信息,请转到在App Store Connect帮助中添加用户. ...

  6. SpringBoot + MyBatis(注解版),常用的SQL方法

    一.新建项目及配置 1.1 新建一个SpringBoot项目,并在pom.xml下加入以下代码 <dependency> <groupId>org.mybatis.spring ...

  7. [BZOJ1821][JSOI2010]部落划分

    感觉学了这么久还是有那么一丢丢进步的...上个学期看到这道题,虽然早就学过并查集和二分了但还是一点思路都没有,现在可以秒切了呢 思路就是二分+并查集,有些人说是生成树,其实它没有变成树,只是运用了生成 ...

  8. sql 改字段名

    sp_rename '[zErpMini].[dbo].[STK_Stock].Isextension','IsExtened'

  9. Android 微博sdk接入授权指南

    1:首先在微博官方注册账号,官方地址是:http://open.weibo.com/然后创建一个新应用.     2:当然我们得现在自己电脑上创建一个应用,例如包名叫com.winorout.weib ...

  10. android黑科技系列——爆破一款应用的签名验证问题

    一.前言 在之前的文章中说过Android中的安全和破解是相辅相成的,为了防止被破解,很多应用做了一些防护策略,但是防护策略也是分等级,一般简单的策略就是混淆代码和签名校验,而对于签名校验很多应用都是 ...