loj 1251(2-sat + 输出一组可行解)】的更多相关文章

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27115 思路:有一个trick要注意:当情况为 2 x y 时,可以推出当y留下时,x也必须留下.然后就是后面的k个限制关系,我们可以3^(k)次方枚举,一旦找到符合条件的就return .然后就是反向建图,拓扑排序找可行解. #include<iostream> #include<cstdio> #include<cstring> #i…
题目链接:http://poj.org/problem?id=3683 思路:对于每个结婚仪式,只有在开始或结束时进行这两种选择,我们可以定义xi为真当且仅当在开始时进行.于是我们可以通过时间先后确定矛盾关系,然后通过矛盾关系建图.至于输出一组可行解,就可以2次dfs(一次沿正向边,一次沿反向边)求出拓扑序,然后根据拓扑序输出可行解. http://paste.ubuntu.com/5983686/…
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26961 思路:u表示留下,~u表示离开,同理v,对于+u,-v,我们可以这样来定义:若u离开,则v必须留下,如v离开,则u必须留下,于是我们可以连边u+n->v,v+n->u,后面的同理. #include<iostream> #include<cstdio> #include<cstring> #include<alg…
/* 2sat问题 输出任意一组可行解 */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<algorithm> #include<queue> #include<vector> using namespace std; #define N 2100 struct node { int u,v,next; }ff[N],bian[N*N*8]; int…
就是棋盘问题输出一组解 https://blog.csdn.net/llx523113241/article/details/47759745 http://www.matrix67.com/blog/archives/116 求最小覆盖的步骤大致如下:1)在右边找到一个未被匹配过的点,标记.2)走一条没被匹配过的边,到左边的点,标记.3)走一条匹配过的边到右边,标记.4)重复2,3步骤直到不能再走.5)回到步骤一,直到找不到未被匹配且未被标记的右边的点.6)标记结束后,右边没有标记的点,和左边…
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…
/*第二题*/ #include<stdio.h> //输入186732468 //输出173 //输入12345677 //输出13577 main(){ ;//输入的数字,数字的长度 printf("请输入:\n"); //input=186732468; scanf("%d",&input); ;tmp=input;//缓存一下原始数据 ){ printf(); }else{ while(input){ input=input/; leng…
tarjan缩点,拓扑排序染色输出(貌似挑战上面没有拓扑啊,而且这样写还过了= =) 主要是找s,t,d,三者之间的关系,找出合取范式这题就很容易了 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #inc…
def main(): names=['关羽','张飞','赵云','马超','貂蝉'] subjects=['语文','数学','Python'] table=[[0 for _ in range(3)] for _ in range(5)] #table=[[0]*len(subjects)]*len(names)这种写法为错误的 为同一引用 同一地址 #table[[0]*len(subjects) for_ in range (5)]这种写法为正确的 for row,name in en…
两种不同方式获取最大值与最小值 代码1: #include <stdio.h> int main() { ], sum = , max, min; int i; printf("请输入5名童鞋的成绩:\n"); ; i < ; i = i + ) scanf_s("%f", &score[i]); max = min = score[]; ; i < ; i = i + ) { if (max <= score[i]) max…
2-sat 推荐学习资料: 伍昱的2003年IOI国家集训队论文<由对称性解2-sat问题> 论文链接:https://wenku.baidu.com/view/31fd7200bed5b9f3f90f1ce2.html 注: 本博文只分析如何输出一组可行解,请读者确保已学习了判断是否有解 本人水平不高,若有分析不得当之处,欢迎指出 法一.tarjan+构建反图+拓扑排序 在原图tarjan缩点后得到的有向无环图的反图上拓扑排序 边拓扑边干两件事儿: 1.选择当前栈顶所代表的问题 2.删除与栈…
完了,这次做扯了,做的时候有点发烧,居然只做出来一道题,差点被绿. My submissions     # When Who Problem Lang Verdict Time Memory 4434550 Sep 9, 2013 11:57:20 AM OIer E - Xenia and Tree GNU C++ Accepted 842 ms 4260 KB 4434547 Sep 9, 2013 11:56:11 AM OIer E - Xenia and Tree GNU C++ W…
CodeForces Round 199 Div2   完了,这次做扯了,做的时候有点发烧,居然只做出来一道题,差点被绿. My submissions     # When Who Problem Lang Verdict Time Memory 4434550 Sep 9, 2013 11:57:20 AM OIer E - Xenia and Tree GNU C++ Accepted 842 ms 4260 KB 4434547 Sep 9, 2013 11:56:11 AM OIer…
题意 n对夫妻要结婚,第i对夫妻结婚的婚礼持续时间为[Si, Ti],他们会举行一个仪式,仪式时间为Di,这个仪式只能举行在开头或者结尾举行,要么[Si, Si+Di],要么[Ti-Di, Ti],然而举行仪式的牧师只有一个,问牧师能否举行完所有仪式 按输入顺序输出方案 手动翻译 Sol \(2-SAT\)输出一组可行解 这个很烦 \(Tarjan\)缩点成\(DAG\)后再拓扑排序+染色 只传递不选的标记 # include <iostream> # include <stdio.h&…
Luogu P1245 电话号码 谨以此题解致敬我的初中英语老师孙菡老师,她带的班默写不过的人数总是像电话号码那样屈指可数 玄学问题? 本题的SPJ似乎已经基本没有问题了,只要 文末没有多余的空格和回车 就能正常评测. 审题 本题给出了26个字母与数字的对应关系,要求将一串数字翻译为几个单词. 那么我们是不需要关注各个单词中的字母具体是什么的,只需要存起来输出的时候用一下就行了,翻译过程中完全可以转换为纯数字操作. 具体地说:the->732,she->732,对于密码中的732,它们是完全等…
http://poj.org/problem?id=3683 2-sat 问题判定,输出一组可行解 http://www.cnblogs.com/TheRoadToTheGold/p/8436948.html 注: 本代码在判断两个时间段部分有误,数据弱A了 #include<cstdio> #include<vector> using namespace std; #define N 1001 struct TIME { int h1,m1; int h2,m2; int tim…
http://codeforces.com/problemset/problem/97/B 题目大意:给n个点,添加一些点,使得任意两个点: 1.在同一条线上 2.以它们为顶点构成的矩形上有其他点. 输出一组可行解. —————————————————— 我发现我根本不会做英语题……看了半天题面后就去找题解了. http://blog.csdn.net/wust_zjx/article/details/44900093 这是其他人的题解,但我总觉得这个人说的不明不白的(自行理解半个小时才明白的我…
Reactor Cooling The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nuclear reactor to produce plutonium for the nuclear bomb they are planning to create. Being the wicked computer genius of this group, you are…
题目:POJ 3041 Asteroids http://poj.org/problem?id=3041 分析: 把位置下标看出一条边,这显然是一个二分图最小顶点覆盖的问题,Hungary就好. 挑战: 输出一组可行解.构造,已知二分图的两个点集U和V,s-U-V-t,在最大匹配的残留网络里,选从s出发能到达的V中的点 沿途可以到达的U集中的点的路径就都被覆盖了,然后在选择U集合中无法到达的点.对于二分图中任意一条边,其中必有一点属于U集合, 所以前面选出的点集S是一个覆盖.并且S中V和U对应的…
题目链接:https://vjudge.net/problem/HDU-3338 Kakuro Extension Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2419    Accepted Submission(s): 840Special Judge Problem Description If you solved probl…
前言 \(2-SAT\)的解法不止一种(例如暴搜?),但最高效的应该还是\(Tarjan\). 说来其实我早就写过用\(Tarjan\)求解\(2-SAT\)的题目了(就是这道题:[2019.8.14 慈溪模拟赛 T2]黑心老板(gamble)),这篇博客本来已经石沉大海,打算坑掉了的,但由于在\(CSP-S\)前复习板子时忘记了这道题写法,结果板子题都挂了好几次,为了加深印象,为了自我惩罚,来补博客了. 基本模型 什么是\(2-SAT\)? 考虑有\(n\)个物品,每个物品有\(0\)和\(1…
一个暑假两次集训,感觉学了好多好多的东西,也挖了好多好多的坑,于是就决定写一篇关于算法的总结,用于熟悉新算法,也留下一点对新算法的理解. AC自动机 简单的说就是在\(trie\)树上实现\(KMP\),用于多模式串的匹配. 而\(AC\)自动机的理解就在于\(fail\)指针,\(fail\)指针是实现多模式串匹配的关键.每次匹配失败后,\(fail\)指针会指向一个当前匹配串的最长真后缀,数次跳跃后,就能实现对文本串的一段在\(trie\)树进行所有可能的匹配. 而对于\(fail\)指针的…
题意:       一对夫妻结婚,请来了n对夫妻,所有人坐在同一张桌子上吃饭,这张桌子是长方形的可以坐两排人,有如下限制 (1) 新娘和新郎不做同一侧. (2) 每对来的夫妻也不能坐在同一侧.  (3) 有一些人有暧昧关系(男女,男男,或者女女),有暧昧关系的两 个人不可以同时坐在新娘对面. 输出一组可行解,输出的是坐在新娘对面的人. 思路:      根据限制关系,而且还是二选一,显然这个是2sat,对于每个人,都拆成两个点,一个是a表示坐在新娘这一侧,另一个是~a表示坐在新郎这一侧,则对于任…
Peaceful Commission Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2030    Accepted Submission(s): 589 Problem Description The Public Peace Commission should be legislated in Parliament of Th…
Genealogical tree Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3674   Accepted: 2445   Special Judge Description The system of Martians' blood relations is confusing enough. Actually, Martians bud when they want and where they want. T…
转载地址:http://blog.csdn.net/qq172108805/article/details/7603351 /* 2-sat问题,题意:有对情侣结婚,请来n-1对夫妇,算上他们自己共n对,编号为0~~n-1,他们自己编号为0 所有人坐在桌子两旁,新娘不想看到对面的人有夫妻关系或偷奸关系,若有解,输出一组解,无解输出bad luck 思路: 1.根据偷奸关系建图(1h和2h有偷奸关系,建边1h->2w 2h->1w) 2.求强连通分量 3.判断有无解(任一对夫妇不在同一强连通分量…
链接:https://www.nowcoder.net/acm/contest/71/E来源:牛客网 题目描述 有一个长为 n 的数列 A,其中有 m 个限制条件,条件有两种: 1.对于区间 [l,r],其区间元素按位或和等于 x 2.对于区间 [l,r],其区间元素按位与和等于 x 求出一个数列 A,使得满足给定的 m 个条件,保证有解. 输入描述: 输入第一行两个正整数 n,m,意义如上接下来 m 行,每行四个整数 op,l,r,x,表示一组限制op = 1 表示是限制 1,op = 2 表…
console.info 用于输出提示性信息 console.error用于输出错误信息 console.warn用于输出警示信息 console.debug用于输出调试信息 console.info("提醒"); console.error("报错了"); console.warn("警告"); console.debug("调试信息"); console对象的上面5种方法,都可以使用printf风格的占位符.不过,占位符的…
ACM竞赛之输入输出以下内容来源于互联网.在ACM程序设计竞赛中,一道题目的所有测试数据是放在一个文本文件中,选手将一道题目的程序提交给评判系统运行,程序从该文件中读取测试数据,再把运行结果输出到另一个文本文件中.系统把输出文件与标准答案比对,来评判程序编写得正确与否.ACM现场赛采用的输入输出形式有(1)文件输入.标准输出:(2)文件输入.文件输出:(3)标准的输入输出.而Web形式的ACM程序设计在线评判系统一般采用标准的输入输出,但输入结束有文件末尾标识(EOF),这可以用于确定输入结束.…
就是求混合图是否存在欧拉回路 如果存在则输出一组路径 (我就说嘛 咱的代码怎么可能错.....最后的输出格式竟然w了一天 我都没发现) 解析: 对于无向边定向建边放到网络流图中add(u, v, 1); 对于有向边放到另一个图中add2(u, v); 然后就是混合边求是否有欧拉 一边dinic后 遍历每一条边 如果不是反向边 且 起点不是s 终点不是t 如果Node[i].c == 0 则 add2(Node[i].v, Node[i].u); else add2(Node[i].u, Node…