首页 > 其他分享 >L3-008 喊山

L3-008 喊山

时间:2024-04-07 20:46:32浏览次数:19  
标签:cin int 喊山 back vis vec push 008 L3

DFS。

#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
vector<vector<int>> vec;
int vis[10003];
int main() {
	int n,m,k;
	cin>>n>>m>>k;
	vec.resize(n+10);
	while(m--) {
		int a,b;
		cin>>a>>b;
		vec[a].push_back(b);
		vec[b].push_back(a);
	}
	for(int i=1; i<=n; i++) {
		sort(vec[i].begin(),vec[i].end());
	}
	while(k--) {
		int t;
		cin>>t;
		int output = 0;
		memset(vis,0,sizeof(vis));
		queue<int> q;
		q.push(t);
		vis[t]=1;
		while(!q.empty()) {
			int ssize = q.size();
			int ans = inf;//这一层中的最小
			for(int i=0; i<ssize; i++) { //q当中的节点
				int ele = q.front();
				q.pop();
				for(int j=0; j<vec[ele].size(); j++) {
					if(vis[vec[ele][j]]==0) {
						q.push(vec[ele][j]);
						vis[vec[ele][j]]=1;
						ans=min(ans,vec[ele][j]);
					}
				}
			}
			if(ans != inf) output = ans;
		}
		cout << output << '\n';
	}
	return 0;
}

标签:cin,int,喊山,back,vis,vec,push,008,L3
From: https://www.cnblogs.com/chengyiyuki/p/18119824

相关文章

  • 【更新】上市公司-ZF环保补贴、补助数据(2008-2022年)
    01、数据简介环保补贴,又称绿色补贴,是ZF在环保领域实施的一种特定补贴。它主要针对那些在经济主体意识上存在偏差或由于资金私有制而无法有效进行环保投资的企业。环保补贴的目的是解决环保问题,帮助企业改进环保设备和工艺,以减少对环境的损害。环保补助1=绿色补贴*100/营业总......
  • P1149 [NOIP2008 提高组] 火柴棒等式
    目描述给你 n 根火柴棍,你可以拼出多少个形如A+B=C 的等式?等式中的 A、B、C 是用火柴棍拼出的整数(若该数非零,则最高位不能是 00)。用火柴棍拼数字 0∼90∼9 的拼法如图所示:注意:加号与等号各自需要两根火柴棍;如果A=B,则+B=C 与B+A=C 视为不同的等式(≥0A,B,C≥......
  • P2036 [COCI2008-2009 #2] PERKET
    题目描述Perket是一种流行的美食。为了做好Perket,厨师必须谨慎选择食材,以在保持传统风味的同时尽可能获得最全面的味道。你有 n 种可支配的配料。对于每一种配料,我们知道它们各自的酸度 s 和苦度 b。当我们添加配料时,总的酸度为每一种配料的酸度总乘积;总的苦度为每一种......
  • 洛谷 P1006 [NOIP2008 提高组] 传纸条
    题意:传纸条,跟方格取数一样,但是两条路径不能有重复的。思路:还是一样的走,但是x1跟x2不能相等,包括现在跟上一个状态。总结:看了题解,发现题解大多数都是逻辑不正确的,更有离谱的是数组范围都不加特判,数组访问越界但是可以ac的情况,数据太烂了,放个自以为正确的思路吧,发现之前自己提交的......
  • L3-007 天梯地图
    拿起题就开始写,最后提交测试点2和测试点3就是过不去。感觉一点问题都没有,好郁闷,找了半天,发现地点的编号是0开始的,而我一直在从1遍历....思路就是两个dijkstra,这两次思路是完全一样的,只是一个是最短距离最少节点,一个是最短时间最短距离,所以分别需要增加一个累计经过节点数量和累......
  • 【题解】AGC008F | 思维 统计技巧 换根 二次扫描
    题意:给出一个\(n\)个点的树(边权为\(1\))和集合\(S\),求有多少个点集\(T\)可以被表示为离\(S\)中的一个点\(u\)距离不超过\(d\)的点构成的集合(下文称为\(u\)的\(d\)级邻域)。考虑\(S\)为所有点的特殊情况:我们直接求每个点邻域的个数再求和,会算重一些点集,这种情况......
  • AGC008E Next or Nextnext 解题报告
    \(\text{分析}\)\(i\toa_i\)构成内向基环树,配合暴力程序观察内向基环树常见的一些特殊情况:灰色笔对应的是\(i\toa_i\),黑色笔对应的是\(i\top_i\),我们相当于要构造一个黑色的排列(若干环)使得每一条灰色边的起点可以通过一条或两条黑色边到达终点。\(a_i=i\)(全是自环):可以任......
  • L3-005 垃圾箱分布
    dijkstra。#include<bits/stdc++.h>usingnamespacestd;constintinf=0x3f3f3f3f;intdistances[1010][1010];intdis[1020],visited[1020];intedges[1020][1020];voiddijkstra(intdis[],intvisited[],intn,ints){//s起点 dis[s]=0; for(inti=1;i&l......
  • 服务器windows server2008突然不能访问某些网站、远程桌面打不开
    下载这个软件,并选择BestPractices,再Apply z直接Apply,没有用IIS Crypto是一个免费工具,使管理员能够在WindowsServer2008、2012、2016、2019和2022上启用或禁用协议、密码、哈希和密钥交换算法。它还允许您重新排序IIS提供的SSL/TLS密码套件、更改高级设置、通过单......
  • L3-003 社交集群
    并查集的应用,我感觉这题不是很容易想出来。然后....代码看注释吧。写法一,#include<bits/stdc++.h>usingnamespacestd;inta[1010][1010],fa[1010];intgetf(intx){ while(fa[x]!=-1){ x=fa[x]; } returnx;}voidmerge(intx,inty){ intf1=getf(x); intf2=......