zoukankan      html  css  js  c++  java
  • 洛谷 P4171 [JSOI2010] 满汉全席(2sat)

    传送门


    解题思路

    和板子几乎一样。

    而且不用输出方案。

    AC代码

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<vector>
    #include<queue>
    #include<map>
    #include<stack>
    #include<bitset>
    using namespace std;
    const int maxn=205;
    stack<int> s;
    int in[maxn],low[maxn],dfn[maxn],n,m,T,times,cnt,scc_cnt,p[maxn];
    struct node{
    	int v,next;
    }e[2005];
    void insert(int u,int v){
    	cnt++;
    	e[cnt].v=v;
    	e[cnt].next=p[u];
    	p[u]=cnt;
    }
    void dfs(int u){
    	dfn[u]=low[u]=++times;
    	s.push(u);
    	for(int i=p[u];i!=-1;i=e[i].next){
    		int v=e[i].v;
    		if(!dfn[v]){
    			dfs(v);
    			low[u]=min(low[u],low[v]);
    		}else{
    			if(!in[v]) low[u]=min(low[u],dfn[v]);
    		}
    	}
    	if(low[u]==dfn[u]){
    		scc_cnt++;
    		while(!s.empty()){
    			int x=s.top();s.pop();
    			in[x]=scc_cnt;
    			if(u==x) break;
    		}
    	}
    }
    int main(){
    	ios::sync_with_stdio(false);
    	cin>>T;
    	while(T--){
    		memset(p,-1,sizeof(p));
    		memset(dfn,0,sizeof(dfn));
    		memset(low,0,sizeof(low));
    		memset(in,0,sizeof(in));
    		times=cnt=scc_cnt=0;
    		cin>>n>>m;
    		for(int i=1;i<=m;i++){
    			char c1,c2;int x1,x2;
    			cin>>c1>>x1>>c2>>x2;
    			if(c1=='m'&&c2=='m') insert(x1+n,x2),insert(x2+n,x1);
    			if(c1=='m'&&c2=='h') insert(x1+n,x2+n),insert(x2,x1);
    			if(c1=='h'&&c2=='m') insert(x1,x2),insert(x2+n,x1+n);
    			if(c1=='h'&&c2=='h') insert(x1,x2+n),insert(x2,x1+n);
    		}
    		for(int i=1;i<=2*n;i++) if(!in[i]) dfs(i);
    		for(int i=1;i<=n;i++) {
    			if(in[i]==in[i+n]){
    				cout<<"BAD"<<endl;
    				break;
    			}
    			if(i==n){
    				cout<<"GOOD"<<endl;
    			}
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    分享jQuery的常用技巧12招
    浅析淘宝数据魔方技术架构
    JavaScript的跨域共享的方法
    PHP实现QQ达人信息抓取
    Dreamweaver CS5.5试用小感和破解方法附下载地址
    ExtJS 4应用架构设计
    webkit webApp 开发技术要点总结
    用delphi编写ISAPI过滤器
    1020卡免费共享测试!
    一些有用的網站
  • 原文地址:https://www.cnblogs.com/yinyuqin/p/15424643.html
Copyright © 2011-2022 走看看