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. 大咖,我能转行做UX设计师吗?

    前几天,有个朋友找到我,叫我给分析下他适不适合转UX设计.他的专业是建筑设计,之所以要辞职,也就是公司破事多,老板又不看重他.看到UX设计这个行业的前景很不错,想要转行.他说的也没错, 现在的UX设计 ...

  2. python练习_购物车(简版)

    python练习_购物车(简版) 需求: 写一个python购物车可以输入用户初始化金额 可以打印商品,且用户输入编号,即可购买商品 购物时计算用户余额,是否可以购买物品 退出结算时打印购物小票 以下 ...

  3. HDU1864(背包)

    最大报销额 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  4. Memcached在windows下的安装和使用

    1.下载memcached安装文件及c#开发所需的dll 2.解压<memcached-1.2.6-win32-bin.zip>,并cmd,定位到解压目录. 3.安装服务:输入命令 mem ...

  5. Raft 实现日志复制同步

    Raft 实现日志复制同步 本篇文章以 John Ousterhout(斯坦福大学教授) 和 Diego Ongaro(斯坦福大学获得博士学位,Raft算法发明人) 在 Youtube 上的讲解视频及 ...

  6. [CSS3] 学习笔记-CSS3盒子样式

    1.盒子的类型 在CSS3中,使用display来定义盒子的类型,包括block,inline,inline-block类型.div元素和P元素,属于block类型,span元素和a元素,属于inli ...

  7. 百度富文本编辑器ueditor在jsp中的使用(ssm框架中的应用)

    折腾了一下午终于把百度富文本编辑器ueditor搞定了!   项目地址:https://github.com/724888/lightnote_new     首先我参考了一个ueditor的demo ...

  8. 关于JavaScript中的编码和解码函数

    js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...

  9. windows下搭建Nexus3私服和基于IDEA15的Maven学习笔记

    搭建Nexus私服. 首先去官网下载window下用的zip文件.https://www.sonatype.com/download-oss-sonatype. 解压之后包含下面两个文件 进入nexu ...

  10. Baidu图表插件--Eharts使用(柱状图)

    官网链接:http://echarts.baidu.com/index.html 官网的demo,api都很详细:我就分享下我的学习步骤 首先定义一个显示图标的区域: <div id=" ...