BZOJ2199 [Usaco2011 Jan]奶牛议会

首先建立一个2-SAT的裸模型,然后发现。。。tarjan没法判断'?'的情况

于是暴力对每一个议案check一下,直接dfs即可

 

  1 /**************************************************************
  2     Problem: 2199
  3     User: rausen
  4     Language: C++
  5     Result: Accepted
  6     Time:160 ms
  7     Memory:884 kb
  8 ****************************************************************/
  9  
 10 #include <cstdio>
 11 #include <cstring>
 12 #include <algorithm>
 13  
 14 using namespace std;
 15 const char ch[3] = {'?', 'N', 'Y'};
 16 const int N = 2005;
 17 const int M = N << 2;
 18  
 19 struct edge {
 20   int next, to;
 21   edge() {}
 22   edge(int _n, int _t) : next(_n), to(_t) {}
 23 } e[M];
 24  
 25 int n, m;
 26 int first[N], tot;
 27 bool vis[N];
 28 int ans[N];
 29  
 30 int read() {
 31   int x = 0;
 32   char ch = getchar();
 33   while (ch < '0' || '9' < ch)
 34     ch = getchar();
 35   while ('0' <= ch && ch <= '9')
 36     (x *= 10) += ch - '0', ch = getchar();
 37   return x;
 38 }
 39  
 40 int get() {
 41   int x = read();
 42   char ch = getchar();
 43   while (ch != 'Y' && ch != 'N')
 44     ch = getchar();
 45   if (ch == 'Y') --(x <<= 1);
 46   else x <<= 1;
 47   return x;
 48 }
 49  
 50 void add_edge(int x, int y) {
 51   e[++tot] = edge(first[x], y);
 52   first[x] = tot;
 53 }
 54  
 55 #define y e[x].to
 56 void dfs(int p) {
 57   int x;
 58   vis[p] = 1;
 59   for (x = first[p]; x; x = e[x].next)
 60     if (!vis[y]) dfs(y);
 61 }
 62 #undef y
 63  
 64 bool check(int p) {
 65   int i;
 66   memset(vis, 0, sizeof(vis));
 67   dfs(p);
 68   for (i = 1; i <= n; ++i)
 69     if (vis[2 * i] && vis[2 * i - 1]) return 0;
 70   return 1;
 71 }
 72                  
 73  
 74 int main() {
 75   int i, a, b, c, d, p, q;
 76   n = read(), m = read();
 77   for (i = 1; i <= m; ++i) {
 78     a = get(), c = get();
 79     if (a & 1) b = a + 1;
 80     else b = a - 1;
 81     if (c & 1) d = c + 1;
 82     else d = c - 1;
 83     add_edge(b, c);
 84     add_edge(d, a);
 85   }
 86   for (i = 1; i <= n; ++i) {
 87     p = check(2 * i - 1);
 88     q = check(2 * i);
 89     if (!p && !q) {
 90       puts("IMPOSSIBLE");
 91       return 0;
 92     }
 93     else if (p && q) ans[i] = 0;
 94     else if (!p) ans[i]= 1;
 95     else ans[i] = 2;
 96   }
 97   for (i = 1; i <= n; ++i)
 98     putchar(ch[ans[i]]);
 99   puts("");
100   return 0;
101 }
View Code

 

转载于:https://www.cnblogs.com/rausen/p/4266619.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从此明白了卷积神经网络(CNN)

卷积神经网络是一种曾经让我无论如何也无法弄明白的东西&#xff0c;主要是名字就太“高级”了&#xff0c;网上的各种各样的文章来介绍“什么是卷积”尤为让人受不了。听了吴恩达的网课之后&#xff0c;豁然开朗&#xff0c;终于搞明白了这个东西是什么和为什么。我这里大概会…

Logistic Regression:最基础的神经网络

一、什么是logictic regression 下面的图是Andrew Ng提供的一个用logistic regression来识别主子的图片的算法结构示意图&#xff1a; 「左边」的「x0到x12287「是输入&#xff08;input&#xff09;&#xff0c;我们称之为」特征&#xff08;feather&#xff09;」&#xff0…

LateX 笔记

y \frac{a}{b} y A_aA_{bb} y a\times{b} y \arctan{(x)} \pi y x^2

OpenDrive ARC绘制秘籍

加和减代表曲率的正负

3W+字的设计模式手册

设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结&#xff0c;其中最出名的当属 Gang of Four (GoF) 的分类了&#xff0c;他们将设计模式分类为 23 种经典的模式&#xff0c;根据用途我们又可以分为三大类&#xff0c;分别为创建型模式、结构型模式和行为型模式。…

datagridview 当前上下文中不存在bind_全面解析JavaScript中this指向问题

this指向参考文章&#xff1a;* thisJavaScript中this指向分为以下几种情况&#xff1a;普通函数或作为对象属性事件绑定构造函数箭头函数call/apply/bind指定下面我们来进行一一介绍普通函数或作为对象属性this取决于方法执行前面是否有“点”&#xff0c;有“点”的话&#x…

Unity Scene为每一个游戏物体进行扩展编辑

2个月前还在忙碌的找实习工作,看见招聘信息上面有一条熟悉扩展Unity编辑器,配合美工编程. 自己动手写完这个代码时候,发现写代码就像弹钢琴多么神奇. TestEdit类: using UnityEngine; using System.Collections; using UnityEditor;[CustomEditor(typeof(Test))] public class …

cc2530i2c可同时接受两个传感器的数据吗_汽车方向及维修_玉树沃尔沃S40方向机,宝马531电子方向机进水可以维修吗...

产品品牌&#xff1a;徐州永诚汽车方向及维修公司产品单价&#xff1a;最小起订&#xff1a;23供货总量&#xff1a;2交货期限&#xff1a;13发货城市&#xff1a;徐州玉树沃尔沃S40方向机,宝马531电子方向机进水可以维修吗 [qadxfh3k]凭以往的经验&#xff0c;像这种多个控制模…

OpenXLSX 字段读取问题

在读取excel的时候发现有些字段无法读取&#xff0c;通过把excel文件解压后对比发现&#xff0c;正常读取和不 能正常读取的字段在sharedString.xml中存储的格式有差异&#xff0c;取其中一个字段&#xff0c;如下图&#xff1a; 正常读取的 不能读取的 对比可以看到其区别&a…

六西格玛dfss_六西格玛系列知识之二:六西格玛管理的基本原理

六西格玛管理是一系统&#xff0c;其系统性体现在它既提出了面向产品和服务设计开发的六西格玛设计&#xff0c;又提出了面向流程、产品制造、服务提供的六西格玛改进方法。从当前的情况来看&#xff0c;六西格玛设计&#xff08;DFSS&#xff09;项目推进尚未形成统一的或得到…

Could NOT find XXX (missing: XXX_LIBRARY XXX_DIR)

有时候从github上下载一些新的包编译时经常会缺少一些插件或库文件&#xff0c;比如 Could NOT find Bullet (missing: BULLET_DYNAMICS_LIBRARY BULLET_COLLISION_LIBRARY BULLET_MATH_LIBRARY BULLET_SOFTBODY_LIBRARY BULLET_INCLUDE_DIR) 或者 Could NOT find SDL (miss…

minheight能继承吗_民法典亮点盘点 | 侄子能继承叔叔的遗产吗?

2020年5月28日&#xff0c;十三届全国人大三次会议表决通过了《中华人民共和国民法典》&#xff0c;《民法典》将于2021年1月1日起施行。《民法典》共7编&#xff0c;依次为&#xff1a;总则编、物权编、合同编、人格权编、婚姻家庭编、继承编、侵权责任编&#xff0c;以及附则…

一分二功率分配器_一文学会微波功率分配器

功率分配器是微波电路设计中常用的一个无源元器件&#xff0c;简称功分器&#xff0c;顾名思义&#xff0c;就是把一路输出功率按照一定的比例分配成N路功率输出的一种微波元器件&#xff0c;如下图所示&#xff0c;A端口进入的信号分成两路信号从C1和C2端口输出。当然&#xf…

高德地图定位精度多少米_中美俄卫星定位精度分别是多少?美0.1米,俄10米,中国呢?...

在古代&#xff0c;悬于天际的北斗七星就被那时候的人们当做辨别方向的工具&#xff0c;在现代&#xff0c;太空之中的北斗卫星也在为人们指引方向&#xff0c;为了这一天的到来&#xff0c;我们等待了太久太久。1993年发生的银河号事件里&#xff0c;美国宣称我国商船携带了违…

QT 语言切换

1. 代码里面需要切换语言的文字用tr包裹 2. 在工程pro文件目录下 3. 使用QT安装目录下的 Linguist程序增加中文字符串 4. 打开命令行 5. 执行 lrelease.exe ......\translations\zh_CN.ts

excel条形码字体_在Excel中批量生成条形码,竟如此简单!

条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息&#xff0c;因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。那么如何在Excel中快速生成条形码呢&#xff1f;我们以前看到的方法有&am…

(视频) 《快速创建网站》 3.2 WordPress多站点及Azure在线代码编辑器 - 扔掉你的ftp工具吧,修改代码全部云端搞定...

本文是《快速创建网站》系列的第6篇&#xff0c;如果你还没有看过之前的内容&#xff0c;建议你点击以下目录中的章节先阅读其他内容再回到本文。 访问本系列目录&#xff0c;请点击&#xff1a;http://devopshub.cn/tag/wordpress-on-azure/ 1. 网站管理平台WordPress和云计算…

自定义外部协议使浏览器拉起本地程序

什么是自定义协议 由于我们的游戏需要在浏览器中调用NPAPI插件&#xff0c;而chrome移除了NPAPI的支持&#xff0c;导致游戏并不能很好的适配所有的浏览器&#xff0c;所以这个时候我们对于chrome浏览器用到了自定义浏览器协议这一标准。自定义浏览器协议允许在浏览器中使用pr…

hssfcolor 不建议使用_不建议使用微信双开的真正原因!

不少小伙伴都有两个甚至多个微信号&#xff0c;通常一个是自己的私人号&#xff0c;其它则用于工作&#xff0c;所以想要在手机中双开微信&#xff0c;这样使用起来更方便。不过使用 iPhone 的小伙伴就很郁闷了&#xff0c;为什么在 iPhone 上不能像部分安卓手机那样方便的双开…