HDOJ --1172
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<fstream>
#include<algorithm>
#define MAXN 105
using namespace std;
typedef struct{
int num[], a, b;
char str[];
void Switch(){
for(int i = ; i < ; i ++)
num[i] = str[i]-'';
}
}Gusse;
Gusse gg[MAXN];
int ans[], target[], flag, N;
bool Is_In_num(int i){
int num1[], num2[], cnt = ;
memset(num1, , sizeof(num1));
memset(num2, , sizeof(num2));
for(int j = ; j < ; j ++) num1[ans[j]]++;
for(int j = ; j < ; j ++) num2[gg[i].num[j]]++;
for(int j = ; j < ;j ++) if(num1[j] && num2[j]) cnt += min(num1[j], num2[j]);
return cnt == gg[i].a;
}
bool Is_Ok_num(int i){
int cnt = ;
for(int j = ; j < ; j ++)
if(ans[j] == gg[i].num[j]) cnt++;
return cnt == gg[i].b;
}
bool OK(){
for(int i = ; i < N; i ++)
if(!Is_In_num(i) || !Is_Ok_num(i)) return false;
return true;
}
void dfs(int cnt){
if(cnt == ){
if(OK()){
flag++;
for(int i = ; i < ; i ++) target[i] = ans[i];
}
return ;
}
for(int i = ; i < ; i ++){
if((cnt + i)){
ans[cnt] = i;
dfs(cnt+);
}
}
}
int main(){
freopen("in.c", "r", stdin);
while(~scanf("%d", &N) && N){
for(int i = ; i < N; i ++){
scanf("%s%d%d", gg[i].str, &gg[i].a, &gg[i].b);
gg[i].Switch();
}
flag = ;
dfs();
if(flag != ) printf("Not sure\n");
else{
for(int i = ; i < ; i ++) printf("%d", target[i]);
printf("%d\n", target[]);
}
}
return ;
}
HDOJ --1172的更多相关文章
- [HDOJ] 1172.猜数字
Problem Description 猜数字游戏是gameboy最喜欢的游戏之一.游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么.每 猜一个数,计算机都会告诉玩家猜对几个数 ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- HDOJ 1326. Box of Bricks 纯水题
Box of Bricks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDOJ 1004 Let the Balloon Rise
Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...
- hdoj 1385Minimum Transport Cost
卧槽....最近刷的cf上有最短路,本来想拿这题复习一下.... 题意就是在输出最短路的情况下,经过每个节点会增加税收,另外要字典序输出,注意a到b和b到a的权值不同 然后就是处理字典序的问题,当松弛 ...
- HDOJ(2056)&HDOJ(1086)
Rectangles HDOJ(2056) http://acm.hdu.edu.cn/showproblem.php?pid=2056 题目描述:给2条线段,分别构成2个矩形,求2个矩形相交面 ...
- 继续node爬虫 — 百行代码自制自动AC机器人日解千题攻占HDOJ
前言 不说话,先猛戳 Ranklist 看我排名. 这是用 node 自动刷题大概半天的 "战绩",本文就来为大家简单讲解下如何用 node 做一个 "自动AC机&quo ...
- 最近点对问题 POJ 3714 Raid && HDOJ 1007 Quoit Design
题意:有n个点,问其中某一对点的距离最小是多少 分析:分治法解决问题:先按照x坐标排序,求解(left, mid)和(mid+1, right)范围的最小值,然后类似区间合并,分离mid左右的点也求最 ...
随机推荐
- objective-c中的category
如果有如下一个类 #import <Foundation/Foundation.h> @interface Person : NSObject @property int age; @en ...
- html-----010
22 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...
- 关于SringMvc的参数的传递
* @RequestMapping这个注解代表要请求的方法 * value值表示请求的 方法名*********@RequestParam(value="username")代表请 ...
- switch case实现两个数的算术运算
方法一: package com.liaojianya.chapter1; import java.util.Scanner; public class SwitchDemo1 { public st ...
- LevelDB windows vs2013 c++编译和测试
引用: (src1) :http://download.csdn.net/detail/flyfish1986/8881263(这里有下载地址) (src2) :http://blog.csdn.ne ...
- POJ 3311 Hie with the Pie(DP状态压缩+最短路径)
题目链接:http://poj.org/problem?id=3311 题目大意:一个送披萨的,每次送外卖不超过10个地方,给你这些地方之间的时间,求送完外卖回到店里的总时间最小. Sample In ...
- centOS 6.4 mysql安装
1 直接安装 yum install mysql mysql-server 2 启动mysql /usr/bin/mysqld_safe --user=mysql & 启动时,如果出现Can' ...
- .NET MVC 依赖注入 来龙去脉
找了很久,找到一篇好文章,细读很有收获: 点击打开链接http://www.codeproject.com/Articles/560798/ASP-NET-MVC-Controller-Depende ...
- 【转】JavaScript闭包
摘自:JavaScript作用域闭包简述 使用外部变量的函数就是闭包,闭包可以给我们带来一些便利,就是可以在高等级的作用域使用低等级作用域中的变量: 例: var data = []; fun ...
- RESTheart安装与设置
作者:Maurizio Turatti, 最后在Feb 25, 2016时被 Andrea Di Cesare更新 安装与设置 1. 快速开始 Docker Vagrant Bare metal 2. ...