POJ3683 Falsita】的更多相关文章

http://poj.org/problem?id=3683 思路:2-SAT,输出任意一组方案,O(m+n) #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<algorithm> ],next[],tot,go[]; ],Next[],Tot,Go[]; ],a[],n,ru[],low[],dfn[]; ],belong[],inst…
poj3683 题意 n对新人举行婚礼,婚礼在不同时间段但可能重叠,婚礼有开始(Si).结束(Ti).仪式举行时间(Di),问能否给出一种举行方案,使得神父能参加所有的婚礼并举行仪式. 分析 xi为真 <=> 在开始时举行仪式, xj为假 <=> 在结束时举行仪式. 设x' 为 非x.(若 x 为真,则 x' 为假) xi -> xj 表示 xi 为真则 xj 为真.(xi xj 连边) 对于结婚仪式 i 和 j ,如果 Si ~ Si+Di 和 Sj ~ Sj+Dj 冲突,…
[BZOJ3683]Falsita 题目大意: 一个\(n(n\le3\times10^5)\)个结点的树,每个结点有一个权值\(w_i\),\(m(m\le3\times10^5)\)次操作,操作包含以下\(3\)种: 将结点\(u\)的权值加上\(d\): 将以\(u\)为根的子树中的每一个结点加上\(d\): 询问任取一个以\(u\)为LCA的点对\((x,y)\),\(w_x+w_y\)的期望值. 思路: 首先可以用一遍树形DP求出不考虑修改的答案\(ans_i\). 对于操作\(1\)…
一篇讲的详细的博客 https://blog.csdn.net/Hawo11/article/details/74908233 缩点后为什么要建立反图? 如果是按原图处理,选择一个点之后要把所有其后续点也选上,但是如果染色过程中失败,则这次染色的影响要被清空,并选上对立点 这样的复杂度会和暴力dfs相同(原因是拓扑序在前面的传递选择标记对图的影响太大,而不选择标记又不能在正向边中传递) 若建立反图,选了一个点就没有必要将其后续点选上了 其实因为sat图是对称的,所以建立的反图等价于原图中在对立点…
问题描述: 到海边了呢...... 如果没有那次选择,现在是不是会好些呢...... 都过去了. 仰望着星空,迎面吹过一阵阵海风,倚靠着护栏,Fine 在海边静静地伫立着,在一个个无际的长夜后,Fine 终于放下了往事的痛楚,得到了治愈. 但是作为 Fine 的另一重人格的 Falsita 就没那么幸运了.她仍然被各种繁忙的事务困扰着. 虽然同在一副躯体中,Fine 与 Falsita 的精神世界却相差甚远,Fine 可以轻易地构造出幻梦时,Falsita 却只能停留在现实的痛楚中. 但是为了生…
Priest John's Busiest Day Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8170   Accepted: 2784   Special Judge Description John is the only priest in his town. September 1st is the John's busiest day in a year because there is an old le…
2-SAT 输出可行解 找可行解的方案就是: 根据第一次建的图建一个反图..然后求逆拓扑排序,建反图的原因是保持冲突的两个事件肯定会被染成不同的颜色 求逆拓扑排序的原因也是为了对图染的色不会发生冲突,输出可行解就是遍历一次逆拓扑排序时染成的颜色,输出同一组颜色的解就是其中的一组可行解.   代码: #include <stdio.h> #include <iostream> #include <string.h> #include <stack> #incl…
2-SAT. 读入用了黄学长的快速读入,在此膜拜感谢. 把每对时间当作俩个点.如果有交叉代表相互矛盾. 然后tarjan缩点,这样就能得出当前的2-SAT问题是否有解. 如果有解,跑拓扑排序就能找出一个特定的解. #include<cstdio> #include<algorithm> #include<cstring> using namespace std; + ; + ; inline int read() //by hzwer 实在太好了..我用下..跪谢. {…
题目 John is the only priest in his town. September 1st is the John's busiest day in a year because there is an old legend in the town that the couple who get married on that day will be forever blessed by the God of Love. This year N couples plan to g…
题意 n对夫妻要结婚,第i对夫妻结婚的婚礼持续时间为[Si, Ti],他们会举行一个仪式,仪式时间为Di,这个仪式只能举行在开头或者结尾举行,要么[Si, Si+Di],要么[Ti-Di, Ti],然而举行仪式的牧师只有一个,问牧师能否举行完所有仪式 按输入顺序输出方案 手动翻译 Sol \(2-SAT\)输出一组可行解 这个很烦 \(Tarjan\)缩点成\(DAG\)后再拓扑排序+染色 只传递不选的标记 # include <iostream> # include <stdio.h&…
Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11049   Accepted: 3767   Special Judge Description John is the only priest in his town. September 1st is the John's busiest day in a year because there is an old legend in the town that the…
题解 这道题维护方法比较简单,也有点奇妙 我们可以很容易求出经过所有点的路径条数,和初始时分子的大小 然后单点修改的时候,相当于给当前点\(v\)加上\(delta * (siz[v] - 1)\) \(v\)到根的路径上每个祖先都要加上设\(t\)为\(k\)在路径上的儿子,\(delta * (siz[k] - siz[t])\) 如果想把这种操作快速修改的话,我们把这个操作放到重链上,这样只有重链顶端的父亲需要特殊处理,剩下的值都已经计算好了,用一个标记在线段树上维护就好 然后考虑区间加,…
基础的2-SAT求任意方案的题目. Priest John's Busiest Day Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7309   Accepted: 2492   Special Judge Description John is the only priest in his town. September 1st is the John's busiest day in a year because…
tarjan缩点,拓扑排序染色输出(貌似挑战上面没有拓扑啊,而且这样写还过了= =) 主要是找s,t,d,三者之间的关系,找出合取范式这题就很容易了 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #inc…
Description John is the only priest in his town. September 1st is the John's busiest day in a year because there is an old legend in the town that the couple who get married on that day will be forever blessed by the God of Love. This year N couples…
题目 John is the only priest in his town. September 1st is the John's busiest day in a year because there is an old legend in the town that the couple who get married on that day will be forever blessed by the God of Love. This year N couples plan to g…
本文原创于  2014-02-12 09:26. 今复习之用,有新体会,故重新编辑. 2014-02-12 09:26: 2-sat之第二斩!昨天看了半天论文(赵爽的和俉昱的),终于看明白了!好激动有木有!终于理解了赵爽的每一句话!并且用了200+行代码实现,A了!具体过程我是敲了帮天的代码啊!!!不容易啊!步骤如下: 把相关问题编号为01 23 45....,(每个编号为一个命题)奇数为取,偶数不取,那么相邻俩个互逆,于是根据具体情况(check)一下,建立图,tarjan判断有无解,然后顺便…
Priest John's Busiest Day Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10151   Accepted: 3475   Special Judge Description John is the only priest in his town. September 1st is the John's busiest day in a year because there is an old l…
一.代码: 1.求逆元(原理貌似就是拓展欧几里得,要求MOD是素数): int inv(int a) { if(a == 1) return 1; return ((MOD - MOD / a) * inv(MOD % a)) % MOD; } 2.底层优化(正确性未验证): int cmp(int a) {if (!a) return 0; return a < 0 ? -1 : 1;} int cmp(int a) {return (a >> 31) + (-a >> 3…
A.Phorni 题目:http://www.contesthunter.org/contest/CH%20Round%20%2351%20-%20Shinrein祭%20%231/Phorni 没做... B.Arietta 题目:http://www.contesthunter.org/contest/CH%20Round%20%2351%20-%20Shinrein祭%20%231/Arietta 想到了网络流,所以每次暴力算出哪些点能被弹奏,就从这次弹奏向哪些点连容量为1的边 最后由s向…
(Step2-500题)POJ训练计划+SGU 经过Step1-500题训练,接下来可以开始Step2-500题,包括POJ训练计划的298题和SGU前两章200题.需要1-1年半时间继续提高解决问题和编码实现能力,加油ACMer!任重道远  Step1-500题 UVaOJ+算法竞赛入门经典+挑战编程+USACO 请见:http://acm.sdut.edu.cn/bbs/read.php?tid=5321 一.POJ训练计划 Moon修订  298道题   集训第一天 POJ纯水题 = =:…
参考blog 参考论文 参考论文 题目 & 题解 裸2-SAT poj3683 poj3207 poj3678 poj3648 2-SAT + 二分法 poj2723 poj2749 hdu3622 hdu3715 一点总结 寻找对立关系,一般是每回合(每次)只能选择2个中的一个,且另一个不能选择了. 连边.x -> y 表示 若 x 为真,则 y 为真,那么在寻找 边的关系时,保证若 x 为真,则只有一个确定的 y 为真(也就是只能建一条边) 例如,x or y , 表示 x' ->…
POJ 3683 Priest John's Busiest Day / OpenJ_Bailian 3788 Priest John's Busiest Day(2-sat问题) Description John is the only priest in his town. September 1st is the John's busiest day in a year because there is an old legend in the town that the couple w…
POJ 3207 Ikki's Story IV - Panda's Trick liympanda, one of Ikki's friend, likes playing games with Ikki. Today after minesweeping with Ikki and winning so many times, he is tired of such easy games and wants to play another game with Ikki. liympanda…
关于2-sat,其实就是一些对于每个问题只有两种解,一般会给出问题间的关系,比如and,or,not等关系,判定是否存在解的问题.. 具体看http://blog.csdn.net/jarjingx/article/details/8521690,该博客写得很不错的. 下面是LRJ白书上给的2-sat,个人觉得写的很不错..效率也很高. #define maxn 500 struct TwoSat{ int n; vector<]; ]; ], c; bool dfs(int x){ // 搜索…
关于two sat算法 两篇很好的论文由对称性解2-SAT问题(伍昱), 赵爽 2-sat解法浅析(pdf). 一些题目的题解 poj 3207 poj 3678 poj 3683 poj 3648 poj 2723 poj 2749 关于具体算法 首先此算法只对于存在类似于一个点选了另一个点就不能选这样的条件,并且每个点只有两种状态(一般是选或不选),不然是个NP问题 大体做法就是先转换模型,把每个点拆成两个,一个代表取,一个代表不取,(注意:图中边代(u->v)代表取u就一定要取v) 至于判…
先象征性地描述一下问题:一组(或者一个)东西有且仅有两种选择,要么选这个,要么选那个,还有一堆的约束条件 图论问题,当然是建边跑图喽 给出模型: 模型一:两者(A,B)不能同时取 那么选择了A就只能选择B’,选择了B就只能选择A’ 连边A→B’,B→A’ 模型二:两者(A,B)不能同时不取 那么选择了A’就只能选择B,选择了B’就只能选择A 连边A’→B,B’→A 模型三:两者(A,B)要么都取,要么都不取 那么选择了A,就只能选择B,选择了B就只能选择A,选择了A’就只能选择B’,选择了B’就…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
POJ训练计划 Step1-500题 UVaOJ+算法竞赛入门经典+挑战编程+USACO 请见:http://acm.sdut.edu.cn/bbs/read.php?tid=5321 一.POJ训练计划 Moon修订 298道题 集训第一天 POJ纯水题 = =: 17道题 2017 1218 2000 1046 1218 1003 1004 1005 1008 1013(枚举) 1207 1552 2105 2388 1316 2499 3006(筛法求素数) 正式集训计划: 未做  已做 …
算法 构造一个有向图G,每个变量xi拆成两个点2i和2i+1 分别表示xi为假,xi为真 那么对于“xi为真或xj为假”这样的条件 我们就需要连接两条边 2*i —>2*j(表示如果i为假,那么j必须是假) 2*j+1—>2*i+1(表示如果j为真,那么i必须是真) 这就有点像推导的过程 实际上每一个限制条件都会对应两条“对称”的边 接下来逐考虑每个没有赋值的变量,设为x 我们先假定x为假(为什么一定是假,约定俗成了) 之后沿着从ta出发的有向边进行标记 如果在标记过程中,发现有一个点的两种状…