仅以此题纪念脑瘫的我。好吧看见1000的范围没有多想什么,直接跑了一遍tarjan,md其实暴力就可以。。。乌鱼子

题解:
tarjan记录割点能把图分成几个。
tarjan可以适用于1e5数量级别的图。
1.有可能开始的图就没完全连起来
2.注意处理根节点

/*Keep on going Never give up*/
#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int maxn=1e3+10;vector<int> edge[maxn];
int num[maxn],visited[maxn],low[maxn],sum[maxn];
int cnt,n,xxx,root;void tarjan(int x,int fa){num[x]=low[x]=++cnt;int kid=0;visited[x]=true;for(auto i:edge[x]){if(!num[i]){kid++;tarjan(i,x);low[x]=min(low[x],low[i]);if(low[i]>=num[x]){   //割点  >割边sum[x]++;    //记录个数}}else if(num[i]<num[x]&&i!=fa) low[x]=min(low[x],num[i]);}
}void sol(){memset(visited,false,sizeof visited);for(int i=1;i<=n;i++){   //if(!visited[i]){tarjan(i,-1);xxx++;sum[i]--;   //根节点特殊处理}}
}signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);int m,k;cin>>n>>m>>k;for(int i=0;i<m;i++){int x,y;cin>>x>>y;edge[x].push_back(y);edge[y].push_back(x);}sol();for(int i=0;i<k;i++){int x;cin>>x;cout<<sum[x]+xxx-1<<endl;}return 0;
}

1013 Battle Over Cities (25分)(用割点做)相关推荐

  1. 【解析】1013 Battle Over Cities (25 分)_31行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 It is vitally important to have all the cities connected by highw ...

  2. 1013 Battle Over Cities (25 分) 【难度: 中 / 知识点: 连通块】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805500414115840 将这些连通块,连接起来最少的边,即是答案. ...

  3. PAT (Advanced Level) Practise 1013. Battle Over Cities (25)

    1013. Battle Over Cities (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...

  4. 1013. Battle Over Cities (25) 连通图

    1013. Battle Over Cities (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...

  5. 【PAT甲级 - 1013】Battle Over Cities (25分)(并查集)

    题干: It is vitally important to have all the cities connected by highways in a war. If a city is occu ...

  6. 1013 Battle Over Cities(并查集解法)

    关于背景的介绍见1013 Battle Over Cities(图的DFS解法) DFS就是不算特定结点后数连通子图的总数,再减一.我想着那么并查集就是数不算特定节点后,集合元素(根)的个数.但是我弄 ...

  7. PAT甲级1013 Battle Over Cities:[C++题解]并查集、结构体存边

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:并查集题目. 不清楚并查集的小伙伴,请移步并查集原理并查集板子:acwing836. 合并集合. 题意:给定一个连通图,当删掉任意1个 ...

  8. PAT1013. Battle Over Cities (25)

    题目如下: It is vitally important to have all the cities connected by highways in a war. If a city is oc ...

  9. PAT甲级A1013. Battle Over Cities (25)

    题目描述 It is vitally important to have all the cities connected by highways in a war. If a city is occ ...

最新文章

  1. IROS2021 | F-LOAM : Fast LiDAR Odometry and Mapping 解析
  2. java url 生成图片_JAVA 通过URL生成水印图
  3. 【软件工程-Teamwork 3】团队角色分配和团队贡献分分配规则
  4. ios编译与android编译区别是什么,为iOS和Android编译C ++代码(XCode)。 这是真的吗?...
  5. 算法竞赛入门经典(第二版) | 程序3-10 生成元 (UVa1584,Circular Sequence)
  6. Another approach to enable table edit in SE16
  7. java接口课程_用java定义一个接口,用于查询课程
  8. win10电脑桌面透明便签_win10系统在桌面添加透明便签的图文技巧
  9. 山东大学高频电子线路实验一 高频小信号放大实验详解
  10. windows自带的使用键盘代替鼠标操作问题._百度知道
  11. ssm 权限管理系统+nice--v1.02.exe代码生成器
  12. 为什么压缩图片和压缩
  13. java foxpro,在Visual FoxPro中更新顶部
  14. http_code解释
  15. Ubuntu18.04 安装NVIDIA英伟达驱动教程
  16. [IOT] 自制蓝牙工牌办公室定位系统 (一)—— 阿里物联网平台概览及打通端到云(硬核·干货)...
  17. 关于音效合成APP鸡乐盒4.0
  18. STM32 I2C驱动0.96寸OLED屏
  19. 语音唤醒技术的原理是什么?
  20. 北航2022计算机软件基础期末C++复(预)习

热门文章

  1. 收藏 | 卷积神经网络中用1*1 卷积有什么作用或者好处呢?
  2. 清华团队将Transformer用到3D点云分割
  3. 假如计算机是中国人发明的,那代码应该这么写
  4. 第一篇:text preprocessing文本预处理
  5. rabbitmq利用死信队列+TTL 实现延迟队列
  6. linux系统资源监控
  7. python3 django配置数据库(mysql)
  8. 高精度地图量产难,四维图新利用优势准备实现突破
  9. Delphi中的消息截获
  10. bzoj 2375: 疯狂的涂色