【刷题】BZOJ 3495 PA2010 Riddle】的更多相关文章

Description 有n个城镇被分成了k个郡,有m条连接城镇的无向边. 要求给每个郡选择一个城镇作为首都,满足每条边至少有一个端点是首都. Input 第一行有三个整数,城镇数n(1<=n<=10^6),边数m(0<=m<=10^6),郡数k(1<=k<=n). 接下来m行,每行有两个整数ai和bi(ai≠bi),表示有一条无向边连接城镇ai和bi. 接下来k行,第j行以一个整数wj开头,后面是wj个整数,表示第j个郡包含的城镇. Output 若有解输出TAK,否…
题目链接 每个城市要么建首都要么不建,考虑2-SAT 这样一个国家内城市两两连边是很显然的,但是边数为O(n^2) 每个国家中仅有一个建首都,考虑新建前缀S[i]=1/0这2n个点表示当前国家的[1,i]中建了/没建首都 现在考虑这些限制:(A[i]=1/0表示i城市建/不建) 0.若A[i]=1,则S[i]=1:若S[i]=0,则A[i]=0(对于i自己) 1.若A[i]=1,则S[i-1]=0:若S[i-1]=1,则A[i]=0 (一个国家一个首都的限制)(前者由A[i]->A[i-1]'是…
3495: PA2010 Riddle 2-sat 前缀优化 链接 bzoj 思路 不想说啥了,看hwim的吧,我去睡觉了zZ. 代码 /************************************************************** Problem: 3495 User: gryz2016 Language: C++ Result: Accepted Time:19152 ms Memory:178896 kb ***************************…
3495: PA2010 Riddle 链接 分析: 每个点要么建首都,要么不建,并且一个点建了,会导致一些点不能建.所以可以考虑2-sat. 但是如果在每个郡里两两连边,边数是n^2的. 考虑用前缀优化. S[i]表示对于当前郡,前i个点中是否存在一个首都,A[i]表示i这个点是否建首都. 1.那么有A[i]=1,则S[i]=1,同样有它的逆否命题:S[i]=0,则A[i]=0. 2.根据前缀的性质有S[i-1]=1,则S[i]=1,逆否命题:S[i]=0,则S[i-1]=0. 3.由于每个郡…
题意 \(n(1 \le n \le 1000000)\)个城市,\(k(1 \le k \le n)\)个国家,\(m(1 \le m \le 1000000)\)条边.要求每个国家有且仅有一个首都,每条边两端的城市至少要有一个首都.判断是否有解. 分析 满足性问题.而且每个城市只有两种情况,首都or不是首都.所以考虑2-sat 题解 对于每一个点,拆点为\(i\)和\(i'\),表示有首都和无首都. 对于每一个国家(假设有\(a\)个城市),由于只有一个首都,也就是说,假设这个国家的第\(j…
[题意]有n个城镇被分成了k个郡,有m条连接城镇的无向边.要求给每个郡选择一个城镇作为首都,满足每条边至少有一个端点是首都.n,m,k<=10^6. [算法]2-SAT,前后缀优化建图 [题解]每个城镇只有作为首都和不是首都两种选项,即2-sat问题. 2-sat问题中所有边必须加反向边,下面过程忽略反向边. 对于一条边(x,y),如果x是0,那么y必须是1,即x-y'.(y-x'是反向边,考虑的时候忽略) 但是一个郡只有一个首都有点烦,有一种套路叫前后缀优化建图. 对于每个点x,假设一个点x+…
Description 探险家小T好高兴!X国要举办一次溶洞探险比赛,获奖者将得到丰厚奖品哦!小T虽然对奖品不感兴趣,但是这个大振名声的机会当然不能错过! 比赛即将开始,工作人员说明了这次比赛的规则:每个溶洞和其他某些溶洞有暗道相连.两个溶洞之间可能有多条道路,也有可能没有,但没有一条暗道直接从自己连到自己.参赛者需要统一从一个大溶洞出发,并再次回到这个大溶洞. 如果就这么点限制,那么问题就太简单了,可是举办方又提出了一个条件:不能经过同一条暗道两次.这个条件让大家犯难了.这该怎么办呢? 到了大…
Description 同OJ3522 数据范围:n<=100000 Solution dp的设计见[刷题]BZOJ 3522 [Poi2014]Hotel 然后发现dp的第二维与深度有关,于是长链剖分就可以优化成 \(O(n)\) 的了 不会写指针,所以写deque #include<bits/stdc++.h> #define ui unsigned int #define ll long long #define db double #define ld long double #…
Description 图论小王子小C经常虐菜,特别是在图论方面,经常把小D虐得很惨很惨. 这不,小C让小D去求一个无向图的最大独立集,通俗地讲就是:在无向图中选出若干个点,这些点互相没有边连接,并使取出的点尽量多. 小D虽然图论很弱,但是也知道无向图最大独立集是npc,但是小C很仁慈的给了一个很有特点的图: 图中任何一条边属于且仅属于一个简单环,图中没有重边和自环.小C说这样就会比较水了. 小D觉得这个题目很有趣,就交给你了,相信你一定可以解出来的. Input 第一行,两个数n, m,表示图…
Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目"求Sigma(f(i)),其中1<=i<=N",其中 表示i的约数个数.他现在长大了,题目也变难了. 求如下表达式的值: 其中 表示ij的约数个数. 他发现答案有点大,只需要输出模1000000007的值. Input 第一行一个整数n. Output 一行一个整数ans,表示答案模1000000007的值. Sample Input 2…