2102: [Usaco2010 Dec]The Trough Game

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 117  Solved: 84
[Submit][Status]

Description

Farmer John and Bessie are playing games again. This one has to do with troughs of water. Farmer John has hidden N (1 <= N <= 20) troughs behind the barn, and has filled some of them with food. Bessie has asked M (1 <= M <= 100) questions of the form, "How many troughs from this list (which she recites) are filled?". Bessie needs your help to deduce which troughs are actually filled. Consider an example with four troughs where Bessie has asked these questions (and received the indicated answers): 1) "How many of these troughs are filled: trough 1" --> 1 trough is filled 2) "How many of these troughs are filled: troughs 2 and 3" --> 1 trough is filled 3) "How many of these troughs are filled: troughs 1 and 4" --> 1 trough is filled 4) "How many of these troughs are filled: troughs 3 and 4" --> 1 trough is filled From question 1, we know trough 1 is filled. From question 3, we then know trough 4 is empty. From question 4, we then know that trough 3 is filled. From question 2, we then know that trough 2 is empty. 求N位二进制数X,使得给定的M个数,满足X and Bi=Ci ,Bi ci分别是读入的两个数

Input

* Line 1: Two space-separated integers: N and M * Lines 2..M+1: A subset of troughs, specified as a sequence of contiguous N 0's and 1's, followed by a single integer that is the number of troughs in the specified subset that are filled.

Output

* Line 1: A single line with: * The string "IMPOSSIBLE" if there is no possible set of filled troughs compatible with Farmer John's answers. * The string "NOT UNIQUE" if Bessie cannot determine from the given data exactly what troughs are filled. * Otherwise, a sequence of contiguous N 0's and 1's specifying which troughs are filled.

Sample Input

4 4
1000 1
0110 1
1001 1
0011 1

Sample Output

1010

HINT

 

Source

Silver

题解:一上来居然没有别的想法——只有暴力。。。然后写了个纯粹的二进制穷举,然后,然后,然后,居然AC了?!?!44ms也是醉大了= =

aaarticlea/png;base64,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" alt="" />

 type
point=^node;
node=record
g:longint;
next:point;
end;
var
i,j,k,l,m,n,t:longint;
a:array[..] of point;
b,c,d:array[..] of longint;
c1,c2:char;
procedure add(x,y:longint);inline;
var p:point;
begin
new(p);p^.g:=y;
p^.next:=a[x];a[x]:=p;
end;
procedure dfs(x:longint);inline;
var i,j,k,l:longint;p:point;
begin
if x>n then
begin
for i:= to m do if b[i]> then exit;
if t= then
begin
for i:= to n do d[i]:=c[i];
t:=;
end
else
begin
writeln('NOT UNIQUE');
halt;
end;
end
else
begin
p:=a[x];l:=;
while p<>nil do
begin
if b[p^.g]= then
begin
l:=;
break;
end;
p:=p^.next;
end;
if l= then
begin
p:=a[x];
while p<>nil do
begin
dec(b[p^.g]);
p:=p^.next;
end;
c[x]:=;
dfs(x+);
p:=a[x];
while p<>nil do
begin
inc(b[p^.g]);
p:=p^.next;
end;
end;
c[x]:=;
dfs(x+);
end;
end; begin
readln(n,m);
for i:= to m do a[i]:=nil;
for i:= to m do
begin
for j:= to n do
begin
read(c1);
if c1='' then add(j,i);
end;
readln(b[i]);
end;
t:=;
dfs();
IF t= then write('IMPOSSIBLE') else for i:= to n do write(d[i]);
writeln;
readln;
end.

2102: [Usaco2010 Dec]The Trough Game的更多相关文章

  1. 【BZOJ】2102: [Usaco2010 Dec]The Trough Game(暴力)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2102 直接枚举所有情况......然后判断是否可行.. #include <cstdio> ...

  2. BZOJ2102 : [Usaco2010 Dec]The Trough Game

    暴力枚举答案然后检验. #include<cstdio> int n,m,i,j,k,a[100],b[100],cnt,ans;char s[20]; int main(){ for(s ...

  3. BZOJ2097[Usaco2010 Dec] 奶牛健美操

    我猜我这样继续做水题会狗带 和模拟赛的题很像,贪心搞一下. #include<bits/stdc++.h> using namespace std; int read(){ ,f=;cha ...

  4. BZOJ2101: [Usaco2010 Dec]Treasure Chest 藏宝箱

    2101: [Usaco2010 Dec]Treasure Chest 藏宝箱 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 327  Solved:  ...

  5. BZOJ 2100: [Usaco2010 Dec]Apple Delivery( 最短路 )

    跑两遍最短路就好了.. 话说这翻译2333 ---------------------------------------------------------------------- #includ ...

  6. BZOJ 2101: [Usaco2010 Dec]Treasure Chest 藏宝箱( dp )

    dp( l , r ) = sum( l , r ) - min( dp( l + 1 , r ) , dp( l , r - 1 ) ) 被卡空间....我们可以发现 l > r 是无意义的 ...

  7. BZOJ_2097_[Usaco2010 Dec]Exercise 奶牛健美操_二分答案+树形DP

    BZOJ_2097_[Usaco2010 Dec]Exercise 奶牛健美操_二分答案+树形DP Description Farmer John为了保持奶牛们的健康,让可怜的奶牛们不停在牧场之间 的 ...

  8. bzoj2101【Usaco2010 Dec】Treasure Chest 藏宝箱

    2101: [Usaco2010 Dec]Treasure Chest 藏宝箱 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 418  Solved: ...

  9. BZOJ_2099_[Usaco2010 Dec]Letter 恐吓信_后缀自动机+贪心

    BZOJ_2099_[Usaco2010 Dec]Letter 恐吓信_后缀自动机 Description FJ刚刚和邻居发生了一场可怕的争吵,他咽不下这口气,决定佚名发给他的邻居 一封脏话连篇的信. ...

随机推荐

  1. 【Scala】Scala之Numbers

    一.前言 前面已经学习了Scala中的String,接着学习Scala的Numbers. 二.Numbers 在Scala中,所有的数字类型,如Byte,Char,Double,Float,Int,L ...

  2. 百度人脸识别api及face++人脸识别api测试(python)

    一.百度人脸识别服务 1.官方网址:http://apistore.baidu.com/apiworks/servicedetail/464.html 2.提供的接口包括: 2.1 多人脸比对:请求多 ...

  3. redis使用Lua脚本

    最近在看<Redis入门指南>第二版,感觉收获挺大,推荐大家有时间看一看.其中有一章讲Lua脚本,感觉挺实用,把总结整理一下. Redis在2.6中推出了脚本功能,允许开发者使用Lua语言 ...

  4. 编程练习------C/C++分别实现字符串与整数的转换

    C/C++分别实现字符串与整数的转换 前提:不使用 itoa 和 atoi. 方法一.C和C++通用的一种转换手段是: 1.整数转化为字符串:采用加'0',再逆序的办法,整数加'0'就会隐性转化成ch ...

  5. block之---循环引用

    block内部引用外界对象的原则:block会对他内部所有的强指针进行强引用. 验证原理: 在主控制器中modal出ModalVC控制器,ModalVC中有强引用的block属性,在block内部使用 ...

  6. C语言 extern3 全局变量的使用

    和函数的全局使用极其类似: 第一种方法,也是最简单的: 在 first.h 中定义, ; 在对应的first.c中使用: #include "first.h" #include & ...

  7. git clone 远程仓库报错error setting certificate verify locations

    系统:windows10 今天从github上克隆项目时报错: 原因: 1.git配置没有修改 之前配置的是公司gitlab账号的信息,和我当前要克隆的github的配置信息不同,没有注意修改 2.执 ...

  8. JAVA中的数据结构 - 真正的去理解红黑树

    一, 红黑树所处数据结构的位置: 在JDK源码中, 有treeMap和JDK8的HashMap都用到了红黑树去存储 红黑树可以看成B树的一种: 从二叉树看,红黑树是一颗相对平衡的二叉树 二叉树--&g ...

  9. 在java中的Try Catch块-------------异常处理(2)

    1. Try块是什么? Try块是一块可能产生异常的代码块,一个Try块可能跟着Catch块或者Finally块,或者两者. Try块的语义: try{ //statements that may c ...

  10. Flash、Ajax各自的优缺点,在使用中如何取舍?

    1.Flash ajax对比 Flash适合处理多媒体.矢量图形.访问机器:对CSS.处理文本上不足,不容易被搜索. Ajax对CSS.文本支持很好,支持搜索:多媒体.矢量图形.机器访问不足. 共同点 ...