http://acm.hdu.edu.cn/showproblem.php?pid=4460

水题一道,oj时间卡的非常奇怪,把spfa的queue开成全局卡线过,别的全挂了,迪杰斯特拉的手写堆都超时,可能是卡了map?

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <map>
  5. #include <queue>
  6. using namespace std ;
  7.  
  8. const int INF=0xfffffff ;
  9. struct Edge
  10. {
  11. int s,t,v,nxt ;
  12. }e[] ;
  13. int n,m,cnt,head[],dis[],vis[] ;
  14. void add(int s,int t,int v)
  15. {
  16. e[cnt].s=s ;e[cnt].t=t ;e[cnt].v=v ;e[cnt].nxt=head[s] ;head[s]=cnt++ ;
  17. }
  18. queue <int> q ;
  19. void spfa(int s)
  20. {
  21. for(int i= ;i<=n ;i++)
  22. dis[i]=INF ;
  23. dis[s]= ;
  24. memset(vis,,sizeof(vis)) ;
  25. vis[s]= ;
  26. q.push(s) ;
  27. while(!q.empty())
  28. {
  29. int u=q.front() ;
  30. q.pop() ;
  31. vis[u]= ;
  32. for(int i=head[u] ;i!=- ;i=e[i].nxt)
  33. {
  34. int tt=e[i].t ;
  35. if(dis[tt]>dis[u]+e[i].v)
  36. {
  37. dis[tt]=dis[u]+e[i].v ;
  38. if(!vis[tt])
  39. {
  40. vis[tt]= ;
  41. q.push(tt) ;
  42. }
  43. }
  44. }
  45. }
  46. }
  47. int main()
  48. {
  49. while(cin >> n)
  50. {
  51. if(!n)break ;
  52. cnt= ;
  53. memset(head,-,sizeof(head)) ;
  54. map <string,int> mp ;
  55. for(int i= ;i<n ;i++)
  56. {
  57. string na ;
  58. cin >> na ;
  59. mp[na]=i+ ;
  60. }
  61. cin >> m ;
  62. while(m--)
  63. {
  64. string a,b ;
  65. cin >> a >> b ;
  66. add(mp[a],mp[b],) ;
  67. add(mp[b],mp[a],) ;
  68. }
  69. int ans= ;
  70. for(int i= ;i<=n ;i++)
  71. {
  72. spfa(i) ;
  73. for(int j= ;j<=n ;j++)
  74. {
  75. ans=max(ans,dis[j]) ;
  76. }
  77. }
  78. if(ans==INF)puts("-1") ;
  79. else printf("%d\n",ans) ;
  80. }
  81. return ;
  82. }

HDU 4460的更多相关文章

  1. HDU 4460 Friend Chains --BFS

    题意:问给定的一张图中,相距最远的两个点的距离为多少.解法:跟求树的直径差不多,从1 开始bfs,得到一个最远的点,然后再从该点bfs一遍,得到的最长距离即为答案. 代码: #include < ...

  2. HDU 4460 Friend Chains (BFS,最长路径)

    题意:给定 n 个人,和关系,问你这个朋友圈里任意两者之间最短的距离是多少. 析:很明显的一个BFS,只要去找最长距离就好.如果不能全找到,就是-1. 代码如下: #pragma comment(li ...

  3. HDU 4460 Friend Chains(map + spfa)

    Friend Chains Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total ...

  4. hdu 4460 第37届ACM/ICPC杭州赛区H题 STL+bfs

    题意:一些小伙伴之间有朋友关系,比如a和b是朋友,b和c是朋友,a和c不是朋友,则a和c之间存在朋友链,且大小为2,给出一些关系,求出这些关系中最大的链是多少? 求最短路的最大距离 #include& ...

  5. HDU 4460 Friend Chains

    Problem Description For a group of people, there is an idea that everyone is equals to or less than ...

  6. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  7. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  8. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  9. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

随机推荐

  1. 经验分享:使用 Restyle.js 简化 CSS 预处理

    Andrea Giammarchi的restyle.js是一个新的,基于JavaScript的CSS预处理器,能够运行在服务端(通过Node.js)或者浏览器中.它宣称自己是“一种简化的CSS方法”, ...

  2. windows下捕获dump

         一般要捕获异常只需要两个函数:SetUnhandledExceptionFilter截获异常:MiniDumpWriteDump写dump文件.但是由于CRT函数可能会在内部调用SetUnh ...

  3. EF中的那些批量操作

    在使用EF的过程中,我们经常会遇到需要批量操作数据的场景,批量操作有的时候不仅能提高性能,比如使用SqlBulkCopy进入批量插入的时候,而且比较方便操作,提高效率.那么这篇文章就来总结EF中的那些 ...

  4. 使用OpenGL ES绘制3D图形

    如果应用定义的顶点不在同一个平面上,并且使用三角形把合适的顶点连接起来,就可以绘制出3D图形了. 使用OpenGL  ES绘制3D图形的方法与绘制2D图形的步骤大致相同,只是绘制3D图形需要定义更多的 ...

  5. CSS最常用和实用的技巧

    1.重置浏览器的字体大小重置浏览器的默认值 ,然后重设浏览器的字体大小你可以使用雅虎的用户界面重置的CSS方案 ,如果你不想下载9MB的文件,代码如下: body,div,dl,dt,dd,ul,ol ...

  6. 用for循环打印菱形

    package nothh; public class mmm { public static void main(String[] args) { //for循环内的 for按顺序运算,先打印1/4 ...

  7. Oracle性能调优

    这部分目前主要是从网上搜集来的,后续要在实践中慢慢体会. v$sqltext: 存储的是被分割的sql v$sqlarea: 存储的是完整的sql和一些统计信息,比如累计的执行次数.逻辑读.物理读等( ...

  8. Servlet初识

    1.servlet的生命周期 servlet生命周期中的三大重要时刻 servlet从不存在状态迁移到初始化状态(能够为客户提供服务),首先是从构造函数开始,但是构造函数只是使其成为一个对象,而不是一 ...

  9. 操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null

    解决方式: 1.jdbc URL链接为:jdbc.url=jdbc:db2://(ip):50000/(数据库名称):driverType=4;fullyMaterializeLobData=true ...

  10. 响应式架构:消息模式Actor实现与Scala、Akka应用集成

    这是一本最近很流行的书. 有时间就去看看