C++之路进阶——bzoj2199(奶牛议会)

| F.A.Qs | Home | Discuss | ProblemSet | Status | Ranklist | Contest | ModifyUser gryz2016 | Logout | 捐赠本站 |
|---|
2199: [Usaco2011 Jan]奶牛议会
Time Limit: 10 Sec Memory Limit: 259 MB
Submit: 258 Solved: 162
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 Y 2 N
1 N 2 N
1 Y 3 Y
1 Y 2 Y
Sample Output
HINT
Source
题解:
2-set问题,Y和N都考虑一下,最后check一下。
代码:
#include<cstdio>
#include<iostream>
#include<cstring>
#define maxn 10000 using namespace std; inline int read()
{
int x=;
char ch=getchar();
while (ch>''||ch<'') ch=getchar();
while (ch>=''&&ch<='') x=x*+ch-'',ch=getchar();
return x;
} int get()
{
int x=read();char c=getchar();
while(c!='Y'&&c!='N')c=getchar();
if(c=='Y')x=x*-;
else x=x*;
return x;
} struct ss
{
int to;
int next;
}e[maxn]; int head[maxn],n,m,ans[maxn],cnt;
bool kg[maxn];
char ch[]={'?','N','Y'};
int insert(int u,int v)
{
e[++cnt].to=v; e[cnt].next=head[u]; head[u]=cnt;
} void dfs(int x)
{
kg[x]=;
for (int i=head[x];i;i=e[i].next)
if (!kg[e[i].to]) dfs(e[i].to);
} bool check(int x)
{
memset(kg,,sizeof(kg));
dfs(x);
for (int i=;i<=n;i++)
if (kg[*i]&&kg[*i-]) return ;
return ;
} int main()
{
n=read();
m=read();
for (int i=;i<=m;i++)
{
int x=get(),xp;
int y=get(),yp;
if (x%==) xp=x--;
else xp=x++;
if (y%==) yp=y--;
else yp=y++;
insert(xp,y);
insert(yp,x);
}
for (int i=;i<=n;i++)
{
bool p=check(*i);
bool q=check(*i-);
if(!p&&!q){printf("IMPOSSIBLE");return ;}
else if(p&&q)ans[i]=;
else if(!p)ans[i]=;
else ans[i]=;
}
for(int i=;i<=n;i++)
printf("%c",ch[ans[i]]);
return ;
}
C++之路进阶——bzoj2199(奶牛议会)的更多相关文章
- BZOJ2199 奶牛议会 【2-sat】
BZOJ2199 奶牛议会 Description 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以"每头牛 都可以获得自己想要的"为原则, ...
- 【BZOJ2199】[Usaco2011 Jan]奶牛议会 2-SAT
[BZOJ2199][Usaco2011 Jan]奶牛议会 Description 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以“每头牛 都可以获得自己想要 ...
- 【BZOJ2199】 [Usaco2011 Jan]奶牛议会
Description 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以“每头牛 都可以获得自己想要的”为原则,建立了下面的投票系统: M只到场的奶牛 (1 & ...
- 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 ...
- BZOJ 2199: [Usaco2011 Jan]奶牛议会
2199: [Usaco2011 Jan]奶牛议会 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 375 Solved: 241[Submit][S ...
- 2-set奶牛议会
Description 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以“每头牛 都可以获得自己想要的”为原则,建立了下面的投票系统: M只到场的奶牛 (1 & ...
- 【BZOJ-2199】奶牛议会
链接: BZOJ-2199 题意: 给出 \(n(1\leq n\leq 1000)\) 个点,\(m(1\leq m\leq 4000)\) 个形如:"点 \(a\) 取 \(ca\) 或 ...
- BZOJ2199: [Usaco2011 Jan]奶牛议会
趁此机会学了一下2-SAT. 以前的2-SAT都是用并查集写的,只能应用于极小的一部分情况,这次学了一正式的2-SAT,是用一张有向图来表示其依赖关系. 2-SAT的介绍参见刘汝佳<训练指南&g ...
随机推荐
- mysql storage enginees
这段时间在看<High Performance MySQL>,看到存储引擎这个地方感到很多细节比较陌生,所以总结小记一些 为 了适应各种不同的运行环境,MYSQL提供了多种不同的存储引擎( ...
- 通过宏定义判断是否引入的是framework,反之则使用双引号,实用!
例: #if __has_include(<TestHead/TestHead.h>) #import <TestHead/TestHead.h>#else#import &q ...
- Tinyxml的简单应用
参考文章: 1-> http://www.cnblogs.com/phinecos/archive/2008/03/11/1100912.html 2-> http://blog.csdn ...
- spring.net使用
1.方法 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...
- ligerui ligerTip气泡提示信息
onAfterShowData:function(){ $('.l-grid-row-cell-inner').hover(function (){ $(this).ligerTip({content ...
- Appium 已支持中文输入
Appium 1.3.3以上. java: capabilities增加下面两项: capabilities.setCapability("unicodeKeyboard", &q ...
- java.lang.NoClassDefFoundError: Could not initialize class ......
在测试数据字典工具类的时候一直报这个错误,找了好久,原来是SpringContextUtils这个类没有放入到容器中. 但是我在SpringContextUtils上面加了注解的,为什么注解没有扫到呢 ...
- 为什么一个object_id在dba_objects中为什么查不到记录?
SQL> drop table test purge;SQL> create table test (id int,comments CLOB); SQL> select INDEX ...
- js的语句
1.语句类型总结 var box = 100;//单行语句 { //用花括号包含的语句集合,叫做复合语句,单位一个 //一对花括号,表示一个复合语句,处理时,可以单做一条单行语句, //复合语句,我们 ...
- WPF控件模板
引言:在进行WPF项目开发过程中,由于项目的需要,经常要对某个控件进行特殊的设定,其中就牵涉到模板的相关方面的内容.本文也是在自己进行项目开发过程中遇到控件模板设定时集中搜集资料后整理出来的,以供在以 ...