牛客网 牛客小白月赛2 H.武-最短路(Dijkstra)
H.武
链接:https://www.nowcoder.com/acm/contest/86/H
这个题写的有点想发脾气,自己的板子垃圾了,这个题要用优先队列优化版的迪杰斯特拉的板子才可以过,但是自己太智障了,段错误,编译错误,段错误,内存超限,运行超时,段错误,a了。
不想说什么了,简直蠢到家了。
代码(学长的板子就是好):
1 //H-学长的模板
2 #include<iostream>
3 #include<cstdio>
4 #include<cstring>
5 #include<cmath>
6 #include<cstdlib>
7 #include<algorithm>
8 #include<queue>
9 #include<vector>
10 #include<stack>
11 using namespace std;
12 typedef long long ll;
13 const int maxn=1e5+10;
14 const double eps=1e-7;
15 const int N=1e5+10;
16 const int INF=0x3f3f3f3f;
17
18
19 int head[N*2], nex[N*2], to[N*2], val[N*2], dis[N], vis[N], tot;
20
21 struct cmp{
22 bool operator()(int a,int b) {
23 return dis[a]>dis[b];
24 }
25 };
26
27 priority_queue<int, vector<int>, cmp > Q;
28
29 void init() {
30 tot = 0;
31 while(!Q.empty()) Q.pop();
32 memset(head, -1, sizeof(head));
33 memset(dis, 127, sizeof(dis));
34 memset(vis, 0, sizeof(vis));
35 }
36
37 void addedge(int u, int v, int w) {
38 to[tot] = v;
39 nex[tot] = head[u];
40 val[tot] = w;
41 head[u] = tot++;
42 }
43
44 void Dijkstra(int S) {
45 Q.push(S);
46 dis[S] = 0, vis[S] = 1;
47 while(!Q.empty()) {
48 int u = Q.top();
49 Q.pop();
50 for(int i=head[u]; i!=-1; i=nex[i]) {
51 int v = to[i];
52 if(!vis[v] && dis[u]+val[i] < dis[v]) {
53 dis[v] = dis[u]+val[i];
54 Q.push(v), vis[v] = 1;
55 }
56 }
57 }
58 }
59
60 int main(){
61 int n,p,k;
62 ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
63 init();
64 cin>>n>>p>>k;
65 for(int i=0;i<n-1;i++){
66 int u,v,w;
67 cin>>u>>v>>w;
68 addedge(u,v,w);
69 addedge(v,u,w);
70 }
71 Dijkstra(p);
72 sort(dis+1,dis+1+n);
73 cout<<dis[k+1]<<endl;
74 }
就先这样吧,F,I,J比赛的时候没写出来也没时间了,还没补,F是搜索+博弈,其他两个还没看,补出来再来粘代码,我圆润的离开了(gun)。
牛客网 牛客小白月赛2 H.武-最短路(Dijkstra)的更多相关文章
- 牛客小白月赛2 H 武 【Dijkstra】
链接:https://www.nowcoder.com/acm/contest/86/H来源:牛客网 题目描述 其次,Sεlιнα(Selina) 要进行体力比武竞赛. 在 Sεlιнα 所在的城市, ...
- Newcoder 小白月赛20 H 好点
Newcoder 小白月赛20 H 好点 自我感觉不错然后就拿出来了. 读读题之后我们会发现这是让我们求一堆数,然后这些数一定是递减的. 就像这样我们选的就是框起来的,然后我们可以看出来这一定是一个单 ...
- 牛客网 牛客小白月赛5 I.区间 (interval)-线段树 or 差分数组?
牛客小白月赛5 I.区间 (interval) 休闲的时候写的,但是写的心情有点挫,都是完全版线段树,我的一个队友直接就水过去了,为啥我的就超内存呢??? 试了一晚上,找出来了,多初始化了add标记数 ...
- 牛客网 牛客小白月赛12 B.华华教月月做数学-A^B mod P-快速幂+快速乘
链接:https://ac.nowcoder.com/acm/contest/392/B来源:牛客网 华华教月月做数学 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...
- 牛客网 牛客小白月赛1 J.おみやげをまらいました
J.おみやげをまらいました 链接:https://www.nowcoder.com/acm/contest/85/J来源:牛客网 随便写写. 代码: 1 #include<ios ...
- 牛客网 牛客小白月赛1 I.あなたの蛙が帰っています-卡特兰数,组合数阶乘逆元快速幂
I.あなたの蛙が帰っています 链接:https://www.nowcoder.com/acm/contest/85/I来源:牛客网 这个题有点意思,是卡特兰数,自行百度就可以.卡特兰数用处 ...
- 牛客网 牛客小白月赛1 H.写真がとどいています
H.写真がとどいています 链接:https://www.nowcoder.com/acm/contest/85/H来源:牛客网 这个题数乱了,导致wa了好几次. 特别弱智,从A开始往上,就 ...
- 牛客网 牛客小白月赛1 F.三视图
F.三视图 链接:https://www.nowcoder.com/acm/contest/85/F来源:牛客网 这个题自己想一下三维的,正视图和左视图中y轴为行数,x轴和z轴是列数,因为 ...
- 牛客网 牛客小白月赛1 E.圆与三角形-公式题
E.圆与三角形 链接:https://www.nowcoder.com/acm/contest/85/E来源:牛客网 这个题把公式推一下, 发现就是1+sinA*r,sinA最大为1,所以 ...
随机推荐
- Gym - 101908G Gasoline 二分+最大流
G - Gasoline Gym - 101908G 题意:给出R个提供点,P个接收点,每个接收点都要接收满,还有一个运输的时间,问最小时间能够完成所有的运输 题解:首先每次都必须要满流,所以我们只要 ...
- LightOJ - 1341 Aladdin and the Flying Carpet(数论)
题意 有一块矩形(也可能是正方形)的飞毯. 给定飞毯的面积\(n\)和最小可能的边长\(a\),求可能有多少种不同边长的飞毯.(\(1<=a<=n<=1e12\)) 如面积\(n=6 ...
- 2190: [SDOI2008]仪仗队(欧拉函数)
2190: [SDOI2008]仪仗队 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 3235 Solved: 2089 Description 作 ...
- IOS开发---菜鸟学习之路--(二十二)-近期感想以及我的IOS学习之路
在不知不觉当中已经写了21篇内容 其实一开始是没有想些什么东西的 只是买了Air后 感觉用着挺舒服的,每天可以躺在床上,就一台笔记本,不用网线,不用电源,不用鼠标,不用键盘,干干脆脆的就一台笔记本. ...
- 49、android studio 使用技巧记录
1.删除 cmd+del 2.自动导入需要的类 option+enter 3.Option + F7 ——查找哪里引用了该方 Cmd + Option + F7 —— 列出引用的列表 4.Cmd + ...
- Python-S9-Day116——Flask框架相关
01 内容回顾 02 Flask框架:路由和视图(一) 03 Flask框架:路由和视图(二) 04 Flask框架:路由和视图(三) 05 Flask框架:路由和视图(四) 06 Flask框架:s ...
- 内置函数,重要的四个reduce,map,lambda,filter
#filter过滤器#filter(函数,列表)#把列表里的元素序列化,然后在函数中过滤# str=["a","b","c","d ...
- python-day4-装饰器的使用
摘要:某公司的基础开发平台,有大概N多个函数,boss要求小A,为每个函数添加权限验证功能,而且要求不得修改函数内部结构,让小A尝试从代码外部入手,作为新手小A来讲,这无疑是一个巨大的工作量,难道TM ...
- python 学习分享-常用模块篇
模块 就是前人给你造的轮子,你开车就好!!! 常用模块有: time模块 random模块 os模块 sys模块 shutil模块 json & picle模块 shelve模块 xml处 ...
- leetcode NO.53 最大子序列和 (python实现)
来源 https://leetcode-cn.com/problems/maximum-subarray/description/ 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的 ...