注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

fudq's AC Road

何以解忧,唯有AC!

 
 
 

日志

 
 

hdu 1172  

2012-03-25 20:15:49|  分类: ACM-hdu |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://acm.hdu.edu.cn/showproblem.php?pid=1172

模拟题,直接枚举,暴力解决

#include<iostream>
#include<math.h>
#include<string.h>
#include<queue>
#include<string>
#include<algorithm>
#include<stdio.h>
using namespace std;

bool make1(int a,int b,int num)  //猜对几个数字
{
 int p[5],q[5],c[5];
 int i,j,count;
 i=0;
 for(i=0;i<4;i++)
 {
  p[i]=a%10;
  a/=10;
  q[i]=b%10;
  b/=10;
  c[i]=0;
 }
 count=0;
 for(i=0;i<4;i++)
  for(j=0;j<4;j++)
   if(c[j]==0 && p[i]==q[j])
   {
    count++;
    c[j]=1;
    break;
   }
 if(num==count)
  return true;
 else
  return false;
}

bool make2(int a,int b,int num)  //几个数字在正确位置上
{
 int i,count,p[5],q[5];
 i=0;count=0;
 while(a)
 {
  p[i++]=a%10;
  a/=10;
 }
 i=0;
 while(b)
 {
  q[i++]=b%10;
  b/=10;
 }
 for(i=0;i<4;i++)
   if(p[i]==q[i])
    count++;
 if(count==num)
  return true;
 else
  return false;
}

int main()
{
#ifndef ONLINE_JUDGE
    freopen("testin.txt","r",stdin);
 //freopen("testout.txt","w",stdout);
#endif
 int a[101],b[101],c[101];
    int i,j,n,res,temp;
 while(scanf("%d",&n)!=EOF && n)
 {
  for(i=0;i<n;i++)
   scanf("%d%d%d",&a[i],&b[i],&c[i]);
  res=0;
  for(i=1000;i<=9999;i++)
  {
   for(j=0;j<n;j++)
   {
    if(!make1(i,a[j],b[j]))
     break;
    if(!make2(i,a[j],c[j]))
     break;
   }
   if(j==n)
   {
    res++;
    temp=i;
   }
   if(res>1)
    break;
  }
  if(res==1)
   printf("%d\n",temp);
  else
   printf("Not sure\n");
 }
 return 0;
}

  评论这张
 
阅读(289)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018