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. 在ASP.NET MVC中使用 Bootstrap table插件

    Bootstrap table: http://bootstrap-table.wenzhixin.net.cn/zh-cn/getting-started/ 1. 控制器代码: using Syst ...

  2. JSP 禁用脚本设置

    JSP 禁用脚本设置: web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xm ...

  3. SQL Server如何固定执行计划

    SQL Server 其实从SQL Server 2005开始,也提供了类似ORACLE中固定执行计划的功能,只是好像很少人使用这个功能.当然在SQL Server中不叫"固定执行计划&qu ...

  4. Bootstrap入门(十四)组件8:媒体对象

    Bootstrap入门(十四)组件8:媒体对象 这是一个抽象的样式,用以构建不同类型的组件,这些组件都具有在文本内容的左或右侧对齐的图片(就像博客评论或 Twitter 消息等). 1.基本样式 2. ...

  5. PowerPoint实用知识

    纯手打,可能有错别字,使用的版本是office2013 转载请注明出处 http://www.cnblogs.com/hnnydxgjj/p/6347256.html ,谢谢 母版的使用 制作PPT的 ...

  6. 用Spark学习矩阵分解推荐算法

    在矩阵分解在协同过滤推荐算法中的应用中,我们对矩阵分解在推荐算法中的应用原理做了总结,这里我们就从实践的角度来用Spark学习矩阵分解推荐算法. 1. Spark推荐算法概述 在Spark MLlib ...

  7. 有趣的++i和i++

    作为一个天天和代码“约会”的人来说i++和++i这玩意再熟悉不过了,因为使用频率太高了. 虽然如此,但也未必见得我们真的了解她,不妨猜猜下面的输出结果. #inlcude <stdio.h> ...

  8. 支撑Pinterest日均1000+次试验的A/B测试平台揭秘

    编者按:本文详细介绍了 Pinterest 内部A/B测试平台的搭建过程,对于无论是有技术能力和资源想要自建A/B测试系统的大公司,还是想在业务中引入第三方A/B测试方法和工具的中小公司都极具参考意义 ...

  9. 使用R语言将微信记录制作成词云(简洁)--情人节奥义

    一.导出并读入微信聊天记录     参照百度的方法,使用同步助手.安装同步助手--连接手机(安卓苹果均可)--点击"其他功能"--点击微信图标即可进入聊天记录导出界面(非常简单). ...

  10. sessionstorage,localstorage和cookie之间的区别以及各自的用法

    由于年前辞了自己的工作,年后又开始重新找工作,参加了好几次面试,居然都遇到了同样的面试题:sessionstorage,localstorage和cookie之间的是区别? 当然,在面试的时候答的也不 ...