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,一经查实,立即删除!

相关文章

ubuntu 远程桌面

1. apt-get install xrdp 2. apt-get install dconf-editor 3. 启动 dconf-editor&#xff0c;org->gnome->desktop->remote-access&#xff0c;取消 “requlre-encryption”的勾选 4. 打开系统左上角的"Search your computer"&#xff0c;然后找到“Des…

记录:Android中StackOverflow的问题

最近新作的项目上线&#xff0c;出现了一个让人抓狂的问题。在此记录一下&#xff01; 现在的项目中&#xff0c;制作了一个界面非常复杂。整个结构是最外层一个Layout&#xff0c;封装了Menu键吊起的菜单&#xff0c;整个内容使用一个FrameLayout装载&#xff0c;这个layout中…

OpenDrive记录

1. junction里面只有一半的链接关系&#xff0c;也就是只有road进入junction的链接关系&#xff0c;没有junction出 去的链接关系。 拿路径搜索方法举例&#xff0c; 1&#xff09; 如果当前road的前方是junction&#xff0c;即当前road的predecessor或者successor是juncti…

JavaWeb高性能开发(一)

今日要闻: 淘宝删差评产业链 在你给出“差评”“中评”后不久&#xff0c;有人会偷偷登录你的淘宝账户&#xff0c;把你之前给过的评价删除或改成“好评”。而这种人就是“职业修改差评师” 案发前&#xff0c;李骏杰在杭州市滨江区一家科技公司上班。5 人当中&#xff0c;他主…

凸多边形的面积问题

Q&#xff1a;给定顶点坐标&#xff0c;求凸多边形的面积&#xff0c;保留两位小数。 样例输入&#xff1a; 4 3 3 3 0 1 2 1 0 样例输出 5.00 S&#xff1a; #include<stdio.h> #include<math.h> #include<stdlib.h> double dist(struct point A,struct poi…

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

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

Linux 输入子系统原理理解(原创)

linux 输入子系统原理理解&#xff08;原创&#xff09; 以前学了单独的按键设备驱动以及鼠标驱动&#xff0c;实际上&#xff0c;在linux中实现这些设备驱动&#xff0c;有一种更为推荐的方法&#xff0c;就是input输入子系统。平常我们的按键&#xff0c;触摸屏&#xff0…

Logistic Regression:最基础的神经网络

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

Win7和Ubuntu14.10双系统

一、Wubi 本来是拿wubi安装的。步骤简单&#xff0c;装卸方便。就是失败了。。。 下载好镜像后解压一份&#xff0c;将wubi.exe复制出一份放在和镜像同目录下&#xff08;目录要全英&#xff09;。断网&#xff0c;运行wubi.exe按照提示安装。这里这篇教程挺好&#xff0c;之后…

LateX 笔记

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

OpenDrive ARC绘制秘籍

加和减代表曲率的正负

mysql中char与varchar的区别分析

原文网址&#xff1a;http://www.jb51.net/article/23575.htm mysql中char与varchar的区别分析 作者&#xff1a; 字体&#xff1a;[增加 减小] 类型&#xff1a;转载在mysql教程中char与varchar的区别呢&#xff0c;都是用来存储字符串的&#xff0c;只是他们的保存方式不一样…

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 …

esmini LongSpeedAction修改

esmini的LongSpeedAction&#xff0c;如果shape设置为step的话&#xff0c;DynamicsDimension实际就无效了&#xff0c; 因为step的意思就是直接设置&#xff0c;在LongSpeedAction的Start过程中设置完就结束了&#xff0c;Step就不在 执行。 如果我们在step的情况下&#x…

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

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

Android项目实战视频教程_快递轨迹查询应用开发

基于Android平台的快递轨迹查询应用开发全程实录&#xff08;MenuDrawer、DbUtils、HttpUtils、讯飞语音识别&#xff09;课程分类&#xff1a;Android适合人群&#xff1a;中级课时数量&#xff1a;10(17节)课时用到技术&#xff1a;MenuDrawer、DbUtils、HttpUtils、讯飞语音…

OpenXLSX 字段读取问题

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