因为每种食材只有一份,所以两个评委的如果有要求同一种食材的两种做法就是不可行,用这个来建立2-SAT模型 然后跑tarjan判可行性即可 #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; const int N=200005; int T,n,m,h[N],cnt,dfn[N],low[N],tot,s[N],top,bl[N]…
n只有2000,直接DFS就可以过了... -------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<cctype> #define rep( i, n ) for( int i = 0;…
标题效果:有着n材料的种类,m陪审团. 每种材料具有两种不同的方法.每个法官都有两个标准.做出来的每一个法官的菜必须至少满足一个需求. 问:是否有这样一个程序. 思考:2-SAT经典的内置图形问题.因为每种材料只能有两种方法,约束条件通常就想到2-SAT.每个评委必须至少满足一种.这就是建图的条件. 所以连边A' -> B B' -> A 这样表示的是假设A不能满足某个评委,那么就必须让b满足这个评委. 然后就是Tarjan缩点,推断是否有个菜品的两种做法在一个scc中,若有就是无解,没有就是…