HDU 4460
http://acm.hdu.edu.cn/showproblem.php?pid=4460
水题一道,oj时间卡的非常奇怪,把spfa的queue开成全局卡线过,别的全挂了,迪杰斯特拉的手写堆都超时,可能是卡了map?
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <map>
- #include <queue>
- using namespace std ;
- const int INF=0xfffffff ;
- struct Edge
- {
- int s,t,v,nxt ;
- }e[] ;
- int n,m,cnt,head[],dis[],vis[] ;
- void add(int s,int t,int v)
- {
- e[cnt].s=s ;e[cnt].t=t ;e[cnt].v=v ;e[cnt].nxt=head[s] ;head[s]=cnt++ ;
- }
- queue <int> q ;
- void spfa(int s)
- {
- for(int i= ;i<=n ;i++)
- dis[i]=INF ;
- dis[s]= ;
- memset(vis,,sizeof(vis)) ;
- vis[s]= ;
- q.push(s) ;
- while(!q.empty())
- {
- int u=q.front() ;
- q.pop() ;
- vis[u]= ;
- for(int i=head[u] ;i!=- ;i=e[i].nxt)
- {
- int tt=e[i].t ;
- if(dis[tt]>dis[u]+e[i].v)
- {
- dis[tt]=dis[u]+e[i].v ;
- if(!vis[tt])
- {
- vis[tt]= ;
- q.push(tt) ;
- }
- }
- }
- }
- }
- int main()
- {
- while(cin >> n)
- {
- if(!n)break ;
- cnt= ;
- memset(head,-,sizeof(head)) ;
- map <string,int> mp ;
- for(int i= ;i<n ;i++)
- {
- string na ;
- cin >> na ;
- mp[na]=i+ ;
- }
- cin >> m ;
- while(m--)
- {
- string a,b ;
- cin >> a >> b ;
- add(mp[a],mp[b],) ;
- add(mp[b],mp[a],) ;
- }
- int ans= ;
- for(int i= ;i<=n ;i++)
- {
- spfa(i) ;
- for(int j= ;j<=n ;j++)
- {
- ans=max(ans,dis[j]) ;
- }
- }
- if(ans==INF)puts("-1") ;
- else printf("%d\n",ans) ;
- }
- return ;
- }
HDU 4460的更多相关文章
- HDU 4460 Friend Chains --BFS
题意:问给定的一张图中,相距最远的两个点的距离为多少.解法:跟求树的直径差不多,从1 开始bfs,得到一个最远的点,然后再从该点bfs一遍,得到的最长距离即为答案. 代码: #include < ...
- HDU 4460 Friend Chains (BFS,最长路径)
题意:给定 n 个人,和关系,问你这个朋友圈里任意两者之间最短的距离是多少. 析:很明显的一个BFS,只要去找最长距离就好.如果不能全找到,就是-1. 代码如下: #pragma comment(li ...
- HDU 4460 Friend Chains(map + spfa)
Friend Chains Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total ...
- hdu 4460 第37届ACM/ICPC杭州赛区H题 STL+bfs
题意:一些小伙伴之间有朋友关系,比如a和b是朋友,b和c是朋友,a和c不是朋友,则a和c之间存在朋友链,且大小为2,给出一些关系,求出这些关系中最大的链是多少? 求最短路的最大距离 #include& ...
- HDU 4460 Friend Chains
Problem Description For a group of people, there is an idea that everyone is equals to or less than ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
- HDU 4569 Special equations(取模)
Special equations Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
随机推荐
- 经验分享:使用 Restyle.js 简化 CSS 预处理
Andrea Giammarchi的restyle.js是一个新的,基于JavaScript的CSS预处理器,能够运行在服务端(通过Node.js)或者浏览器中.它宣称自己是“一种简化的CSS方法”, ...
- windows下捕获dump
一般要捕获异常只需要两个函数:SetUnhandledExceptionFilter截获异常:MiniDumpWriteDump写dump文件.但是由于CRT函数可能会在内部调用SetUnh ...
- EF中的那些批量操作
在使用EF的过程中,我们经常会遇到需要批量操作数据的场景,批量操作有的时候不仅能提高性能,比如使用SqlBulkCopy进入批量插入的时候,而且比较方便操作,提高效率.那么这篇文章就来总结EF中的那些 ...
- 使用OpenGL ES绘制3D图形
如果应用定义的顶点不在同一个平面上,并且使用三角形把合适的顶点连接起来,就可以绘制出3D图形了. 使用OpenGL ES绘制3D图形的方法与绘制2D图形的步骤大致相同,只是绘制3D图形需要定义更多的 ...
- CSS最常用和实用的技巧
1.重置浏览器的字体大小重置浏览器的默认值 ,然后重设浏览器的字体大小你可以使用雅虎的用户界面重置的CSS方案 ,如果你不想下载9MB的文件,代码如下: body,div,dl,dt,dd,ul,ol ...
- 用for循环打印菱形
package nothh; public class mmm { public static void main(String[] args) { //for循环内的 for按顺序运算,先打印1/4 ...
- Oracle性能调优
这部分目前主要是从网上搜集来的,后续要在实践中慢慢体会. v$sqltext: 存储的是被分割的sql v$sqlarea: 存储的是完整的sql和一些统计信息,比如累计的执行次数.逻辑读.物理读等( ...
- Servlet初识
1.servlet的生命周期 servlet生命周期中的三大重要时刻 servlet从不存在状态迁移到初始化状态(能够为客户提供服务),首先是从构造函数开始,但是构造函数只是使其成为一个对象,而不是一 ...
- 操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null
解决方式: 1.jdbc URL链接为:jdbc.url=jdbc:db2://(ip):50000/(数据库名称):driverType=4;fullyMaterializeLobData=true ...
- 响应式架构:消息模式Actor实现与Scala、Akka应用集成
这是一本最近很流行的书. 有时间就去看看