UOJ#67. 新年的毒瘤】的更多相关文章

#67. 新年的毒瘤 辞旧迎新之际,喜羊羊正在打理羊村的绿化带,然后他发现了一棵长着毒瘤的树. 这个长着毒瘤的树可以用n个结点m 条无向边的无向图表示.这个图中有一些结点被称作是毒瘤结点,即删掉这个结点和与之相邻的边之后,这个图会变为一棵树.树也即无简单环的无向连通图. 现在给你这个无向图,喜羊羊请你帮他求出所有毒瘤结点. 样例一 input 6 6 1 2 1 3 2 4 2 5 4 6 5 6 output 3 4 5 6 256MB 来源 UOJ Goodbye Jiawu [思路] 无向…
#67. 新年的毒瘤 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/67 Description 辞旧迎新之际,喜羊羊正在打理羊村的绿化带,然后他发现了一棵长着毒瘤的树. 这个长着毒瘤的树可以用 n 个结点 m 条无向边的无向图表示.这个图中有一些结点被称作是毒瘤结点,即删掉这个结点和与之相邻的边之后,这个图会变为一棵树.树也即无简单环的无向连通图. 现在给你这个无向图,喜羊羊请你帮他求出所有毒瘤结点. I…
题目链接: 题目 #67. 新年的毒瘤 问题描述 辞旧迎新之际,喜羊羊正在打理羊村的绿化带,然后他发现了一棵长着毒瘤的树. 这个长着毒瘤的树可以用 nn 个结点 mm 条无向边的无向图表示.这个图中有一些结点被称作是毒瘤结点,即删掉这个结点和与之相邻的边之后,这个图会变为一棵树.树也即无简单环的无向连通图. 现在给你这个无向图,喜羊羊请你帮他求出所有毒瘤结点. 输入 第一行两个正整数 n,mn,m,表示有 nn 个点 mm 条边.保证 n≥2n≥2. 接下来 mm 行,每行两个整数 v,uv,u…
传送门 练习一下Tarjan的模板. 求一下割点,然后加个约束条件判一下特殊点,剩下的就是所求点. //UOJ 67 //by Cydiater //2016.10.27 #include <iostream> #include <iomanip> #include <cmath> #include <ctime> #include <cstring> #include <string> #include <algorithm&…
题目:http://uoj.ac/problem/67 题意:n个节点m条边的图,删除某个节点及他相连的所有边之后,剩下的图就成了一棵树.找出所有这样的节点. 思路:上次去清华面试的B题,当时就是在瞎写.太菜了. 其实就是两点,一是删除一个点是树,那么剩下来只有$n-2$条边.也就是说删掉的那个点的度是$m - (n - 2)$ 其次,删掉了这个点之后还需要保证图的连通性,也就是说割点一定不是. 所以就先用Tarjan求出所有割点,再找不是割点且度是$m - (n - 2)$的点. #inclu…
Description 给出一个无向图, 要求找出某个点$u$, 去掉$u$和$u$所连的边, 所剩下的节点构成一棵树. Solution 首先, 割点肯定是不可能满足条件的, 因为去掉割点后会构成若干个不连通的图. 所以我们先求出割点, 再查找不是割点, 并且 去掉它连接的边, 剩下的 边数为$N-2$, 只有这种点才能够满足要求. Code #include<cstdio> #include<cstring> #include<algorithm> #include…
[UOJ 67] 题目链接: 传送门 题解: 第一眼很懵逼……这什么鬼. 思考什么点复合条件……(o(>﹏<)o 1.树,也就是说还剩n-2条边,等价于要删去一个度数为m-n+2的点. 2.还是树,也就是说联通图,等价于选取点不能是割点. ……想不出来了.然后?然后就够了233.证明什么的,显然……(当时智障的我 代码: BZOJ 1123BLO 题目链接: 传送 题解: 此题唯一要求的大概就是某个割点下各个DFS树上子节点的大小. 思考…… DFS树…… 1.点双走的可以看做一个有“回边”的…
#67. 新年的毒瘤 UOJ直接黏贴会炸...    还是戳这里吧: http://uoj.ac/problem/67#tab-statement Solution 看到这题的标签就进来看了一眼. 想了一个比较胡搞的方法,因为删除割点就会产生多个块,那么割点是不能被割的,所以只能割非割点. 删除非割点后是棵树,说明边数是N-2...然后求一下每个点的度... 只要不是割点,并且割掉这个点剩的边是N-2条,就输出..... 然后就A了...感觉还是很科学的. (这个Tarjan模板太好打了...顺…
[UOJ#67]新年的毒瘤(Tarjan) 题面 UOJ 题解 一棵\(n\)个节点的树显然有\(n-1\)条边,在本题中意味着删去一个点之后还剩下\(n-2\)条边.那么找到所有度数为\(m-(n-2)\)的点就好了.但是因为是一棵树,所以联通,所以割点不是答案. #include<iostream> #include<cstdio> using namespace std; #define ll long long #define MAX 100100 inline int r…
Online Judge:#uoj 67 Label:Tarjan,割点,细节 题目描述 辞旧迎新之际,喜羊羊正在打理羊村的绿化带,然后他发现了一棵长着毒瘤的树.这个长着毒瘤的树可以用\(n\)个结点\(m\)条无向边的无向图表示.这个图中有一些结点被称作是毒瘤结点,即删掉这个结点和与之相邻的边之后,这个图会变为一棵树.树也即无简单环的无向连通图. 现在给你这个无向图,喜羊羊请你帮他求出所有毒瘤结点. 输入 第一行两个正整数\(n,m\),表示有\(n\)个点\(m\)条边.保证\(n≥2\).…
[UOJ#351]新年的叶子 试题描述 躲过了AlphaGo 之后,你躲在 SingleDog 的长毛里,和它们一起来到了AlphaGo 的家.此时你们才突然发现,AlphaGo 的家居然是一个隐藏在地下的计算中心!难道 AlphaGo 如此人赢的秘密是...它其实是一个 AI? 根据情报,这个地下的计算中心的结构构成了一棵无根树,整个计算中心名为被 AT-field 的力场保护起来,保护力场的直径恰好等于树的直径(树的直径定义为树上距离最远的两个结点之间的距离,结点 \(u,v\) 的距离定义…
#66. 新年的巧克力棒 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/66 Description 马上就要到羊年了,羊村一片欢腾,懒羊羊则懒洋洋地躺在草坪上吃新年的巧克力棒. 他手上的巧克力棒是个由 n 个巧克力单元格组成的长度为 n 的长条,现在懒羊羊想把巧克力棒掰开成一个个小单元格. 初始时懒羊羊会把这根巧克力棒丢在草坪上,然后每次懒羊羊会从草坪上拿起一根长度大于 1 的巧克力棒,然后从某两个相邻的…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:http://uoj.ac/problem/67 正解:tarjan+树的相关性质 解题报告: 考虑能变成一棵树,肯定说明至少选择的点不是割点,其次题解里面说了这个点的度数有特定的要求... 那么就变成简单题了... 只需找出不是割点且度数=m-…
清真的构造题 UOJ# 460 题意 求将$ n$个点的完全图划分成最多的生成树的数量,并输出一种构造方案 题解 首先一棵生成树有$ n-1$条边,而原完全图只有$\frac{n·(n-1)}{2}$条边 因而最多的生成树数量仅为$\frac{n}{2}$ 只考虑$ n$为偶数的情况(n为奇数时所有生成树中随便挑一个点往新点连边即可) 当$n=2$时生成树为(1,2) 当$ n >2$时先将$ n$和$ n-1$连边 然后将对于$ 1 \leq i <n-1$,如果$ i$是奇数就将$ (i,…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ351.html 题目传送门 - UOJ351 题意 有一个 n 个节点的树,每次涂黑一个叶子节点(度为 1 的节点),可以重复涂黑. 问使得白色部分的直径发生变化的期望涂黑次数. $n\leq 5\times 10^5$ 题解 首先考虑什么情况下直径长度会发生改变. 考虑找到直径的中点,可能在边上. 对于这个直径相连的每一个子树,分别算出在这个子树中的距离直径中点距离为直径长度的一半的节点个数. 于是我…
题目传送门 题意:给出一个$N$个点.$M$条边的无向图,找出其中的点,满足去掉该点与和它相连的边之后,这个图会变成一棵树.$N , M \leq 10^5$ 说是毒瘤,真的不毒瘤 思考一下,我们需要找的就是度为$M - (N - 1 - 1)$且不是割点的点,直接tarjan即可 想起来在某luogu题解里把tarjan写成targan #include<bits/stdc++.h> #define MAXN 100001 using namespace std; inline int re…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ460.html 题解 本题的构造方法很多.这里只介绍一种. 首先,总边数为 $\frac{n(n-1)}2$,每一棵树需要 $n-1$ 条边,所以答案最多是 $\lfloor \frac n 2 \rfloor$ . 然后我们来找到构造出 $\lfloor \frac n 2 \rfloor$ . 这里我们只考虑 n 为偶数,因为如果 n 为奇数的话就只要在 n-1 的基础上随便连就好了. 考虑增量法.…
题意 给你一张无向连通图,你并不知道有哪些边,你首先要回答这张图是否是二分图,如果是,回答这张图黑白染色过后的任意一个点集.你需要在2000次询问内找到结果,每次你可以询问原图中一个边集删掉后是否还连通. \(n\le 200\) 分析 考虑先得到一棵树,再根据这棵树的黑白染色的结果划分成两个点集,如果是二分图则除去点集之间的边不存在其他的边.如果不是,在此基础上一定有一条树边删除之后整个图仍然连通. 考虑不断删掉图上的边,如果一条边删除之后不连通则保留,可以证明操作之后一定能够得到一棵树. 这…
挺妙的解法. 发现边权很小,我们可以考虑从大到小枚举边权来进行$kruskal$算法,这样子对于每一个边权$i$,我们只要枚举$0 \leq j < m$,找到一个点使它的点权为$i | 2^j$,尝试连边即可. 另外,如果同一个点权重复出现,一定有办法使这个边权连满,这样子直接累加到答案里就可以了. 时间复杂度$O(m * 2^m)$,再套一个并查集的复杂度. Code: #include <cstdio> #include <cstring> using namespac…
传送门 我还以为这是个五维半平面交呢--结果没看数据范围-- 题解 //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i) #define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i) #define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v…
传送门 数学还是太差了,想了半天都没想出来 首先有一个定理,如果直径(这里考虑经过的点数)为奇数,所有直径有同一个中点,如果直径为偶数,所有直径有同一条最中间的边.这个可以用反证法,假设不成立的话直径会变长 如果直径为奇数,那么我们可以以共同经过的那个点为根,把所有在直径上的叶子按不同的子树分类,如果某两个叶子在同一棵子树,那么它们不可能构成直径,如果在不同的子树,那么必定能构成直径.所以把所有在直径上的叶子按不同的子树分为若干个集合 如果是偶数,那么就直接分为两个集合 我们现在要求的,就是这些…
前缀异或和是可以讨论的,非常naive,然后这就是个水题了23333 #include<bits/stdc++.h> #define ll long long using namespace std; int T,lef; ll L[4]={1,2,3,1},R[4]={3,3,5,2}; int main(){ // freopen("T1.in","r",stdin); // freopen("T1.out","w&qu…
对于这个神仙题,我还能说什么~ 第一个答案=$n/2$ 还是比较好猜的. 对于构造这个树,大概就是先从 $1$ 号节点向 $n/2$ 距离以内都连一条边,再在第 $n/2$ 个节点进行这个操作,然后从 $2$ 开始..... 你会发现不合法的情况就是有重边,然而这个是循环的,第 $n/2+1$ 次才会重,所以是可行的. #include <cstdio> #include <algorithm> #define setIO(s) freopen(s".in",&…
关于基础知识的预备桥和割点.双联通分量.强连通分量,支配树.(并不会支配树) 关于有向图的Tarjan,是在熟悉不过的了,它的主要功能就是求强联通分量,缩个点,但是要注意一下构建新图的时候有可能出现重边(即使原图没有重边),他还时常和拓扑排序放在一起.eg: #include<cstdio> #include<cstring> #include<algorithm> <<)+],*xS=xB,*xT=xB; #define gtc (xS==xT&&…
\(Tarjan\)&\(2-SAT\) 标签: 知识点总结 安利XZYXZY ps:里面的部分东西来自\(Anson\)和\(yler\)和\(XZY\) 阅读体验:https://zybuluo.com/Junlier/note/1293491 \(Tarjan\)大爷 前世没见过Tarjan这么牛逼的人 并且他还弄了好多别的东西... 留这么多东西给我们...爆炸 强连通分量&割点&割边&点双&边双 简介 在有向图G中,如果两个顶点vi,vj间(vi>v…
这次比赛真是太伤我心了. 比(惨)赛(不)结(忍)果(睹) 完挂感言 uoj round 5已经挂了一次了,没想到还要再挂第二次. 这次比赛的期望得分是\(100+100+100+70+10\)的.没想到第2.3题都挂了.QAQ 分析原因是自己过于自信,以为过了样例就AC.这只是美好的幻想罢了.以后比赛一定一定一定要对拍! 算法 A 新年的巧克力棒 画画样例就知道了.不过我居然用了20min,orz神犇5min. B 新年的毒瘤 一开始想错了,以为整个图是一棵树加一个环. 事实上,如果一个点不是…
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noip前的杂题训练,我也很无奈啊 做完了的扔最后,欢迎好题推荐 这么多题肯定是完不成了,能多做一道是一道吧 DP yyb真是强得不要不要的辣:http://www.cnblogs.com/cjyyb/category/1036536.html [ ] [SDOI2010]地精部落 https://www…
bzoj2616 放一个车的时候相当于剪掉棋盘的一行,于是就可以转移了,中间状态转移dp套dp,推一下即可 bzoj2878 环套树期望dp 手推一下递推式即可 bzoj3295 树状数组套权值线段树 NOI2002贪吃的九头龙 多叉转二叉 水过 bzoj1495 方程就是f[i,j,k]表示以i为根,叶节点有j个A,所有的父节点状态为k的最佳值,然后方程就出来了f[i,j,k] = min(Σf[son,j1,k1]),其中Σj1=j,k1为k加上i的状态.然后把后两维用一个数压一下保存就好了…
http://uoj.ac/problem/351 其实原来看到这题是真的不想做的 毕竟真的特别怕期望题 后来莫名发现自己打了正解 也是很震惊的2333 Description   对于一棵树,每次随机染黑一个叶子(可能会重复染黑),期望多少次后直径变小 Solution 第一种R为偶数的情况时:找一个点root,所有的直径都经过这个root点,以此点为根 dpx=R/2的点可能是直径断点,先统计出来个数(x1),把所有dpx=R/2的点按他是root的哪一棵子树分成几个集合 直径改变了,当且仅…
题目链接 这的确是一道好题,我们不妨依循思路一步步推导,看问题是如何被解决的. 做一些约定,设$m$为树的叶子节点个数,设$len$为该树的直径(经过的点数). 毫无疑问,直径可能有多条,我们需要把所有直径都破坏掉才能终止,但这些直径并不是毫无联系的. 引理:若$len$为奇数,则所有直径有同一个中点:若$len$为偶数,则所有直径有同一条最中间的边. 至于证明,用反证法即可,大致就是如果存在两条直径的中点不是同一个,那就会产生更长的一条直径. 题目要求的终止状态就是不存在两个可以构成直径的点,…