【BZOJ2199】 [Usaco2011 Jan]奶牛议会
Description
Input
Output
Sample Input
1 Y 2 N
1 N 2 N
1 Y 3 Y
1 Y 2 Y
Sample Output
#include<cstdio>
#include<cstring>
using namespace std;
const char ch[]={'Y','N','?'};
const int N=;
struct ee{int to,next;}e[N];
int opt[N],n,m,head[N],cnt;
bool vis[N];
void dfs(int x){
vis[x]=;
for (int l=head[x];l;l=e[l].next){
int v=e[l].to;
if (!vis[v]) dfs(v);
}
} void insert(int u,int v){
e[++cnt].to=v; e[cnt].next=head[u];head[u]=cnt;
} bool check(int x,int pd){
memset(vis,,sizeof(vis));
dfs(*x-pd);
for (int i=;i<=n;i++)
if (vis[i*]&&vis[i*-]) return ;
return ;
} int main(){
scanf("%d%d",&n,&m);
char ch1[],ch2[];
for (int i=;i<=m;i++){
int x,y,xp,yp;
scanf("%d%s%d %s",&x,ch1,&y,ch2);
if (ch1[]=='N')x=x*;else x=x*-;
if (ch2[]=='N')y=y*;else y=y*-;
if (x%==)xp=x-;else xp=x+;
if (y%==) yp=y-;else yp=y+;
insert(yp,x);insert(xp,y);
}
for (int i=;i<=n;i++){
int q=check(i,),p=check(i,);//0代表不通过,1代表通过
if (!p&&!q) {printf("IMPOSSIBLE\n");return ;}
if (p&&q)opt[i]=;
if (p&&!q)opt[i]=;
if (q&!p)opt[i]=;
}
for (int i=;i<=n;i++) printf("%c",ch[opt[i]]);
}
【BZOJ2199】 [Usaco2011 Jan]奶牛议会的更多相关文章
- BZOJ2199: [Usaco2011 Jan]奶牛议会(2-SAT)
Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 559 Solved: 360[Submit][Status][Discuss] Descriptio ...
- BZOJ2199[Usaco2011 Jan]奶牛议会——2-SAT+tarjan缩点
题目描述 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以“每头牛 都可以获得自己想要的”为原则,建立了下面的投票系统: M只到场的奶牛 (1 <= M ...
- BZOJ2199: [Usaco2011 Jan]奶牛议会
趁此机会学了一下2-SAT. 以前的2-SAT都是用并查集写的,只能应用于极小的一部分情况,这次学了一正式的2-SAT,是用一张有向图来表示其依赖关系. 2-SAT的介绍参见刘汝佳<训练指南&g ...
- 【BZOJ2199】[Usaco2011 Jan]奶牛议会 2-SAT
[BZOJ2199][Usaco2011 Jan]奶牛议会 Description 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以“每头牛 都可以获得自己想要 ...
- BZOJ 2199: [Usaco2011 Jan]奶牛议会
2199: [Usaco2011 Jan]奶牛议会 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 375 Solved: 241[Submit][S ...
- BZOJ 2199: [Usaco2011 Jan]奶牛议会 [2-SAT 判断解]
http://www.lydsy.com/JudgeOnline/problem.php?id=2199 题意:裸的2-SAT,但是问每个变量在所有解中是只能为真还是只能为假还是既可以为真又可以为假 ...
- BZOJ.2199.[USACO2011 Jan]奶牛议会(2-SAT)
题目链接 建边不说了.对于议案'?'的输出用拓扑不好判断,直接对每个议案的结果DFS,看是否会出现矛盾 Tarjan也用不到 //964kb 76ms #include <cstdio> ...
- 2199: [Usaco2011 Jan]奶牛议会 2-sat
链接 https://www.luogu.org/problemnew/show/P3007 https://www.lydsy.com/JudgeOnline/problem.php?id=2199 ...
- bzoj 1823: [JSOI2010]满汉全席 && bzoj 2199 : [Usaco2011 Jan]奶牛议会 2-sat
noip之前学的内容了,看到题竟然忘了怎么建图了,复习一下. 2-sat 大概是对于每个元素,它有0和1两种选择,必须选一个但不能同时选.这之间又有一些二元关系,比如x&y=1等等... 先把 ...
随机推荐
- 关于Eclipse的工作空间设置默认个数和配置
&
- sendkeys用法详解
将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样. 语法 SendKeys string[, wait] SendKeys 语句的语法具有以下几个命名参数: 部分 描述 string ...
- CI加载流程小结
无聊,决定水一把. CI(CodeIgniter)是我最早接触的一个框架,到现在也只是用了其中一点零碎的方法.一直想对其流程做个小结,却总是因各种各样的“理由”挨着.看见别人图表齐上阵,没那耐心,就从 ...
- Web.config配置详解【转 】
一.认识Web.config文件 Web.config 文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web ...
- Redis 命令 - Server
BGREWRITEAOF Asynchronously rewrite the append-only file BGSAVE Asynchronously save the dataset to d ...
- EF4.1之Code first 的几种连接数据库的方式
通过代码 进行连接和创建数据库的方法主要分为两种: 1.使用用连接字符串(在配置文件里面): 连接字符串: <add name="DbEntities" connection ...
- Asp.Net运行原理(=)
浏览器与服务器之间的通信. 一般浏览器与服务器之间的底层是通过socket建立连接的. 当浏览器与服务器之间建立了socket连接之后,服务器就开始监听. 当浏览器与服务器之间建立了相互兼容的协议之后 ...
- Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法(转)
本篇文章,介绍Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法. RetreiveMultiple方法,用于获取实体的多个实例,该方法的签名如下 ...
- (转)DES、RSA、MD5、SHA、随机生成加密与解密
一.数据加密/编码算法列表 常见用于保证安全的加密或编码算法如下: 1.常用密钥算法 密钥算法用来对敏感数据.摘要.签名等信息进行加密,常用的密钥算法包括: DES(Data Encr ...
- inline-block元素的一些坑
当年刚知道CSS display有 inline-block 这个神奇的属性的时候,感觉碉堡了,以为从此不用float了,什么div.p,只要 display: inline-block 就在一行上了 ...