【bzoj2199/Usaco2011 Jan】奶牛议会——2-sat
Description
Input
Output
Sample Input
1 Y 2 N
1 N 2 N
1 Y 3 Y
1 Y 2 Y
Sample Output
因为原题的玄学排版导致刚开始理解错题意......所以我自己重新排了一下版:)
![](/assets/blank.gif)
![](/assets/blank.gif)
1 #include<cstdio> 2 #include<cstring> 3 #define mem(a,p) memset(a,p,sizeof(a)) 4 const int N=2010; 5 int m,n,tot=0,first[N]; 6 struct node{int ne,to;}e[N*4]; 7 bool ok[N]; 8 char ans[N]; 9 void add(int u,int v){e[++tot]=(node){first[u],v};first[u]=tot;} 10 void dfs(int x){ 11 ok[x]=1; 12 for(int i=first[x];i;i=e[i].ne) 13 if(!ok[e[i].to])dfs(e[i].to); 14 } 15 bool check(int x){ 16 mem(ok,0); 17 dfs(x); 18 for(int i=1;i<=n;i++) 19 if(ok[2*i]&&ok[2*i+1])return 0; 20 return 1; 21 } 22 int main(){ 23 scanf("%d %d",&n,&m); 24 for(int i=1,a,b;i<=m;i++){ 25 char ch[5],cc[5]; 26 scanf("%d %s %d %s",&a,ch+1,&b,cc+1); 27 if(ch[1]=='Y'){ 28 if(cc[1]=='Y')add(a*2+1,b*2),add(b*2+1,a*2); 29 else add(b*2,a*2),add(a*2+1,b*2+1); 30 } 31 else{ 32 if(cc[1]=='Y')add(a*2,b*2),add(b*2+1,a*2+1); 33 else add(a*2,b*2+1),add(b*2,a*2+1); 34 } 35 } 36 for(int i=1;i<=n;i++){ 37 int p=check(2*i),d=check(2*i+1); 38 if(!p&&!d)return printf("IMPOSSIBLE"),0; 39 if(p&&d)ans[i]='?'; 40 else if(p)ans[i]='Y'; 41 else ans[i]='N'; 42 } 43 for(int i=1;i<=n;i++)printf("%c",ans[i]); 44 return 0; 45 } 46
bzoj2199
转载于:https://www.cnblogs.com/JKAI/p/7697632.html
【bzoj2199/Usaco2011 Jan】奶牛议会——2-sat相关推荐
- BZOJ2199: [Usaco2011 Jan]奶牛议会
趁此机会学了一下2-SAT. 以前的2-SAT都是用并查集写的,只能应用于极小的一部分情况,这次学了一正式的2-SAT,是用一张有向图来表示其依赖关系. 2-SAT的介绍参见刘汝佳<训练指南&g ...
- BZOJ2199 [Usaco2011 Jan]奶牛议会
首先建立一个2-SAT的裸模型,然后发现...tarjan没法判断'?'的情况 于是暴力对每一个议案check一下,直接dfs即可 1 /******************************* ...
- BZOJ 2199: [Usaco2011 Jan]奶牛议会 [2-SAT 判断解]
http://www.lydsy.com/JudgeOnline/problem.php?id=2199 题意:裸的2-SAT,但是问每个变量在所有解中是只能为真还是只能为假还是既可以为真又可以为假 ...
- 「BZOJ2200」[Usaco2011 Jan] 道路和航线 - 最短路+拓扑排序
->点我进原题 [Usaco2011 Jan]道路和航线 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 1116 Solved: 410 Des ...
- 【ybt金牌导航3-6-3】【luogu P3007】奶牛议会 / The Continental Cowngress G(两种方法)
奶牛议会 / The Continental Cowngress G 题目链接:ybt金牌导航3-6-3 / luogu P3007 题目大意 有一些人,每个人对众多决案中的两个决案有表示好或不好. ...
- [BZOJ 2200][Usaco2011 Jan]道路和航线 spfa+SLF优化
Description Farmer John正在一个新的销售区域对他的牛奶销售方案进行调查.他想把牛奶送到T个城镇 (1 <= T <= 25,000),编号为1T.这些城镇之间通过R条 ...
- 一句话题解(20170801~20170125)
8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...
- [颓废史]蒟蒻的刷题记录
QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...
- 题目推荐—BZOJ 水题推荐
[bzoj1756]Vijos1083小白逛公园 裸题- -..线段树维护lmax,rmax,max,sum然后搞之.. [Ahoi2008]Meet 紧急集合 求两两点的lca然后会发现必然有两个l ...
- C#-进击Hangfire
Hangfire 分布式后端作业调度框架服务 CronExpression(cron表达式)- CronTriggers(cron触发器) 格式 字段含义 部分示例 cron表达式在线生成 Hangf ...
最新文章
- RS232 波特率时钟产生方法?
- 设置虚拟机和本机时间同步方法
- 【数理知识】《矩阵论》方保镕老师-第6章-广义逆矩阵及其应用
- xming+putty在windows下远程linux主机图形界面程序及putty乱码解决
- Apache Kafka 迎来了“后浪”
- 计算机网络(2)-数据链路层流量控制
- 正态分布表怎么查表_《深入浅出统计学》-读书笔记-再谈正态分布的应用
- 【Contact】结构体+动态内存管理+文件存储实现简易通讯录代码
- java继承案例分析,Java day5【第十四章】继承案例分析
- Linux学习笔记(更新中)
- 微信小程序-利用wxParse将html转为wxml
- java窗口进度条_java进度条窗口具体如何制作?
- 简单介绍一下HBase、Cassandra、Voldemort、Redis、VoltDB、MySQL
- matlab读取wav文件出错,MATLAB读取wav文件
- java打印日志的几种方式
- 用HTML+CSS写一个请假条
- 基于casbin的ABAC/RBAC权限实践
- Java工程师培训课(十六【新的领域】)
- Fiddler抓包工具使用——学习笔记(一)
- Flash烧录工具SuperPro Model610P 操作记录