bzoj 1064】的更多相关文章

此题,回想Sunshinezff学长给我们出的模拟题,原题啊有木有!!此处吐槽Sunshinezff爷出题不人道!! 不过也感谢Sunshinezff学长的帮助,我才能做出来.. 1064: [Noi2008]假面舞会 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1262 Solved: 624 [Submit][Status][Discuss] Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都…
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1064 分析: 如果a看到b,则a->b 那么: 1.如果图中有环,则说明这个环的长度肯定是答案的倍数.所以最大种类数=所有环的长度的gcd,最小种类数=所有环的长度的公约数中>=3的最小数 2.如果图中没有环且都是单独的长链,那么最大种类数=每个联通图中最长链的和,最小种类数=3(如果没有则-1) 3.要考虑一种特殊情况:a->b->c->d a->e-&g…
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1064 给一个有向图染色,每个点的后继必须相同,问至少&至多有多少种染色方案 sol:  图由多个联通块组成,对于每个联通块,考虑以下3种情况: 如果有环,分为3类讨论 对于第一种简单环,答案一定是环长的约数 对于第二种有反向边的环,答案一定是两条链长差的约数 trick:将有向边化为无向边,正向边权为1,反向为-1 这样1,2可以一起做 对于第三种大环套小环,将小环缩点即可(gcd(a,b)…
http://www.lydsy.com/JudgeOnline/problem.php?id=1064 思路:第一眼看的时候以为是差分约束,但是是做不了的,不过能保证的就是这题绝对是图论题...(废话) 分联通块考虑,如果每个联通块都是没有有向环的话,那么各个联通块中,最长链就是最大答案,3就是最小答案. 只要有一个联通块有环,那么答案一定是这个环长度的因数,最大答案,就是这些环长度的gcd 不过,要是有这个非正常的环怎么办? 我们可以看到,4->3和2->3都指向了3,这怎么办?那么我们只…
http://www.lydsy.com/JudgeOnline/problem.php?id=1064 题意: 思路: 考虑以下几种情况: ①无环并且是树: 无环的话就是树结构了,树结构的话想一下就知道它的k最大值就是它的最长链,最小值就是3(如果链长>=3的话),如果有多棵树,只需要把它们的最长链加起来即可. ②存在环并且顺序相同 这种情况下的话k肯定是环长的约数,有多个环时就是它们之间的最大公约数.这样找最大和最小的约数即可. ③存在环并且顺序不同 上面这个图的话就不是一个简单的单顺序的环…
题意:戳这里 思路:很明显是一个图论模型.. 就两种图形: 1.图中存在环,那么就是所有环的gcd为最大答案.gcd的大于3的最小约数为最小答案 2.不存在环,那么是每个弱连通块的最长链之和为最大答案,最小答案为3.. 但是这一题最关键的是实现,实现技巧太赞了.. 首先,我们可以把每条有向边(u, v)拆成(u, v, 1), (v,  u, -1) 那么对于第二情况,对于每一个联通块直接随便找一个bfs,然后最长链就是maxdist-mindist+1 对于第一种情况,可能出现环套环的情况,这…
题目大意:n个人,k种假面,每人戴一种,戴第i种的可以看见第i+1种,戴第k种的可以看见第1种,给出m条关系表示一个人可以看到另一个人,问k可能的最大值和最小值.(n<=100,000,m<=1,000,000) 思路:染色,若点i颜色为ci,就把点i能到的点染成ci+1,能到点i的点染成ci-1,如果染之前已经染过了,设要染的点为j,则cj和ci+1(-1)模k同余,若cj不等于ci+1(-1),则k必然为|ci+1(-1)-cj|的因子,取gcd即可.若没有出现这种情况,最大答案为各连通块…
有两种情况需要考虑 1.链:可以发现对最终的k没有影响 2.环:如果是真环(即1->2->3->4->1),可以看出所有可行解一定是该环的因数 假环呢??(1->2->3->4,1->5->4),可行解便是两条路的差值的因数 So??对于每条边,正建1,反建-1,dfs,每出一个环,就计算gcd 没有环呢??最小是3,最大是所有链加和喽 #include<cstdio> #include<iostream> #include&l…
莫名其妙的变成了我们的noip互测题... 其实这题思想还是比较简单的,只是分类不好分而已 其实就是一个dfs的事 首先,非常明显,原题目中的所有关系可以抽象成一个图(这是...显而易见的吧...) 接下来,我们仅需在图上讨论即可 当然,这个图有几个部分组成其实并没有那么重要,毕竟,这些部分基本是互不干扰的. 所以接下来我们只需要对每一个块分别处理即可 我们来分类: 首先,如果所有块都是树,我们只需求出每个树上的最长链即可 接下来,如果存在环(包括真实的环和类环,即1-2-3-1和1-2-4+1…
我们根据能否看见建图,有向图边权设成1,然后我们转成无向图, 对于每条有向边连一条反边,边权是-1,然后从每个块中任意一个点开始 dfs,每个点有一个值,经过一条边到另一个点之后,用原来的点值和边权 更新新的点的点值,那么如果我们访问到了一个原来已经走过的点,那么我们 找到了一个环(可能是非环,就是一个点出两条有向边,然后又交在一点了),由于 数据是合法的,所以这样的非环的现在应该更新成的点值和原有的点值相等,如果不相等 的话,取差值的绝对值,就是这个环的长度. 那么我们对于所有块,每个块的环的…