当前位置: 首页 > news >正文

天梯赛 L2-013 红色警报

这道题题意就是给你一个图,一次打掉k个点,如果当前点能够使得连通块数量增加,就输出警告,其它的正常输出,最后如果k==n就输出游戏结束。可以采用并查集暴力求解也可以采用bfs求解,我这里采用的是bfs,每次打掉一个点,我们先标记该点被摧毁,如果当前点的度为0或1,就一定不会影响连通块的数量,否则就找一个该点的未被摧毁的邻接点,从这个邻接点开始bfs,把所有相邻的点全部标记为1,在判断当前摧毁点的未被摧毁的邻接点是否全被标记为1,如果有0就代表,联通块增加。

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
// #define int long long
typedef long long ll;
const int N = 510;
int n,m;
vector<vector<int>> g(N);
vector<int>vt(N+1,0),st(N+1,0);
void bfs(int x){
	queue<int> q;
	q.push(x);
	vt[x] = 1;
	while(q.size()){
		int tmp = q.front();
		q.pop();
		for(auto v : g[tmp]){
			if(vt[v] || st[v]) continue;
			q.push(v);
			vt[v] = 1;
		}
	}
}
int st1[N][N];
void solve() {
	cin>>n>>m;
	for(int i = 1;i <= m ; i++){
		int u,v;
		cin>>u>>v;
		if(st1[u][v] == 0){
			g[u].push_back(v);
			g[v].push_back(u);
			st1[u][v] = st1[v][u] = 1;
		}
	}
	int k;
	cin>>k;
	int cnt = 0;
	for(int l = 1 ; l <= k ; l++){
		int x;
		cin>>x;
		st[x] = 1;
		if(g[x].size() == 0){
			cout<<"City "<<x<<" is lost."<<endl;
		}else if(g[x].size() == 1){
			cout<<"City "<<x<<" is lost."<<endl;
		}else{
			int now = -1;
			for(int i = 0; i < g[x].size() ; i++){
				if(st[g[x][i]] == 0){
					now = g[x][i];
					break;
				}
			}
			if(now == -1){
				cout<<"City "<<x<<" is lost."<<endl;
				continue;
			}
			for(int i = 0; i <= 505 ; i++){
				vt[i] = 0;
			}
			bfs(now);
			bool flag = 0;
			for(int i = 0; i < g[x].size() ; i++){
				if(vt[g[x][i]] == 0 && st[g[x][i]] == 0 && g[x][i] != now){
					// cout<<g[x][i]<<" bj"<<endl;;
					cout<<"Red Alert: City "<<x<<" is lost!"<<endl;
					flag = 1;
					break;
				}
			}
			if(!flag){
				cout<<"City "<<x<<" is lost."<<endl;
			}
		}
	}
	if(k == n){
		cout<<"Game Over.";
	}
}
int main() {
    // ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int tt = 1;
    // cin >> tt;
    while (tt--) {
        solve();
    }
    return 0;
}

相关文章:

  • 2025海外华文新媒体高级人才研修班在广西南宁举办
  • Java实体类(Javabean)-编程规范
  • 自动学习和优化过程,实现更加精准的预测和决策的智慧交通开源了
  • 神聖的綫性代數速成例題13. 非齊次方程組解的性質、非齊次方程組解的討論
  • python:music21 构建 LSTM+GAN 模型生成爵士风格音乐
  • [笔记] TinyWebServer编译及demo运行过程
  • 什么是PHP伪协议
  • 详细解释计算机系统中的大小端
  • Unity摄像机基本操作详解:移动、旋转与缩放
  • qt实现一个简单http服务器和客户端
  • 前端(vue)学习笔记(CLASS 5):自定义指令插槽路由
  • 熔断降级(Sentinel解决)
  • 在OpenGL ES中将值传入shader的方法总结
  • 一条不太简单的TEX学习之路
  • 论文阅读:Attention is all you need
  • 从PGC到AIGC:海螺AI多模态内容生成系统的技术革命
  • android 音量调节
  • 【第二十八周】:Temporal Segment Networks:用于视频动作识别的时间分段网络
  • vue3配置代理实现axios请求本地接口返回PG库数据【前后端实操】
  • 【回归算法解析系列12】分位数回归(Quantile Regression)
  • 荣盛发展股东所持1.17亿股将被司法拍卖,起拍价约1.788亿元
  • 浙商银行一季度净赚超59亿微增0.61%,非息净收入降逾22%
  • 违规行为屡禁不止、责任边界模糊不清,法治日报:洞穴探险,谁为安全事故买单?
  • 民生银行一季度净利127.42亿降逾5%,营收增7.41%
  • 江西省公安厅警务保障部原主任辛卫平主动交代问题,正接受审查调查
  • 澎湃思想周报丨数字时代的育儿;凛冬已至好莱坞