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. localToLocal坐标变换

    localToLocal坐标变换 $(function() { init(); }); // localtoLocal var stage, arm, handler; function init(e ...

  2. 部署JForum 2.1.9遇到的问题及解决方法

    1. 主要问题是出在连接数据库和创建表阶段,当我们配置好MySQL的各种参数后,创建表的时候会报错: 原因:主要是由于建表的SQL语句和MySQL的版本不一致导致的. 解决办法:简单来说,在MYSQL ...

  3. Codeforces758B

    B. Blown Garland time limit per test:1 second memory limit per test:256 megabytes input:standard inp ...

  4. flask蓝图的使用

    首先,我对蓝图的理解相对通俗,就是觉得蓝图对于视图方法模块化.大项目协同开发过程中的一个很好的工具. 1.下图是我们通常情况下使用的项目组织结构

  5. 条形码--JsBarcode

    介绍一下在GitHub生成条形码的js插件→JsBarcode 支持的条形码: 条码支持的有: CODE128  CODE128 (自动模式切换)  CODE128 A/B/C (强制模式)EAN  ...

  6. LPC4370使用学习:GPIO的引脚功能使用,和12864OLED模拟I2C驱动

    一: 手中有块LPC4370的开发板,因为便宜,所以引脚引出的不多,而且只有基本的底板资源驱动代码和例程. 看着手册和例程看了老半天,写程序写了半天,结果GPIO老是驱动不起来,因为引脚配置寄存器中有 ...

  7. 第七届蓝桥杯javaB组真题解析-分小组(第四题)

    题目 /* 分小组 9名运动员参加比赛,需要分3组进行预赛. 有哪些分组的方案呢? 我们标记运动员为 A,B,C,... I 下面的程序列出了所有的分组方法. 该程序的正常输出为: ABC DEF G ...

  8. windows下安装redis以及redis扩展,设置redis为windows自启服务

    windows下安装reids windows下redis下载地址:https://github.com/MSOpenTech/redis/releases. 启动redis服务:在redis目录下启 ...

  9. assign和weak的深层次解析

    我们知道在设置类的属性时,控件一般中weak,对象一般用strong,数据类型一般使用assign,其中weak和assign都不会使计数器增加,那为什对象不可以使用assign呢? weak与ass ...

  10. TypeScript和JavaScript哪种语言更先进

    TypeScript和JavaScript哪种语言更先进 近两年来最火爆的技术栈毫无争议的是JavaScript,随着ES6的普及,不管是从前端的浏览器来看,还是后端的NodeJS场景,JavaScr ...