最近脑子有点乱 老是不想清楚就啪啪的敲 敲完之后一看 咦。。样例都过不去 仔细一想 这样不对啊

刚开始就写了一SPFA 最后发现边跟点的关系没处理好 删了。。写dfs。。还是没转化好 开始搜解题方法 看到别人都说最小环 解最小环的方法跟我想的差不多 就是边转化点没处理好

又想了想 开个二维数组标记下 转化点 然后就枚举每条边的两个点间的最短距离 要先删了这条边 找个最小的就好了

dijk求最短路

  1. /*
  2. ID: shangca2
  3. LANG: C++
  4. TASK: fence6
  5. */
  6. #include <iostream>
  7. #include<cstdio>
  8. #include<cstring>
  9. #include<algorithm>
  10. #include<stdlib.h>
  11. using namespace std;
  12. #define N 110
  13. #define INF 0xfffffff
  14. int f[N][N],w[N][N],t,o[N][],vis[N],dis[N];
  15. int n;
  16. int init(int a,int c)
  17. {
  18. int i,u[],k=;
  19. for(i = ; i <= c ; i++)
  20. {
  21. cin>>u[i];
  22. if(f[a][u[i]])
  23. k = f[a][u[i]];
  24. }
  25. if(k==)
  26. {
  27. t++;
  28. k = t;
  29. }
  30. for(i = ; i <= c ; i++)
  31. f[u[i]][a] = k;
  32. return k;
  33. }
  34. int dijk(int s,int e)
  35. {
  36. memset(vis,,sizeof(vis));
  37. int minz,k,i,j;
  38. for(i = ;i <= t ; i++)
  39. dis[i] = INF;
  40. dis[s] = ;
  41. for(i = ; i <= t ; i++)
  42. {
  43. minz = INF;
  44. for(j = ; j <= t ;j++)
  45. if(!vis[j]&&dis[j]<minz)
  46. minz = dis[k=j];
  47. vis[k] = ;
  48. for(j = ; j <= t ; j++)
  49. if(w[k][j]+dis[k]<dis[j])
  50. dis[j] = w[k][j]+dis[k];
  51. }
  52. return dis[e];
  53. }
  54. int main()
  55. {
  56. freopen("fence6.in","r",stdin);
  57. freopen("fence6.out","w",stdout);
  58. int i,a,b,c,d;
  59. cin>>n;
  60. memset(w,,sizeof(w));
  61. for(i = ; i <= n ; i++)
  62. {
  63. cin>>a>>b>>c>>d;
  64. int u = init(a,c);
  65. int v = init(a,d);
  66. w[u][v] = b;
  67. w[v][u] = b;
  68. o[i][] = u;
  69. o[i][] = v;
  70. o[i][] = b;
  71. }
  72. int ans = INF;
  73. for(i = ; i <= n ; i++)
  74. {
  75. int u = o[i][];
  76. int v = o[i][];
  77. w[u][v] = INF;
  78. w[v][u] = INF;
  79. ans = min(ans,dijk(u,v)+o[i][]);
  80. w[u][v] = o[i][];
  81. }
  82. cout<<ans<<endl;
  83. return ;
  84. }

USACO4.13Fence Loops(无向图最小环)的更多相关文章

  1. POJ 1734 无向图最小环/有向图最小环

    给定一张图,求图中一个至少包含三个点的环,环上的点不重复,并且环上的边的长度之和最小. 点数不超过100个 输出方案 无向图: /*Huyyt*/ #include<bits/stdc++.h& ...

  2. USACO4.1 Fence Loops【最小环&边->点转化】

    数据不是很大,如果要转换为正常的那种建图方式的话,可以给点进行标号,用一个二维数组存这两条边相交的那个点的标号,方便处理.一定要注意不要同一个点使用不同的编号也不要不同的点使用同一个编号(这不是废话嘛 ...

  3. UVA 12544 - Beehives O(nm) 无向图最小环

    Bees are one of the most industrious insects. Since they collect nectarand pollen from flowers, they ...

  4. FZU 2090 旅行社的烦恼 floyd 求无向图最小环

    题目链接:旅行社的烦恼 题意是求无向图的最小环,如果有的话,输出个数,并且输出权值. 刚刚补了一发floyd 动态规划原理,用了滑动数组的思想.所以,这个题就是floyd思想的变形.在k从1到n的过程 ...

  5. 【POJ1734】Sightseeing Trip 无向图最小环

    题目大意:给定一个 N 个顶点的无向图,边有边权,如果存在,求出该无向图的最小环,即:边权和最小的环,并输出路径. 题解:由于无向图,且节点数较少,考虑 Floyd 算法,在最外层刚开始遍历到第 K ...

  6. 图论:Floyd-多源最短路、无向图最小环

    在最短路问题中,如果我们面对的是稠密图(十分稠密的那种,比如说全连接图),计算多源最短路的时候,Floyd算法才能充分发挥它的优势,彻彻底底打败SPFA和Dijkstra 在别的最短路问题中都不推荐使 ...

  7. 「LOJ#10072」「一本通 3.2 例 1」Sightseeing Trip(无向图最小环问题)(Floyd

    题目描述 原题来自:CEOI 1999 给定一张无向图,求图中一个至少包含 333 个点的环,环上的节点不重复,并且环上的边的长度之和最小.该问题称为无向图的最小环问题.在本题中,你需要输出最小环的方 ...

  8. POJ 1734 Sightseeing trip(无向图最小环+输出路径)

    题目链接 #include <cstdio> #include <string> #include <cstring> #include <queue> ...

  9. uva 12544 无向图最小环

    思路:这题的N有500,直接floyd肯定超时. 我的做法是每次枚举一个点,求出包含这个点的最小环. 对所有最小环取最小值.求包含某个点的最小环我用的是启发式搜索,先以该点求一次spfa,然后dfs解 ...

随机推荐

  1. 12天学好C语言——记录我的C语言学习之路(Day 8)

    12天学好C语言--记录我的C语言学习之路 Day 8: 从今天开始,我们获得了C语言中很有力的一个工具,那就是函数.函数的魅力不仅于此,一个程序到最后都是由众多函数组成的,我们一定要用好函数,用熟练 ...

  2. web前端面试题收集(一)

    CSS中margin和padding的区别? Javascript中如何检测一个变量是一个String类型?请写出函数实现. 网页中实现一个计算当年还剩多少时间的倒计时程序,要求网页上实时动态显示“x ...

  3. 10_Jaxws使用自定义pojo发布服务

    [简述] 查询三天的天气信息(天气概况.日期.温度),测试jaxws是否支持自定义pojo发布服务. [开发过程] 服务端: 1.自定义pojo(天气概况.日期.温度) 2.开发SEI接口及实现类 3 ...

  4. OpenJudge/Poj 1251 丛林中的路/Jungle Roads

    1.链接地址: http://bailian.openjudge.cn/practice/1251/ http://poj.org/problem?id=1251 2.题目: 总时间限制: 1000m ...

  5. Mysql表操作

    查看表结构: 可以使用describe或show create table语句查看表的结构: describe表名; Show create table 表名; 修改表名: Alter table 旧 ...

  6. 解决 IE 不支持 document.getElementsByClassName() 的方法

    //create method getElementsByClassName for document if(!document.getElementsByClassName){ document.g ...

  7. POJ1384完全背包问题

    题目大意:给你一个储蓄罐空的,和满的重量,然后给出各种硬币的价值和对应的重量,要你估计出储蓄罐里面硬币价值和最小为多少,注意要保证重量和恰好为给出满的重量解题思路:完全背包问题,只是求最小值,注意初始 ...

  8. object-c 1

    多个参数的写法 (方法的数据类型)函数名:(参数1数据类型)参数1的数值的名字 参数2的名字: (参数2数据类型) 参数2值的名字 …. ; 举个例子,一个方法的定义: -(void) setKids ...

  9. 八,WPF 命令

    WPF命令模型 ICommand接口 WPF命令模型的核心是System.Windows.Input.ICommand接口,该接口定义了命令的工作原理,它包含了两个方法和一个事件: public in ...

  10. 2014年辛星完全解读Javascript第二节

    本小节我们讲解一下Javascript的语法,虽然js语言非常简单,它的语法也相对好学一些,但是不学总之还是不会的,因此,我们来一探究竟把. ********注释************* 1.我们通 ...