解题报告:luogu P2299
题目链接:P2299 Mzc和体委的争夺战
单源最短路板子题吗,体面晦涩难懂(语文不好),以为是有向图,只有\(30pts\),其实是无向的,我使用了刚学来的\(SPFA\),通过了此题:
\(Code\):
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
const int inf=2147483647;
queue<int> q;
struct node
{
	int to,nxt,w;
}e[200005];
int head[200005],cnt=0;
void add(int u,int v,int c)
{
	e[++cnt].to=v;
	e[cnt].nxt=head[u];
	e[cnt].w=c;
	head[u]=cnt;
}
int dis[200005],vis[200005];
void SPFA()
{
	while(!(q.empty()))
	{
		int k=q.front();
		q.pop();
		vis[k]=0;
		for(int i=head[k];i;i=e[i].nxt)
		{
			int j=e[i].to;
			if(dis[j]>dis[k]+e[i].w)
			{
				dis[j]=dis[k]+e[i].w;
				if(!vis[j]) q.push(j),vis[j]=1;
			}
		}
	}
}
void init(int n)
{
	for(int i=1;i<=n;i++) dis[i]=inf,vis[i]=0;
}
int n,m;
int l,r,p;
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d%d",&l,&r,&p);
		add(l,r,p);
	}
	init(n);
	dis[1]=0;
	vis[1]=1;
	q.push(1);
	SPFA();
	cout<<dis[n]<<"\n";
	//for(int i=1;i<=n;i++) printf("%d ",dis[i]);
	return 0;
}
可以说是\(SPFA\)板子,背一下。
解题报告:luogu P2299的更多相关文章
- 【解题报告】洛谷 P2571 [SCOI2010]传送带
		
[解题报告]洛谷 P2571 [SCOI2010]传送带今天无聊,很久没有做过题目了,但是又不想做什么太难的题目,所以就用洛谷随机跳题,跳到了一道题目,感觉好像不是太难. [CSDN链接](https ...
 - NOIP 2018 普及组 解题报告
		
目录 标题统计 题目链接 思路 代码 龙虎斗 题目链接: 思路 代码 摆渡车 题目链接: 思路 对称二叉树 题目链接 思路: 先来解释一下为毛现在才来发解题报告: 其实博主是参加过NOIP 2018普 ...
 - CH Round #56 - 国庆节欢乐赛解题报告
		
最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...
 - 二模13day1解题报告
		
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...
 - BZOJ 1051 最受欢迎的牛 解题报告
		
题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4438 Solved: 2353[S ...
 - 习题:codevs  2822 爱在心中 解题报告
		
这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...
 - 习题:codevs 1035 火车停留解题报告
		
本蒟蒻又来写解题报告了.这次的题目是codevs 1035 火车停留. 题目大意就是给m个火车的到达时间.停留时间和车载货物的价值,车站有n个车道,而火车停留一次车站就会从车载货物价值中获得1%的利润 ...
 - 习题: codevs 2492 上帝造题的七分钟2 解题报告
		
这道题是受到大犇MagHSK的启发我才得以想出来的,蒟蒻觉得自己的代码跟MagHSK大犇的代码完全比不上,所以这里蒟蒻就套用了MagHSK大犇的代码(大家可以关注下我的博客,友情链接就是大犇MagHS ...
 - 习题:codevs 1519 过路费 解题报告
		
今天拿了这道题目练练手,感觉自己代码能力又增强了不少: 我的思路跟别人可能不一样. 首先我们很容易就能看出,我们需要的边就是最小生成树算法kruskal算法求出来的边,其余的边都可以删掉,于是就有了这 ...
 - NOIP2016提高组解题报告
		
NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合
 
随机推荐
- How2J学习java-1、环境配置
			
JDK环境变量配置分下载,配置,验证三个步骤. 一.首先需要到JDK下载网站下载所需的JDK版本可根据更新来定.主流的开发工具Idear下载. 1.首先看配置成功后的效果 点WIN键->运行(或 ...
 - 实现纸牌游戏的随机抽牌洗牌过程(item系列几个内置方法的实例)
			
实现纸牌游戏的随机抽牌洗牌过程(item系列几个内置方法的实例) 1.namedtuple:命名元组,可以创建一个没有方法只有属性的类 from collections import namedtup ...
 - 操作系统OS,Python - 生产者消费者模型
			
1. 缓冲区(此处用阻塞队列充当),解决消费者和生产者强耦合问题.(生产者和消费者不直接通信) 2. 通过平衡生产者线程和消费者线程,来提高程序整体处理数据速度. 3. 在并发编程中该模式能解决大多数 ...
 - c++拷贝构造函数(翁恺c++公开课[26-27]学习笔记)
			
这节课在p26.拷贝构造中讲的很清楚,建议大家耐心的去看下. 什么时候会发生拷贝构造: 对象之间的初始化赋值 使用对象作为变量进行函数传参(通常使用引用来传参从而减去不必要的拷贝构造,提高效率和代码健 ...
 - 阿里分布式开放消息服务(ONS)原理与实践——笔记整理
			
1.MQ场景 1)订单异步解耦 2)解决分布式事务问题 3)应用于聊天平台 4)大规模机器的Cache同步 5)MySQL BinLog订阅数据分发2.ONS应用场景 ...
 - 更新Android Studio,提示后直接点更新即可。gradle 两种更新方法,我用的第二种:手动添加gradle
			
直接更新即可. 更新完毕后,随即会让你更新gradle,但是会一直更新一直更新...... 解决方法: 第一种方法: 手动下载Android Studio 对应的 gradle版本,然后设置一下即可. ...
 - Controller生命周期
			
1. 实例化 alloc/init, initWithNibName 2.awakeFromNib 从nib创建Controller对象 3.get/set outlets 4. viewDidLoa ...
 - Codeforces 1249E By Elevator or Stairs? 题解
			
这题其实和 NIKKEI 2019-2-D Shortest Path on a Line 差不多的啦,都是一种最短路的变形,把多个点和边关联了起来. 题面 你要从一楼到 \(n\) 楼去,每层楼可以 ...
 - 为什么在/etc/profile中设定的环境变量,对子进程可见
			
系统启动时有个过程是启动初始shell,执行一些固定目录下的脚本,比如/etc/profile.....(系统启动时执行一次),我们在这些文件中添加并导出环境变量 这样shell启动的其它的进程就具备 ...
 - 【剑指Offer面试编程题】题目1371:最小的K个数--九度OJ
			
题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 输入: 每个测试案例包括2行: 第一行为2个整数n,k(1< ...