河南省多校联萌-HAUT-1285-军团再临
问题 G: 军团再临
时间限制: 1 秒 内存限制: 128 MB
提交: 48 解决: 19
提交 状态
题目描述
输入
接下来m行每行两个整数x,y (1<=x,y<=n)表示要塞x和要塞y之间有一条道路连接。
接下来一行为一个整数k表示将会打击的要塞数量。1<=k<=n。
接下来k行每行一个整数v表示会打击的城市这k个数互不相同,1<=v<=n。
输出
样例输入
8 13 1 2 2 7 7 6 6 1 1 7 2 3 3 4 4 5 5 6 8 2 8 3 8 7 4 7 5 2 7 4 6 8
样例输出
1 1 1 2 3 3
提示
提交 状态
总结,自己还是太菜,看到数据长没人交就认为这到题难(其实还真算不简单)在听了学长说的后有点思路,但还不知道咋写,一看完标程瞬间明白,这是一道很水的并查集,可以倒着推。。。。。
自己对并查集还没太理解,不知道什么时候该用,不会活用。。。
代码
#include<cstdio>
#include<iostream>
#include<cmath>
#include<vector>
using namespace std;
int ss[400005];
vector<int>q[400005];
int vis[400005]={0};
int viss[400005]={0};
int hk[400005]={0};
int sum[400005]={0};
int find(int x)
{if(x==ss[x]) return x;return ss[x]=find(ss[x]);
}
int main()
{ios::sync_with_stdio(false);int n,m;cin>>n>>m;for(int i=1;i<=n;i++)ss[i]=i;for(int i=0;i<m;i++){int x,y;cin>>x>>y;q[x].push_back(y);q[y].push_back(x);}int gj;cin>>gj;for(int i=1;i<=gj;i++){cin>>hk[i];vis[hk[i]]=1;}for(int i=1;i<=n;i++){if(vis[i]) continue;for(int j=0;j<q[i].size();j++){if(vis[q[i][j]]) continue;int xx=find(i);int yy=find(q[i][j]);if(xx!=yy) ss[xx]=yy;}}for(int i=1;i<=n;i++){if(vis[i]) continue;int k=find(i);if(!viss[k]){sum[gj+1]++;viss[k]=1;}}// cout<<ss[i];for(int i=gj;i>=1;i--){vis[hk[i]]=0;sum[i]=sum[i+1];int flag=0;for(int j=0;j<q[hk[i]].size();j++){// cout<<q[hk[i]][j]<<" "<<hk[i]<<vis[q[hk[i]][j]]<<endl;if(vis[q[hk[i]][j]]) continue;flag++;int xx=find(hk[i]);int yy=find(q[hk[i]][j]);if(xx!=yy){if(hk[i]!=xx) sum[i]--;ss[xx]=yy;}}if(flag==0) sum[i]++;}for(int i=1;i<=gj+1;i++)cout<<sum[i]<<endl;return 0;
}
加油!!!努力!!!
河南省多校联萌-HAUT-1285-军团再临相关推荐
- 2016弱校联萌十一专场10.2
F.floyd-warshell 20000个点,距离为1的所有边求最短路 感觉就是单纯的生成树求最短路(最近公共祖先) 然后把去掉的边还原 把涉及的点bfs一下拼出最短路 赛场注意不要被这种题目吓到 ...
- 弱校联萌十一大决战之如日中天A Ariel【二进制+排序】
这个题也是太不好懂了==看了过的代码才明白(⊙﹏⊙)b 不过当时就能想到二进制也挺欣慰的 什么叫做"相同的必须有,没有的必须没有,其他的无所谓?"==>后来查询中的给的特征与 ...
- [弱校联萌2016]2016弱校联盟十一专场10.2
比赛链接:https://www.bnuoj.com/v3/contest_show.php?cid=8520 A.无非两种情况,点在体里和点在体外.在体外分三种情况,分别是到顶点的距离最小.到棱的距 ...
- [弱校联萌2016]2016弱校联盟十一专场10.3
比赛链接:https://www.bnuoj.com/v3/contest_show.php?cid=8504#info A.找两个数乘积是连续上升并且最大的. 1 #include <bits ...
- [弱校联萌2016]2016弱校联盟十一专场10.5
比赛链接:https://www.bnuoj.com/v3/contest_show.php?cid=8506#info I.裸数位dp,dp[l][pre][dir][fz]表示长度为l的时候上一个 ...
- 弱校联萌十一大决战之如日中天-C. Cinderella
Cinderella is given a task by her Stepmother before she is allowed to go to the Ball. There are N (1 ...
- 弱校联萌十一大决战之如日中天C Cinderella
Input/Output: standard input/output Cinderella is given a task by her Stepmother before she is allow ...
- zzuli2181-GJJ的日常之暴富梦-多校联萌(四)
传送门:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2181 2181: GJJ的日常之暴富梦 Time Limit: 1 Sec Memor ...
- 湖南长郡2021高考成绩查询时间,2021年湖南新高考六校、长郡十五校联考时间公布...
2021年湖南新高考六校.长郡十五校联考时间公布 导读:距离2021年高考时间仅剩不到一百天,各个省份都的高三学子都进入紧张阶段.开始了各种模拟考试.2021届湖南省炎德英才大联考的考试时间也已经公布 ...
最新文章
- 浅谈Android五大布局——LinearLayout、FrameLayout和AbsoulteLa
- 对于细节的一些处理和领悟
- ARM指令寻址方式之: 数据处理指令的寻址方式
- .NET Core 的过去、现在和未来
- 活动:北京Xamarin分享会第8期(2017年11月11日)
- iOS开发UIResponder简介API
- Enterprise Library 2.0 插件介绍:Avanade Integration Pack
- GitLab持续集成在商用项目中的应用实践
- 阿里2019财年收入达3768.44亿元 盘前涨幅一度超4%
- 走进javascript——解开switch之谜
- pythonpost请求json_将JSON字符串作为post请求发送
- 大数据分析平台和工具,主要有哪些?
- MySQL数据库实验练习题
- 【python游戏】新的一年快来变身兔兔战士打败獾守护兔兔吧~
- 【RPC】序列化与反序列化
- Abp 微信小程序登录 基本的流程和实践
- “幽幽远远”正式开张了,但是我的心情没有往日的开怀
- LONGSYS 64G M6固态硬盘SM2244G主控开卡
- 高端大气星空新品发布会PPT模板
- Ptcms在php7.2.10下的采集调试