zoukankan      html  css  js  c++  java
  • hdu 1172(模拟、枚举)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1172

    思路:一开始看这道题的时候觉得没什么思路。。。暴搜吗????然后仔细分析了一下,觉得不行。。。然后网上搜了一下。。。orz。。。枚举啊!!!把最基本的给忽略了。。。好吧,就是枚举1000-9999之间的数,然后把每个数都与给定的几个数以及条件进行比较,如果都符合,那么就记录个数。。。最后,看有多少个数满足条件。。。题目的意思是说只有一个数满足条件。。。

    View Code
     1 #define _CRT_SECURE_NO_WARNINGS
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cstring>
     5 using namespace std;
     6 const int MAXN=100;
     7 struct Node{
     8     int a,b,c;
     9 }node[MAXN];
    10 
    11 bool Judge(int k,int number){
    12     int num1[5],num2[5];
    13     bool mark[5];
    14     for(int i=1;i<=4;i++)mark[i]=false;
    15 
    16     num1[1]=node[k].a/1000;
    17     num1[2]=(node[k].a%1000)/100;
    18     num1[3]=(node[k].a%100)/10;
    19     num1[4]=(node[k].a%10);
    20 
    21     num2[1]=number/1000;
    22     num2[2]=(number%1000)/100;
    23     num2[3]=(number%100)/10;
    24     num2[4]=(number%10);
    25 
    26     int count=0;
    27     for(int i=1;i<=4;i++){
    28         if(num1[i]==num2[i])count++;
    29     }
    30     if(count!=node[k].c)return false;
    31 
    32     count=0;
    33     for(int i=1;i<=4;i++){
    34         for(int j=1;j<=4;j++){
    35             if(num1[i]==num2[j]&&!mark[j]){
    36                 mark[j]=true;
    37                 count++;
    38                 break;
    39             }
    40         }
    41     }
    42     if(count!=node[k].b)return false;
    43 
    44     return true;
    45 }
    46 
    47 
    48 
    49 int main(){
    50     int n;
    51     while(~scanf("%d",&n)&&n){
    52         for(int i=1;i<=n;i++){
    53             scanf("%d%d%d",&node[i].a,&node[i].b,&node[i].c);
    54         }
    55         int count=0,result;
    56         bool flag=true;
    57         for(int num=1000;num<=9999;num++){
    58             for(int i=1;i<=n;i++){
    59                 flag=Judge(i,num);
    60                 if(!flag)break;
    61             }
    62             if(flag){
    63                 count++;
    64                 result=num;
    65             }
    66         }
    67         if(count==1){
    68             printf("%d\n",result);
    69         }else 
    70             printf("Not sure\n");
    71     }
    72     return 0;
    73 }
  • 相关阅读:
    nginx学习,下载、安装。使用:正向代理、反向代理、负载均衡
    idea一键导入所有包
    开源小工具-随机生成图片验证码
    记一次Nginx报错403(Permission denied)
    记一次swf视频转mp4经历
    enumerate函数
    filter函数过滤序列
    RetinaNet pytorch implement from scratch 03--Focal Loss
    [读论文]Weighted Boxes Fusion 代替NMS的result ensemble
    Pytorch使用autograd.function自定义op
  • 原文地址:https://www.cnblogs.com/wally/p/3040780.html
Copyright © 2011-2022 走看看