采用深度搜索或者宽搜:

#include<cstdio>
#include<cstring>
#include<vector>
#include<iostream>
#include<cmath>
using namespace std;
int vis[510],lost[510];
int e[105][105];
int n,m,sz,block,cnt_n;void dfs(int idx){vis[idx] = 1;for (int i = 0; i < n; i++){if (!vis[i] && !lost[i]&&e[idx][i]==1)dfs(i);}
}
int count_block(){int cnt = 0;memset(vis,0,sizeof vis);for (int i = 0; i < n; i++){if (!vis[i] && !lost[i]){cnt++;dfs(i);}}return cnt + sz;
}int main(){int x,y,test_cnt,num,new_block;cin>>n>>m;n*=2;cnt_n = n;for (int i = 0; i < m; ++i){cin>>x>>y;e[x][y]=e[y][x]=1;}block = count_block();cin>>test_cnt;for (int i = 0; i < test_cnt; ++i){cin>>num;lost[num] = 1;sz++;new_block = count_block();if (abs(new_block - block) <= 1) cout<<"City "<<num<<" is lost."<<endl;else cout<<"Red Alert: City "<<num<<" is lost!"<<endl;cnt_n--;if (cnt_n == 0){cout<<"Game Over.";return 0;}block = new_block;}return 0;
}
/*
#include<cstdio>
#include<cstring>
#include<vector>
#include<iostream>
#include<cmath>
using namespace std;
int vis[510],lost[510];
vector<vector<int> > access;
int n,m,sz,block,cnt_n;void dfs(int idx){vis[idx] = 1;for (int i = 0; i < access[idx].size(); ++i){if (!vis[access[idx][i]] && !lost[access[idx][i]])dfs(access[idx][i]);}
}
int count_block(){int cnt = 0;memset(vis,0,sizeof vis);for (int i = 0; i < n; ++i){if (!vis[i] && !lost[i]){cnt++;dfs(i);}}return cnt + sz;
}int main(){int x,y,test_cnt,num,new_block;cin>>n>>m;access.resize(n);cnt_n = n;for (int i = 0; i < m; ++i){cin>>x>>y;access[x].push_back(y);access[y].push_back(x);}block = count_block();cin>>test_cnt;for (int i = 0; i < test_cnt; ++i){cin>>num;lost[num] = 1;sz++;new_block = count_block();if (abs(new_block - block) <= 1) cout<<"City "<<num<<" is lost."<<endl;else cout<<"Red Alert: City "<<num<<" is lost!"<<endl;cnt_n--;if (cnt_n == 0){cout<<"Game Over.";return 0;}block = new_block;}return 0;
}
*/
/*#include<iostream>
#include<algorithm>
#include<vector>
#include<cstring>
#include<cmath>
#include<queue>
using namespace std;
int e[1005][1005];
int n,m;
int vis[1005];
void init(){for(int i=0;i<=n;i++){vis[i]=0;for(int j=0;j<=n;j++){e[i][j]=0;}}
}
int Queue(int s,int d){queue<int>q;q.push(s);vis[s]=1;while(!q.empty()){int x=q.front();q.pop();if(x==d)return 1;for(int i=0;i<n;i++){if(e[x][i]==1&&vis[i]==0){q.push(i);vis[i]=1;if(i==d)return 1;}}}return 0;
}
int main(){cin>>n>>m;init();for(int i=0;i<m;i++){int x,y;cin>>x>>y;e[x][y]=e[y][x]=1;}int k;cin>>k;for(int i=0;i<n;i++){memset(vis,0,sizeof(vis));for(int j=0;j<n;j++){int flag=Queue(i,j);if(flag==1){e[i][j]=1;}}}int p[1050];int l=0;memset(p,0,sizeof(p));for(int i=0;i<k;i++){int x;cin>>x;l++;int flag=1;for(int r=0;r<n;r++){memset(vis,0,sizeof(vis));for(int j=0;j<n;j++){if(p[r]==0&&(e[r][j]==1||e[j][r]==1)){e[r][x]=e[x][r]=0;e[j][x]=e[x][j]=0;if(p[j]==0){flag=Queue(r,j);}}}if(flag==0){cout<<"Red Alert: City "<<x<<" is lost!"<<endl;break;}}if(flag==1){if(l==n){cout<<"City "<<x<<" is lost."<<endl;cout<<"Game Over."<<endl;}else{cout<<"City "<<x<<" is lost."<<endl;}}p[x]=1;}return 0;
}
*/

PTA团体程序设计天梯赛-L2-013 红色警报相关推荐

  1. 团体程序设计天梯赛-L2组

    团体程序设计天梯赛-L2组 -------------------------------------------------------------------------------- 题目传送门 ...

  2. PTA团体程序设计天梯赛(L1-061~L1-070)

    PTA团体程序设计天梯赛[L1-061~L1-070] L1-060 心理阴影面积 (5 分) L1-062 幸运彩票 (15 分) L1-063 吃鱼还是吃肉 (10 分) L1-064 估值一亿的 ...

  3. PTA团体程序设计天梯赛篇(五)---- 难题篇一(30分题目)

    PTA团体程序设计天梯赛 数据结构类型 L3-002 特殊堆栈(树状数组) L3-003 社交集群(并查集) 搜索 L3-004 肿瘤诊断(三维bfs) 确保bfs只遍历一次的方法 图论 L3-005 ...

  4. PTA团体程序设计天梯赛-练习集(3)

    PTA团体程序设计天梯赛-练习集 L1-001 Hello World (5 分) 这道超级简单的题目没有任何输入. 你只需要在一行中输出著名短句"Hello World!"就可以 ...

  5. PTA团体程序设计天梯赛-练习集

    PTA团体程序设计天梯赛-练习集 L1-024 后天 L1-025 正整数A+B L1-026 I Love GPLT L1-027 出租 L1-029 是不是太胖了 L1-030 一帮一 L1-03 ...

  6. PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

    PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...

  7. PTA团体程序设计天梯赛-练习集Level-1(参考代码C语言/Python版)

    本题目集截止到2022年天梯赛 受个人水平限制,<PTA团体程序设计天梯赛-练习集>中暂时只能把Level-1的题目做出来(也许有些Level-2的题可以写出来?)-我不是专门搞竞赛的,参 ...

  8. PTA团体程序设计天梯赛(L1-031~L1-040)

    PTA团体程序设计天梯赛[L1-031~L1-040] L1-031 到底是不是太胖了 (10 分) L1-032 Left-pad (20 分) L1-033 出生年 (15 分) L1-034 点 ...

  9. PTA|团体程序设计天梯赛-练习题库集

    文章目录 关于爬取脚本的编写 L1-001 Hello World! (5 分) L1-002 打印沙漏 (15 分) L1-003 个位数统计 (15 分) L1-004 计算摄氏温度 (5 分) ...

  10. 团体程序设计天梯赛 L2 题目合集

    前言 发现自己还能再参加一次天梯赛,在高兴之余,决定把在赛前将所有的天梯赛真题过一遍,希望自己可以取得理想的成绩.目前 L1 的题目已经刷完,打算在赛前刷完 L2 的题目. 本来想 L2 的题目都写个 ...

最新文章

  1. R语言使用yardstick包的lift_curve函数评估多分类(Multiclass)模型的性能、并使用autoplot函数可视化模型在每个交叉验证(或者重采样)的每一折fold在每个分类上的提升
  2. 信息系统项目管理师:第9章:项目人力资源管理-历年真题
  3. 【学亮IT手记】枚举类入门实例讲解
  4. 换乐网GridFS应用分析
  5. 基于OGG Datahub插件将Oracle数据同步上云
  6. centos7恢复mysql数据库_MySQL数据库升级迁移填坑记
  7. 【Cocos2dX(2.x)_Lua开发之三】
  8. 信息学奥赛一本通(1111:不高兴的津津)
  9. HDU2007 平方和与立方和【序列处理+入门】
  10. Java从入门到精通+第三版.pdf
  11. 素士科技IPO折戟,困于营销和小米
  12. spring定时器的简单实用
  13. 费式序列(斐波那契数列)
  14. 获两个千亿IPO投资人王刚:要逼自己在质上进取,不是在量上贪婪
  15. 【OpenCV】双目相机测距及其深度恢复原理及其算法流程
  16. DSP TMS320F2803x CLA 指令
  17. vs code 运行C语言并调试
  18. 读取html到超级列表框,超级列表框读取TXT文本配置内容
  19. 【推荐】数据湖技术及实践与案例资料汇总合集47篇
  20. 中国国界九段线,单独加载方法和原始数据

热门文章

  1. k-近邻算法之距离度量
  2. python爬虫执行scrapy crawl demo出现: import win32api ModuleNotFoundError: No module named 'win32api'错误
  3. 剑指offer java版(三)
  4. 深入剖析Kubernetes k8s
  5. SQL SERVER特殊行转列案列一则
  6. winsock2之最简单的win socket编程
  7. C# 视频监控系列(2):客户端——封装API
  8. 未来的全能保姆机器人作文_保姆机器人作文500字
  9. 【程序员趣味】用Python制作带字小人举牌
  10. pythonpil库过滤图像contour_快乐python 零基础也能P图 —— PIL库