分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

【BZOJ】1823: [JSOI2010]满汉全席(2-sat)

发布时间:2023-09-06 01:45责任编辑:沈小雨关键词:暂无标签

题目

传送门:QWQ

分析

 2-sat模板(然而辣鸡如我还是调了好久)

代码

//bzoj 1823 2-sat#include <bits/stdc++.h>using namespace std;inline int read(){ ???int x=0,f=1;char ch=getchar(); ???while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();} ???while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();} ???return x*f;}int get(){ ???int x; char c=getchar(); ???while(c!=‘m‘&&c!=‘h‘)c=getchar(); ???if(c==‘m‘)x=read()*2; else x=read()*2-1; ???return x;}struct Edge{ ???int from,to;};vector<int> G[20005];int low[4005], dfn[4005], sccno[4005], dfs_clock, scc_num;stack<int> s;void insert(int u,int v){ ???G[u].push_back(v);}void tarjan(int u){ ???dfn[u]=low[u]=++dfs_clock; s.push(u); ???for(int i=0;i<G[u].size();i++){ ???????int v=G[u][i]; ???????if(!dfn[v]){ ???????????tarjan(v); ???????????low[u]=min(low[u], low[v]); ???????}else if(!sccno[v]){ ???????????low[u]=min(low[u], dfn[v]); ???????} ???} ???if(low[u]==dfn[u]){ ???????scc_num++; ???????for(;;){ ???????????int x=s.top(); s.pop(); ????????????sccno[x]=scc_num; ???????????if(x==u) break; ???????} ???}}int main(){ ???int n,m,T=read(); ???while(T--) ???{ ???????while(!s.empty()) s.pop(); ???????n=read(); m=read(); ???????int x,y,xp,yp; ???????for(int i=0;i<m;i++) ???????{ ???????????x=get(); y=get(); ???????????if(x%2==0)xp=x--; ???????????else xp=x++; ???????????if(y%2==0)yp=y--; ???????????else yp=y++; ???????????insert(xp,y); insert(yp,x); ???????} ???????????????memset(dfn,0,sizeof(dfn)); memset(sccno,0,sizeof(sccno)); ???????dfs_clock=scc_num=0; ???????for(int i=1;i<=2*n;i++) ???????????if(!dfn[i]) tarjan(i); ???????????????bool flag=1; ???????for(int i=1;i<=n;i++) ???????????if(sccno[2*i]==sccno[2*i-1]) flag=false; ???????if(flag) puts("GOOD"); ???????else puts("BAD"); ???????for(int i=0;i<=2*n;i++) G[i].clear(); ???} ???return 0;}

【BZOJ】1823: [JSOI2010]满汉全席(2-sat)

原文地址:https://www.cnblogs.com/noblex/p/8552303.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved