2015 ACM National Contest Romania
来源:互联网 发布:服务器安装mysql数据库 编辑:程序博客网 时间:2024/06/06 01:02
题目链接:
http://codeforces.com/gym/100923/problem/B
题解:
Dijkstra+优化,用Spfa会炸
代码:
#include<map>#include<cstdio>#include<cstring>#include<queue>#include<vector>#include<iostream>#include<algorithm>using namespace std;#define pa pair<int,int>#define met(a,b) memset(a,b,sizeof(a))const int maxn = 2e5+10;struct node{ int to,next,v; int id;};node edge[maxn*4];int cnt=1,head[maxn],dis[maxn];int n,m;vector<int>pp;void Add(int u,int v,int w,int id){ cnt++; edge[cnt].to=v; edge[cnt].next=head[u]; head[u]=cnt; edge[cnt].v=w; edge[cnt].id=id;}void dijkstra(){ priority_queue<pa,vector<pa>,greater<pa> >q; int i,now; for (i=1;i<=n;i++) dis[i]=0x7fffffff; dis[1]=0; q.push(make_pair(0,1)); while (!q.empty()) { now=q.top().second; q.pop(); for (i=head[now];i;i=edge[i].next) if (dis[now]+edge[i].v<dis[edge[i].to]) { dis[edge[i].to]=dis[now]+edge[i].v; q.push(make_pair(dis[edge[i].to],edge[i].to)); pp.push_back(edge[i].id); } }}void init(){ met(head,0); met(dis,0);}int main(){ freopen("algoritm.in","r",stdin); freopen("algoritm.out","w",stdout); int t; scanf("%d",&t); while(t--) { init(); scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) { int a,b,c; scanf("%d%d%d",&a,&b,&c); Add(a,b,c,i); } pp.clear(); dijkstra(); map<int,int> np; np.clear(); for(int i=0;i<pp.size();i++) { np[pp[i]]=1; } for(int i=1;i<=m;i++) { if(!np[i]) pp.push_back(i); } for(int i=0;i<pp.size();i++) { if(i!=pp.size()-1) printf("%d ",pp[i]); else printf("%d\n",pp[i]); } } return 0;}
阅读全文
0 0
- 2015 ACM National Contest Romania
- CSU 1838: Water Pump(ACM-ICPC Asia Thailand National On-Site Programming Contest 2015)
- CSU 1839: Who Feels Lucky(ACM-ICPC Asia Thailand National On-Site Programming Contest 2015)
- CSU 1831 Found(ACM-ICPC Asia Thailand National On-Site Programming Contest 2015)
- POJ3977 - Subset(Seventh ACM Egyptian National Programming Contest)
- The lucky numbers--Southeastern European Regional Programming Contest Bucharest, Romania 2009
- GYM 2015 ACM Syrian Collegiate Programming Contest
- ACM ICPC 2017 Warmup Contest 4(ACM Northeastern European Regional Contest,Northern Subregion 2015)
- POJ Contest - ACM Trainning
- ACM Contest and Blackout
- ACM Contest and Blackout
- national
- [2014-2015 ACM-ICPC, NEERC Subregional Contest]解题报告
- 2015 ACM Arabella Collegiate Programming Contest(F题)
- Codeforces Gym 2015 ACM Amman Collegiate Programming Contest
- Codeforces Gym 2015 ACM Arabella Collegiate Programming Contest
- 2015 ACM Amman Collegiate Programming Contest 简要题解。
- 【总结】 2015 ACM-ICPC Asia Changchun Regional Contest
- weex学习之路(一)--项目快速创建
- Android 序列化
- JDBC的工具类
- 1044. 火星数字(20)
- jsonp
- 2015 ACM National Contest Romania
- C/C++:使用dlopen、dlsym、dlclose运行时装载动态库
- bootstrap中如何使input中的小图标获得点击事件
- c文件操作之fgets,fputs
- 21st-Oct 时对时错的方向指令string数组
- 计蒜客 Bridge Automation(ACM ICPC 2017 Warmup Contest 9)
- 【MySQL】常用命令
- Effective-Python
- 重写java课程学习二:编写程序