首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
hdu3715
】的更多相关文章
hdu3715
hdu3715 题意 给出一个递归的伪代码,当 x[a[dep]] + x[b[dep]] != c[dep],就向下递归,给出a,b,c数组的值 问 dep 最大多少.其中 0 <= c[i] <= 2 ,0 <= x[i] <= 1. 分析 x 取值存在对立关系( 1或0 ),那么可以通过不等式进行建边,有三种情况, 当 c[i] = 2 时,有 A and B = 0,即不能全部为真 当 c[i] = 1 时,有 A xor B = 0,加起来不能等于1 当 c[i] = 0…
hdu3715 Go Deeper[二分+2-SAT]/poj2723 Get Luffy Out[二分+2-SAT]
这题转化一下题意就是给一堆形如$a_i + a_j \ne c\quad (a_i\in [0,1],c\in [0,2])$的限制,问从开头开始最多到哪条限制全是有解的. 那么,首先有可二分性,所以直接二分枚举最大处,然后把这些限制加边做一次2-sat就好了.连边的话注意一下细节就行,$c=0$时候就是选$0$必须另一个选$1$,$c=1$是选同类,$c=2$就是选$1$另一个必须选$0$,然后注意一下$i=j$也就是对同一变量的特殊讨论,就是直接赋值型的连边.然后就没了. #include<…
HDU3715(二分+2-SAT)
Go Deeper Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 3184 Accepted Submission(s): 1035 Problem Description Here is a procedure's pseudocode: go(int dep, int n, int m)beginoutput the valu…
hdu3715 2-sat+二分
Go Deeper 题意:确定一个0/1数组(size:n)使得满足最多的条件数.条件在数组a,b,c给出. 吐槽:哎,一水提,还搞了很久!关键是抽象出题目模型(如上的一句话).以后做二sat:有哪些是点,哪些是条件,分清!,然后注意细节.这次居然因为里面一个小错误: 判断有无解的时候,i与i+1是否在一个SCC中的时候,i居然没有每次+2!而是++!傻X了...囧!还一直以为自己二分写错... #include<iostream> #include<cstdio> #includ…
hdu3715 二分+2sat+建图
题意: 给你一个递归公式,每多一层就多一个限制,问你最多能递归多少层. 思路: 先分析每一层的限制 x[a[i]] + x[b[i]] != c[i],这里面x[] = 0,1,c[i] = 0,1,2 如果我们把 x[]=0,1想成取或不取,就是基础的关系,那么这个题目就可以直接抽象成2sat问题,然后我们二分去枚举深度,每次根据2sat的结果判断二分走向,我的2sat用的是双深搜的强连通,用那个t打头的也行,随意,这样这个题目就ok了,对了下面总结下2sat的建图吧,这…
2-SAT算法
参考blog 参考论文 参考论文 题目 & 题解 裸2-SAT poj3683 poj3207 poj3678 poj3648 2-SAT + 二分法 poj2723 poj2749 hdu3622 hdu3715 一点总结 寻找对立关系,一般是每回合(每次)只能选择2个中的一个,且另一个不能选择了. 连边.x -> y 表示 若 x 为真,则 y 为真,那么在寻找 边的关系时,保证若 x 为真,则只有一个确定的 y 为真(也就是只能建一条边) 例如,x or y , 表示 x' ->…