关闭

hdu1272 java 穷举法

375人阅读 评论(0) 收藏 举报

import java.util.Scanner;


public class P1172 {

 public static void main(String[] args) {
  Scanner sc=new Scanner(System.in);
  while (sc.hasNext()) {
   int n=sc.nextInt();
   if(n==0){
    return;
   }
   int a[]=new int[n+1];
   int b[]=new int[n+1];
   int c[]=new int[n+1];
   for(int i=1;i<=n;i++){
    a[i]=sc.nextInt();
    b[i]=sc.nextInt();
    c[i]=sc.nextInt();
   }
   int count=0;
   int result = 0;
   boolean flag = false;
   for(int i=1000;i<=9999;i++){
    for(int j=1;j<=n;j++){
     flag=judge(i,a[j],b[j],c[j]);
     if(!flag){
      break;
     }
    }
    if (flag) {
     count++;
     result = i;
    }
   }
   if(count==1){
    System.out.println(result);
   }else{
    System.out.println("Not sure");
   }
  }
  
 }

 private static boolean judge(int number, int a, int b, int c) {
  int num1[]=new int[5];
  int num2[]=new int[5];
  boolean mark[]=new boolean[5];
  for(int i=0;i<=4;i++){
   mark[i]=false;
  }
  num1[1]=number/1000;
  num1[2]=(number/100)%10;
  num1[3]=(number/10)%10;
  num1[4]=(number%10);
  
  num2[1]=a/1000;
  num2[2]=(a/100)%10;
  num2[3]=(a/10)%10;
  num2[4]=(a%10);
  int count=0;
  for(int i=1;i<=4;i++){
   if(num1[i]==num2[i]){
    count++;
   }
  }
  if(count!=c){
   return false;
  }
  count=0;
  for(int i=1;i<=4;i++){
   for(int j=1;j<=4;j++){
    if(num1[i]==num2[j]&&!mark[j]){
     mark[j]=true;
     count++;
     break;
    }
   }
  }
  if(count!=b){
   return false;
  }
  return true;
 }
 
}

0
0
查看评论

Java穷举法例子

一、甲 、乙、丙 三位球迷分别预测进入半决赛的四队A、B、C、D的名次如下: 甲:A 第一名 、B 第二名 乙:C 第一名 、D 第三名 丙:D第一名 、 A 第三名 设比赛结果,四队互不相同,并且甲乙丙的预测各对一半,求A、B、C、D队的名次? /* * 采用穷举法令变量a,b,c,...
  • GHQLYJ
  • GHQLYJ
  • 2017-07-23 21:15
  • 333

背包问题之穷举法

    最近复习了一下算法,觉得背包问题最具代表性。可以用大多数通用的算法(穷举,动规,回溯,分枝限界)来解决。因此将最近的笔记整理一下,发到自己的博客上。         ...
  • liangneo
  • liangneo
  • 2009-08-16 16:57
  • 3697

java穷举法小案例

最近几天伤病没有更新  今天好点 看了一下基础的算法  现在简单更新一下 ——穷举法
  • sun_Hmtl
  • sun_Hmtl
  • 2017-10-19 21:13
  • 141

论穷举法破解0到6位数登录密码的可行性

0到6位数密码含数字,字母大小写,英文符号有537412247190种可能性(千亿数量级),3998.410GB。 在局域网网速,个人台式电脑情况下,java代码(httpclient)访问路由器网址一次要414ms(如果只访问头信息的话会快10倍以前)。 单线程情况下就算把数据都放入内存的情况...
  • Wewon_real
  • Wewon_real
  • 2017-10-22 21:21
  • 349

js穷举法获取密码

function FStr(oStr,Num){      for(var i=0 ;i         var x=i          document.write(i+...
  • gysea123321
  • gysea123321
  • 2017-04-09 23:38
  • 178

hdu 1272 小希的迷宫(并查集/附爆栈的原因)

小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 33194  &#...
  • su20145104009
  • su20145104009
  • 2015-07-21 09:49
  • 3231

HDU1272 小希的迷宫 (并查集)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 注意问题: 1、不能成环,即每次输入的两个数的根节点不能相同; 2、只有一个迷宫,即根节点数目唯一; 3、注意当只输入“0 0” 时要输出"Yes"; 4、状态压...
  • yzj577
  • yzj577
  • 2014-07-29 17:08
  • 726

HDU1272 小希的迷宫【并查集】

小希的迷宫Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 57115  ...
  • tigerisland45
  • tigerisland45
  • 2017-02-26 16:19
  • 654

唉,Python穷举法和二分查找法的学习

是的,我现在才开始学算法,31岁了,学了2年的Python。努力呗。 Background: 寻找任意非负数的平方根。 平方根-http://www.bing.com/knows/search?q=%E5%B9%B3%E6%96%B9%E6%A0%B9&mkt=zh-cn&FOR...
  • voostar
  • voostar
  • 2015-06-25 23:32
  • 1068

C语言穷举法

使用C语言穷举法解决求总值问题。 1、一只猴子采摘了一堆苹果,第一天吃一半的苹果,猴子觉得还不够,于是再吃了一个。第二天也是这样。一直到吃了九天,第十天就只剩下一个了。请问猴子一共采摘了多少苹果。 分析:解决此类问题有两个方法。一种就是我们较为容易想到的逆推法。还有一种就是穷举法。 逆推法: #...
  • u012806757
  • u012806757
  • 2016-04-04 16:00
  • 1808
    个人资料
    • 访问:151905次
    • 积分:3059
    • 等级:
    • 排名:第13505名
    • 原创:154篇
    • 转载:4篇
    • 译文:0篇
    • 评论:5条
    博客专栏