poj3207】的更多相关文章

poj3207 题意 平面上,一个圆,圆的边上按顺时针放着n个点.现在要连m条边, 比如a,b,那么a到b可以从圆的内部连接,也可以从圆的外部连接. 给你的信息中,每个点最多只会连接的一条边.问能不能连接这m条边, 使这些边都不相交. 分析 建图 见代码, 2-SAT模板 code #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<vec…
一开始题意没读懂 = = 题意:比如说对于表盘上a到b.c到d都要连边,这两个边不能交叉.这两个边要么都在圆内要么都在圆外,而且可以是曲线= = 比如这种情况:(Reference:http://blog.csdn.net/l04205613/article/details/6668318) (左边情况看似是合法的,但是一个边在圆内一个在圆外,形成矛盾了) 这回只需判断是否可行不用输出方案,这样就简单多了 STEP:构图,矛盾的地方连边->tarjan求scc->判断是否a和not a在同一分…
2-SAT. tarjan缩点.强连通分量的点要选一起选. #include<cstdio> #include<algorithm> #include<cstring> using namespace std; + ; + ; int n,m; int a[maxn],b[maxn]; int g[maxn],v[maxm],next[maxm],eid; int dfn[maxn],vis[maxn],low[maxn],vid; int color[maxn],ci…
/* 2-sat 题意:给定一个圆,圆上一些点.两点一线.现给出一些线,这些线可以在圆内连起来,也可以在圆外. 问有没有可能所有的线画完 且 不出现相交. 思路:把线画在圆内或圆外 看成一个组合.其它的则建边. */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<algorithm> #include<iostream>…
题目链接:http://poj.org/problem?id=3207 题意:在一个圆圈上有n个点,现在用线把点两两连接起来,线只能在圈外或者圈内,现给出m个限制,第 i 个点和第 j 个点必须链接在一起,问是否存在可行解. 容易想到圈内和圈外分别表示2sat的两种状态,对每一个限制 i 和 j ,考虑所有其它横跨他们的限制,然后连边就可以了. //STATUS:C++_AC_47MS_6300KB #include <functional> #include <algorithm>…
传送门:Ikki's Story IV - Panda's Trick 题意:给定一个圆,圆上一些点.两点一线.现给出一些线,这些线可以在圆内连起来,也可以在圆外.问有没有可能所有的线画完且不出现相交. 分析:对于每条线,要么在圆外,要么在圆内,且不可同时满足,只能两者取一,判断这M条线是否合法,也就是M条线不冲突,这就是典型的2-sat问题了. 将每条线在圆内当成一点i,在圆外当成一点i',对于两条线,如果在园内同时在圆内,那么必定也不能同时在园外,则有边(i, j') .(j ,i').(i…
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…
题目传送门 题意:在一个圆上顺时针安放着n个点,给出m条线段连接端点,要求线段不相交,线段可以在圆内也可以在圆外,问是否可以. 思路:假设一条线段,放在圆外是A,放在园内是A',那么两条线段如果必须一个放圆内一个放圆外的条件就是 端点区间相交(严格相交),所以就建立了2-SAT模型,然后跑2-SAT的模板就可以了. //#include<bits/stdc++.h> #include<stdio.h> #include<iostream> #include<std…
---题面--- 题意:给定一个圈,m条边(给定),边可以通过外面连,也可以通过里面连,问连完这m条边后,是否可以做到边两两不相交 题解: 将连里面和连外面分别当做一种决策(即每条边都是决策点), 如果有两条边相冲突,即如果这两条边都连里面就会导致不合法,那就 x --- > y' , y --- > x', 额...那怎么判断不合法? 注意到被边u ---> v(u < v)割成两半的分别是: u ~ v,其他, 一条边不经过这条边的充要条件是:两个端点都在这条边的同一侧. 也就…
Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 9426   Accepted: 3465 Description 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 gam…