hdu5876 Sparse Graph
来源:互联网 发布:天猫国际官方直营知乎 编辑:程序博客网 时间:2024/05/16 09:02
题意:给2e6的点,2e5的边,求补图中,单源点到所有点的最短路
题解:比赛时候,没有仔细考虑这个,发现其实挺水的
边少的,一半是用bfs
维护两个set,set1中,记录的是,没有处理的点,set2中是刚刚处理的点
经过一个点时,把连接的点,且在set1中的点,放到set2中,然后set1中的点就可以处理,交换set1和set2
时间复杂度O(m+n)(比赛时候错误的估计了复杂度。。)
queue <int> q;set <int> s;set <int> s1;int ans[200010];set <int> ss[200010];int main(){ int t; cin>>t; while(t--){ while(!q.empty()) q.pop(); s.clear(); for(int i=0;i<200002;i++) ss[i].clear(); int n,m; scanf("%d %d",&n,&m); int x,y; for(int i=0;i<m;i++){ scanf("%d %d",&x,&y); ss[x].insert(y); ss[y].insert(x); } int beg=0; cin>>beg; for(int i=1;i<=n;i++){ if(i!=beg){ s.insert(i); } } memset(ans,-1,sizeof(ans)); ans[beg]=0; q.push(beg); while(!q.empty()){ int xx=q.front(); q.pop(); for(set <int>::iterator it=ss[xx].begin();it!=ss[xx].end();it++){ if(s.count(*it)!=0){ s.erase(*it); s1.insert(*it); } } for(set <int>::iterator it=s.begin();it!=s.end();it++){ ans[*it]=ans[xx]+1; q.push(*it); } s.swap(s1); s1.clear(); } bool bool1=true; for(int i=1;i<=n;i++){ if(i!=beg){ if(bool1){ bool1=false; printf("%d",ans[i]); } else { printf(" %d",ans[i]); } } } cout<<endl; } return 0;}
0 0
- hdu5876 Sparse Graph
- HDU5876-Sparse Graph
- hdu5876 Sparse Graph(补图最短路)
- hdu5876 Sparse Graph bfs + set
- hdu5876 Sparse Graph(补图上求最短路)
- hdu5876 Sparse Graph(补图+最短路)
- hdu5876 Sparse Graph(最短路)
- hdu5876 Sparse Graph(bfs最短路)
- hdu5876 Sparse Graph(补图的最短路)
- HDU5876 Sparse Graph 补图的最短路
- HDU5876 Sparse Graph(2016亚洲区大连站网络赛)
- hdu5876 Sparse Graph -补图的最短路-bfs
- hdu5876——Sparse Graph(补图的最短路)
- Sparse Graph(2016大连网赛)(hdu5876)(BFS+数据结构)
- HDU 5876 Sparse Graph
- hdu-5876-Sparse Graph
- HDU-5876 Sparse Graph
- HDU 5876 - Sparse Graph
- 【NOIP2016提高A组模拟9.9】总结
- 【Ts 3】Nginx的Http(图片)服务器配置+ftp上传使用说明
- Cannot find message resources under key org.apache.struts.action.MESSAGE
- HDU 5877 Weak Pair 树状数组 + DFS
- 【备份专题】虚拟机备份原理和架构
- hdu5876 Sparse Graph
- 第一篇博客记载于2016-9-12
- solr教程,值得刚接触搜索开发人员一看
- POJ 2965 The Pilots Brothers' refrigerator 高斯消元
- android命名大小写问题
- Android NDK简单实例和环境搭建
- PAT (Advanced Level) Practise 1117Eddington Number(25)
- Style 和 Theme 的异同
- SpannableString实现同一段文字不同的效果