UOJ 67 新年的毒瘤
割点
非割点且度数=m-n+2的就是答案。
割点竟然没一次写对,智商已降低。
设根为1。对于非1节点,一定有父亲的边,则它是割点的充要条件是存在一个儿子的low>=自己的dfn。对于1节点,它是割点的充要条件是有至少两个儿子。
MD,对于非1节点忘记判断 x != 1了
#include<cstdio>
#define R register
#define N 100005
#define cmin(u,v) ((u)>(v)?(u)=(v):0)
using namespace std;
namespace runzhe2000
{int last[N], ecnt, n, m, deg[N], cut[N], low[N], dfn[N], timer, out[N], cnt;struct edge{int next, to;}e[N<<1];inline void addedge(R int a, R int b){e[++ecnt] = (edge){last[a], b};last[a] = ecnt;}void tarjan(R int x){low[x] = dfn[x] = ++timer;R int siz = 0;for(R int i = last[x]; i; i = e[i].next){R int y = e[i].to;if(!dfn[y]){tarjan(y); siz++;cmin(low[x], low[y]);if(x != 1 && low[y] >= dfn[x]) cut[x] = 1;}else cmin(low[x], dfn[y]);}if(x == 1 && siz > 1) cut[1] = 1; }void main(){scanf("%d%d",&n,&m);for(R int i = 1, x , y; i <= m; i++){scanf("%d%d",&x,&y);deg[x]++; deg[y]++;addedge(x, y);addedge(y, x);}tarjan(1);for(R int i = 1; i <= n; i++)if(!cut[i] && deg[i] == m-n+2)out[++cnt] = i;printf("%d\n",cnt);for(R int i = 1; i <= cnt; i++) printf("%d ",out[i]);}
}
int main()
{runzhe2000::main();
}
UOJ 67 新年的毒瘤相关推荐
- UOJ 67 新年的毒瘤 - Tarjan
Description 给出一个无向图, 要求找出某个点$u$, 去掉$u$和$u$所连的边, 所剩下的节点构成一棵树. Solution 首先, 割点肯定是不可能满足条件的, 因为去掉割点后会构成若 ...
- 【UOJ】67 新年的毒瘤 【BZOJ】1123 BLO
[UOJ 67] 题目链接: 传送门 题解: 第一眼很懵逼--这什么鬼. 思考什么点复合条件--(o(>﹏<)o 1.树,也就是说还剩n-2条边,等价于要删去一个度数为m-n+2的点. 2 ...
- 【UOJ#67】新年的毒瘤 Tarjan 割点
#67. 新年的毒瘤 UOJ直接黏贴会炸... 还是戳这里吧: http://uoj.ac/problem/67#tab-statement Solution 看到这题的标签就进来看了一眼. 想 ...
- uoj 175. 新年的网警
题意: 在这新年的第一天,猴族首领猴腮雷打算来整治一下网络风气.这时,他听说在一个叫做 Universal OJ 用户群 的 QQ 群中有人在散播(开)谣言(车),于是他就派了一群网警把这个用户群里的 ...
- UOJ #593. 新年的军队 题解
#593. 新年的军队 属实是一道神仙题,估计是去年这个时候听说了这道题,最近把这个坑填了. 给后面要来写的人提个醒,这个题其实没有想象地那么恐怖,代码其实也不复杂,只是推导十分困难. 我说我这篇是全 ...
- UOJ#460. 新年的拯救计划 构造
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ460.html 题解 本题的构造方法很多.这里只介绍一种. 首先,总边数为 $\frac{n(n-1)}2 ...
- uoj#351. 新年的叶子(概率期望)
传送门 数学还是太差了,想了半天都没想出来 首先有一个定理,如果直径(这里考虑经过的点数)为奇数,所有直径有同一个中点,如果直径为偶数,所有直径有同一条最中间的边.这个可以用反证法,假设不成立的话直径 ...
- [UOJ#177]新年的腮雷
Description 你有一个长度为n的序列a,和一个长度为m的序列b 你每次可以选择m个a中的数x1~xm合并(顺序任意),合并会剩下一个数,为min(xi+bi) 你需要让剩下的最后的数最小. ...
- Noip前的大抱佛脚----赛前任务
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...
最新文章
- 给网站管理员的建议:创建可利用的、可抓取的网站
- 面试pythonweb开发的简历_【经验分享】对于Python各个方向的面试经验分享,非常给力!...
- JavaScript标准参考教材(alpha)--笔记
- 建立新冠病毒群体免疫屏障——数学建模
- mysql大量数据插入探讨(量变引起质变)
- 特别实用的 6 款 Python 特殊文本格式处理库推荐
- 关系数据库规范化理论(关系数据库设计理论)
- 2019 年 8 月编程语言排行榜,Java涨幅不行!
- 想要阅读一些开源项目或框架的源代码,不知道从哪里入手?
- es6 --- 解构赋值的简洁性
- qt 飞扬青云_Qt编写带频谱的音乐播放器
- java string类型的初始化
- 使用WindowsXP中的网桥功能
- C++函数重载的概念
- [转载]未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。
- tp5 + 百度编辑器 +七牛云存储的实现办法
- 清华大学计算机系研究生培养方案,清华大学计算机科学与技术系攻读硕士学位研究生培养方案...
- 一位美女交易员的日内交易方法(值得一看)
- 毕业设计c语言课程设计,毕业设计—c语言—课程设计.doc
- 计算机硬件功能作用,cpu的作用和主要功能是什么