bzoj4945】的更多相关文章

[BZOJ4945][Noi2017]游戏 题目描述 题解:2-SAT学艺不精啊! 这题一打眼看上去是个3-SAT?哎?3-SAT不是NPC吗?哎?这题x怎么只有8个?暴力走起! 因为x要么不是A要么不是B,所以直接2^8枚举所有x就行了.然后就变成了一个2-SAT问题.假设有两场游戏1,2,分别可以使用的地图为A1,A2,B1,B2,如果有一个限制是1 A 2 A,那么选A1就必须选A2,然后我这个沙茶就开开心心的拿了55分. 为什么不对?我建出来的图显然不对偶啊!考虑逆否命题,选A1就必须选…
问题描述 LG3825 BZOJ4945 LOJ2305 题解 发现对于每个地图,如果没有\(A,B,C\)地图不可以使用\(a,b,c\),就是一个\(\mathrm{3-SAT}\)问题. 有了这个限制之后,\(A,B,C\)地图就变为了\(\mathrm{2-SAT}\)问题,但是\(x\)地图还是\(\mathrm{3-SAT}\) 因为\(\mathrm{k-SAT}(3 \le k)\)是一个\(\mathrm{NP}\)完全问题,观察到\(d \le 8\),于是直接爆搜即可. 爆…
[NOI2017]游戏(搜索,2-sat) 题面 BZOJ的SPJ是假的 兹磁洛谷 题解 如果没有\(x\)地图的影响 这就是一个裸的\(2-sat\)问题 但是现在有不超过\(8\)个\(x\)地图的影响 我们不难想到枚举\(x\)地图的状态再来\(2-sat\)判断剩余是否可行. 这样的复杂度是\(O(3^dn)\),稍微算一下发现这个复杂度有点假 考虑如何优化,我们枚举\(x\)地图不连什么 表面上看起来还是\(O(3^dn)\) 但是,当他等价于\(a,b\)两种地图时,\(2^d\)种…
对于所有的x,我们枚举他的地图类型,事实上我们只需要枚举前两种地形就可以覆盖所有的情况. 之后就变成了裸的2-sat问题. 对于一个限制,我们分类讨论: 1.h[u]不可选,跳过 2.h[v]不可选,则h[v]也不可选,将u与u‘连边,表示u不可选. 3.否则从u向v连边表示选u就必须选v,从u’向v‘连边表示选v'就必须选u’(逆否命题). tarjan缩点判断可行性. 输出方案按照缩点编号选择编号小的点输出即可(逆序拓扑序). #include<iostream> #include<…
题解: 一眼看过去还以为是3-sat 其实d只有8 那么我们可以枚举每一个x选择哪一个 然后再用2-sat处理 代码: #include<bits/stdc++.h> using namespace std; ,M=N<<,ABC='A'+'B'+'C'; struct Edge{int to,next;}e[M]; ],zz[M],ne[M],mi[N],mj[N],fi[N<<],len,st[N],cot; ],Un[N<<]; void jb(int…
https://www.lydsy.com/JudgeOnline/problem.php?id=4945 https://www.luogu.org/problemnew/show/P3825 http://uoj.ac/problem/317 题目不粘了. 对于冲突关系很明显是2-SAT,但是注意是2-SAT(lz曾经天真的gg过),也就是说,我们没法处理x. 不用慌,我们完全可以O(3^d)枚举,然而常数很大过不去uoj的hack. 但是思考如果为A则只可以选b/c,B则只可以选a/c,所…
题目大意:有$n$个位置,有三种数,每个位置只可以填一种数,$d(d\leqslant8)$个位置有三种选择,其他位置只有两种选择.有一些限制,表示第$i$个位置选了某种数,那么第$j$个位置就只能选规定的数 输出一组合法的选数方案,无解输出$-1$ 题解:考虑$d=0$的情况,就是$2-sat$的裸题. 那$d>0$的呢?发现$d\leqslant8$,因为跑一次$2-sat$的复杂度是$O(n+m)(n\leqslant5\times10^4,m\leqslant10^5)$,好像有很大的空…
题意: 思路: 输出方案时有一个优秀的性质可以利用: tarjan缩点之后点所属的分量编号是原图的反的拓扑序 所以只需要在两种方案内找到所属分量编号较小的那个就行了,用来满足(i,i')那个限制 #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<iostream> #include<algorithm> #include<ma…
bzoj 洛谷 题意: 现在有\(a,b,c\)三种车,每个赛道可能会存在限制:\(a\)表示不能选择\(a\)类型的赛车,\(b,c\)同理:\(x\)表示该赛道不受限制,但\(x\)类型的个数$\(d\leq 8\). 同时赛道之间还存在\(m\)条关系,每个关系用\((i\ h_i\ j\ h_j)\)表示,意味着若在第\(i\)个赛道选择\(h_i\)类的车,则必须在\(j\)赛道选择\(h_j\)类的车. 现在问是否存在一种合法安排赛车的方案,有则任意输出一种方案,没有则输出\(-1\…
题目大意 2-SAT,其中有\(d\)(\(d\leq 8\))个点是\(3-SAT\). 题解 枚举\(d\)个点不取三个中(假设三个为\(a,b,c\))的哪一个,然后整体变成做\(2-SAT\). 注意枚举完不选\(a\)(即选\(b或c\))和不选\(b\)(即选\(a或c\))后,不选\(c\)(即选\(a或b\))已经包含在前两种中,因此搜索部分的时间复杂度是\(\Theta(2^d)\)的. 代码 #include<algorithm> #include<cmath>…