ZOJ 3946 Highway Project 今年的省赛
来源:互联网 发布:网络运营许可证 编辑:程序博客网 时间:2024/06/05 03:46
省赛当日和江有在这上面花了1个小时,想到的方法就是最小生成树(其实我说的那个方式就是最小生成树的kruskal算法,当时一脸懵逼叫不出名字),然后肉鸽用迪杰斯特拉和优先队列过了,其实我当时也知道迪杰斯特拉用优先队列优化,但是并不会写(所以以后即使书里简略描述的部分还是要认真的尝试一下),所以一看到10的5次,根本没往哪方面想,而且一直没理解题意(当时认为时间是1*2(走回原点)+2==4),而实际是(1+1+2==4)。
然后找到了网上优化后的迪杰斯特拉模板,看了一番,然后理解了。。
就开始玩了
不过这题坑的是初始化要很大,输入输出要long long,
还有个人最近眼睛不是很好经常输入输出的顺序搞错,这点不能忍,样样例有毒啊,即使输入错误输出凑巧还是一样。。
做出后,小开心。。虽然晚饭没吃。。吾辈要好好努力,争取下次比赛早早做出这种懂了就不算难的题目。。
#include<cstdio>#include<cstring>#include<iostream>#include<string>#include<cstring>#include<vector>#include<queue>using namespace std;const int maxn=100010;const long long inf=1e20;struct node{ int b; long long t; long long v; node(int e,long long c,long long d) { b=e; v=c; t=d; } bool operator<(const node&wakaka)const { if(wakaka.t==t) { if(wakaka.v==v) { return b<wakaka.b; } return v>wakaka.v; } return t>wakaka.t; }};int n,m;vector<node>bian[maxn];long long dis[maxn];long long spend[maxn];bool la[maxn];void djstl(int s){ for(int i=0;i<n;i++) { dis[i]=inf; spend[i]=inf; la[i]=false; } dis[s]=0; spend[s]=0; priority_queue<node>q; q.push(node(s,spend[s],dis[s])); while(!q.empty()) { node x=q.top(); q.pop(); if(la[x.b]==true) continue; la[x.b]=true; for(int i=0;i<bian[x.b].size();i++) { node y=bian[x.b][i]; if(dis[y.b]>x.t+y.t) { dis[y.b]=x.t+y.t; spend[y.b]=y.v; q.push(node(y.b,spend[y.b],dis[y.b])); } else if(dis[y.b]==x.t+y.t&&spend[y.b]>y.v) { spend[y.b]=y.v; q.push(node(y.b,spend[y.b],dis[y.b])); } } }}int main(){ int T; cin>>T; while(T--) { cin>>n>>m; for(int i=0;i<n;i++) { bian[i].clear(); } int s,e; long long c,d; for(int i=1;i<=m;i++) { cin>>s>>e>>d>>c; bian[s].push_back(node(e,c,d)); bian[e].push_back(node(s,c,d)); } djstl(0); long long ansm=0; long long anst=0; for(int i=1;i<n;i++) { anst+=dis[i]; ansm+=spend[i]; } cout<<anst<<" "<<ansm<<endl; } return 0;}
0 0
- ZOJ 3946 Highway Project 今年的省赛
- ZOJ 3946Highway Project
- zoj 3946 Highway Project
- ZOJ 3946 Highway Project
- ZOJ 3946 Highway Project
- ZOJ 3946Highway Project【spfa】
- ZOJ 3946 Highway Project(Dijkstra)
- ZOJ 3946 Highway Project (spfa)
- zoj-3946-Highway Project【13th浙江省赛】【最短路】
- ZOJ 3946 Highway Project 单源最短路
- ZOJ-3946-Highway Project(最短路)
- ZOJ Problem Set - 3946 Highway Project
- ZOJ 3946 Highway Project【dijkstra】【贪心】
- zoj 3946 Highway Project(最短路径)
- zoj--3946--Highway Project(SPFA)
- ZOJ 3946 Highway Project 优先队列dijk
- ZOJ Problem Set - 3946 Highway Project
- ZOJ 3946 Highway Project(最短路)
- LeetCode——Path Sum
- Hexo 搭建github个人博客
- MD5算法理论和实现
- JVM学习
- Yii
- ZOJ 3946 Highway Project 今年的省赛
- 101. Symmetric Tree
- windows下用cmake构建项目时找不到pthread.h头文件
- 进程控制
- C# 将字节流转换为图片的实例方法,需要的朋友可以参考一下
- 最大流算法
- ZOJ2314 Reactor Cooling
- git里submodule的使用
- Activity的生命周期