P4171 [JSOI2010]满汉全席
简要的学了一下2-sat,然而不会输出方案。
就是个sb模板题啦
// luogu-judger-enable-o2
#include<bits/stdc++.h>
#define il inline
#define vd void
typedef long long ll;
il int gi(){int x=0,f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(isdigit(ch))x=x*10+ch-'0',ch=getchar();return x*f;
}
int fir[201],dis[2010],nxt[2010],id,dfn[201],low[201],stk[201],top,ins[201],scc[201];
il vd link(int a,int b){nxt[++id]=fir[a],fir[a]=id,dis[id]=b;}
char a[10],b[10];
il vd tarjan(int x){dfn[x]=low[x]=++dfn[0];stk[++top]=x;ins[x]=1;for(int i=fir[x];i;i=nxt[i])if(!dfn[dis[i]])tarjan(dis[i]),low[x]=std::min(low[x],low[dis[i]]);else if(ins[dis[i]])low[x]=std::min(low[x],dfn[dis[i]]);if(dfn[x]==low[x]){++scc[0];while(stk[top+1]!=x)ins[stk[top]]=0,scc[stk[top]]=scc[0],--top;}
}
int main(){
#ifndef ONLINE_JUDGEfreopen("4171.in","r",stdin);freopen("4171.out","w",stdout);
#endifint n,m,T=gi();while(T--){n=gi(),m=gi();memset(fir,0,sizeof fir);id=0;memset(stk,0,sizeof stk);memset(dfn,0,sizeof dfn);for(int i=1;i<=m;++i){scanf("%s%s",a,b);if(a[0]=='h')std::swap(a,b);int A=atof(a+1),B=atof(b+1);if(a[0]=='h')link(A+n,B),link(B+n,A);else if(b[0]!='m')link(A,B),link(B+n,A+n);else link(A,B+n),link(B,A+n);}scc[0]=0;for(int i=1;i<=n*2;++i)if(!dfn[i])tarjan(i);for(int i=1;i<=n;++i)if(scc[i]==scc[i+n]){puts("BAD");goto GG;}puts("GOOD");GG:;}return 0;
}
转载于:https://www.cnblogs.com/xzz_233/p/9819341.html
P4171 [JSOI2010]满汉全席相关推荐
- [洛谷P4171][JSOI2010]满汉全席
题目大意:有$n$个点,每个点可以选或不选,有$m$组约束,形如$a,u,b,v$,表示$u=a,v=b$中至少要满足一个条件,问是否存在一组解,多组询问 题解:$2-SAT$,感觉是板子题呀,最后判 ...
- Bzoj1823 [JSOI2010]满汉全席
Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1640 Solved: 798 Description 满汉全席是中国最丰盛的宴客菜肴,有许多种不同 ...
- BZOJ1823:[JSOI2010]满汉全席(2-SAT)
Description 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而 ...
- [JSOI2010] 满汉全席
题目描述 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而能够烹饪出经过 ...
- BZOJ1823:[JSOI2010]满汉全席——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=1823 https://www.luogu.org/problemnew/show/P4171 题面 ...
- BZOJ1823[JSOI2010]满汉全席——2-SAT+tarjan缩点
题目描述 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而能够烹饪出经过 ...
- 【BZOJ】1823: [JSOI2010]满汉全席(2-sat)
题目 传送门:QWQ 分析 2-sat模板(然而辣鸡如我还是调了好久) 代码 //bzoj 1823 2-sat #include <bits/stdc++.h> using namesp ...
- 一句话题解(20170801~20170125)
8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...
- 图论2-SAT算法详解
图论2-SAT算法详解 今天我们来介绍一个我个人认为最难的算法,这是为什么呢?肯定会有许多dalao说,不就一个2-SAT,我两分钟就A掉了.然而2-SAT的细节非常的多,稍不注意就会写错,而且测试困 ...
最新文章
- php-echo原理
- Android 蓝牙4.0(BLE)开发实现对蓝牙的写入数据和读取数据
- C++位操作确定一个数是否为2的幂的算法实现(附完整源码)
- [react] 你有使用过React Intl吗?
- php+mockjs,mockjs的常用方法分享
- hadoop设置java环境_hadoop安装(3)_Linux配置JDK环境
- 给网页穿上Word马甲
- 数据结构上机实践第14周项目1(4) - 验证算法(平衡二叉树)
- Webbrowser若干点
- Flutter入门(2)—创建项目
- 基于SpringBoot和Vue的OA办公管理系统
- matlab生成浮雕灰度图,将照片做成浮雕灰度图
- 儒家“内圣外王”之道对青年人格
- Zabbix 监控MySQL最大连接数
- Lattice ddr3教程全攻略之时序约束篇
- 报错解决——RuntimeError: The size of tensor a (4) must match the size of tensor b (3) at non-singleton
- 稳定性高可用测试——各大厂质量保障实践分享汇总(下)
- 网络安全——应急响应之入侵排查
- 那些年,我们用过的服务器软件
- springboot银行客户管理系统毕业设计源码250903
热门文章
- 档案盒正面标签制作_如何制作差异化的短视频内容?
- git如何安装aur_git系列:git 简介
- Linux向文件中写入内容
- Springboot项目启动时加载数据库数据到内存
- vs code快捷键修改为idea快捷键
- 【CCCC】L2-010 排座位 (25分),,并查集+二维矩阵判定关系
- Win7如何禁用无线网卡
- php mysql表单源码_PHP表单数据写入MySQL数据库的代码
- pscad与matlab接口,PSCAD/EMTDC与Matlab接口研究
- python 仪表盘实现_Python实现数据可视化看如何监控你的爬虫状态【推荐】