- 浏览: 37799 次
- 性别:
- 来自: 北京
最新评论
-
andyshar:
请问如何在现有的hadoop环境中安装?
Hadoop集群监控系统Ambari安装 -
qingtangpaomian:
失败123 写道您好楼主: 我装好之后为啥老是最后一 ...
Hadoop集群监控系统Ambari安装 -
失败123:
您好楼主: 我装好之后为啥老是最后一步Cluster ...
Hadoop集群监控系统Ambari安装
转载请注明出处
摘要:枚举 , 减枝
一. 题目翻译
1. 描述:
下面是一个乘法竖式,如果用我们给定的那n个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式。
数字只能取代*,当然第一位不能为0,况且给定的数字里不包括0。
注意一下在美国的学校中教的“部分乘积”,第一部分乘积是第二个数的个位和第一个数的积,第二部分乘积是第二个数的十位和第一个数的乘积.
写一个程序找出所有的牛式。
2. 格式:
PROGRAM NAME: crypt1
INPUT FORMAT:
(file crypt1.in)
Line 1:数字的个数n。
Line 2:N个用空格分开的数字(每个数字都属于{1,2,3,4,5,6,7,8,9})。
OUTPUT FORMAT:
(file crypt1.out)
共一行,一个数字。表示牛式的总数。
SAMPLE INPUT:
5
2 3 4 6 8
SAMPLE OUTPUT:
1
4. 样例分析:
1. 题意理解(将问题分析清楚,大致用什么思路):
这道题目其实只需要枚举乘数与被乘数这五个数字,然后判断剩下的10个数字是否在输入的集合当中即可。不过在枚举的过程中需要进行减枝操作。
减枝操作的约束条件也比较简单,就是乘法中产生的两个中间数都是三位数。所以减枝的条件是被乘数(222)的百位和乘数(22)的十位相乘小于10,同时被乘数(222)的百位和乘数的个位相乘也小于10。
2. 具体实现(具体实现过程中出现的问题):
按照上述想法减枝即可,具体参考代码以及注释。
三. 代码
/* ID:fightin1 LANG:JAVA TASK:crypt1 */ import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; import java.util.HashSet; import java.util.Scanner; public class crypt1 { public static void main(String[] args) { try { Scanner in = new Scanner(new BufferedReader(new FileReader( "crypt1.in"))); PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter( "crypt1.out"))); int num = in.nextInt(); int[] nums = new int[num]; HashSet<Integer> contain = new HashSet<Integer>(); for (int i = 0; i < num; i++) { nums[i] = in.nextInt(); contain.add(nums[i]); } int cnt = 0; for (int i = 0; i < num; i++) { // 被乘数的百位 if (nums[i] != 9) { for (int j = 0; j < num; j++) { // 乘数的十位 if (nums[i] * nums[j] < 10) { for (int k = 0; k < num; k++) { // 乘数的个位 if (nums[i] * nums[k] < 10) { for (int l = 0; l < num; l++) { for (int m = 0; m < num; m++) { if (isC(nums[i], nums[j], nums[k], nums[l], nums[m], contain)) { // 判断中间值以及最终结果各位是否在给出的集合当中 cnt++; } } } } } } } } } pw.println(cnt); pw.close(); in.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static boolean isC(int i, int j, int k, int l, int m, HashSet<Integer> contain) { boolean result = true; int beichenshu = i * 100 + l * 10 + m; int temp1 = beichenshu * k; //中间值1 int temp2 = beichenshu * j; //中间值2 int temp3 = temp1 + temp2 * 10; //相乘的结果 if (contain.contains(temp3 / 1000) && temp1 < 1000 && temp2 < 1000 && temp3 < 10000) { for (int index = 0; index < 3; index++) { if (!contain.contains(temp1 % 10) || !contain.contains(temp2 % 10) || !contain.contains(temp3 % 10)) { result = false; break; } temp1 = temp1 / 10; temp2 = temp2 / 10; temp3 = temp3 / 10; } } else { result = false; } return result; } }
发表评论
-
USACO - 3.2.2 - Stringsobits
2012-08-23 16:02 811原创文章转载请注明 ... -
USACO - 3.2.1 - Factorials
2012-08-23 16:01 702原创文章转载请注明出处 摘要:动态规划 ... -
USACO - 3.1.6 - Stamps
2012-08-23 16:01 1038原创文章转载请注明 ... -
USACO - 3.1.5 - Contact
2012-08-23 16:01 914原创文章转载请注明出处 摘要:二叉树的应用 , ... -
USACO - 3.1.3 - Humble Numbers
2012-08-23 16:00 716原创文章转载请注明 ... -
USACO - 3.1.2 - Score Inflation
2012-08-22 10:05 908原创文章转载请注明出处 摘要:动态规划 ... -
USACO - 3.1.1 - Agri-Net
2012-08-22 10:04 859原创文章转载请注明出处 摘要:Prim算法 , ... -
USACO - 2.4.5 - Fractions to Decimals
2012-08-22 10:04 962原创文章转载请注明出处 摘要:模拟 , 数论 ... -
USACO - 2.4.4 - Bessie Come Home
2012-08-22 10:04 910原创文章转载请注明出处 摘要:Dijkstra ... -
USACO - 2.4.2 - Overfencing
2012-08-22 10:03 1005原创文章转载请注明 ... -
USACO - 2.4.1 - The Tamworth Two
2012-08-21 10:37 720原创文章转载请注明出处 摘要:模拟 ... -
USACO - 2.3.5 - Controlling Companies
2012-08-21 10:37 1305原创文章转载请注明出处 摘要:BFS , 模拟 ... -
USACO - 2.3.4 - Money Systems
2012-08-21 10:37 869原创文章转载请注明 ... -
USACO - 2.3.3 - Zero Sum
2012-08-21 10:36 746原创文章转载请注明出处 摘要:dfs , 枚举 ... -
USACO - 2.3.2 - Cow Pedigrees
2012-08-21 10:36 1010原创文章转载请注明 ... -
USACO - 2.3.1 - Longest Prefix
2012-08-20 20:31 1042原创文章转载请注明 ... -
USACO - 2.2.4 - Party Lamps
2012-08-20 20:30 1213原创文章转载请注明出处 摘要:枚举,三星 ... -
USACO - 2.2.3 - Runaround Numbers
2012-08-20 20:30 660原创文章转载请注明 ... -
USACO - 2.2.2 - Subset Sums
2012-08-20 20:30 697原创文章转载请注明出处 摘要:动态规划 ,0- ... -
USACO - 2.2.1 - Preface Numbering
2012-08-20 20:29 892原创文章转载请注明出处 摘要:模拟 , 数学分析 ...
相关推荐
USACO题目,Greedy Gift Givers
此c++代码实现了USACO上Bessie Come Home的问题,并运用了弗洛伊德算法
此C++程序是实现了USACO网站上的Magic Squares的问题。
该题来自USACO,为最长串的查找,此处方法很笨,有更好方法
USACO chapter one.May hope it useful to someone
USACO chapter two.Useful for beginners.
usaco 上的题目barn1,beads,calfflac,可到那里查看具体题目
Notes-USACO-2021-弹簧
USACO-Cpp
C-Usaco-Work:Usaco在C中的工作
USACO-实践USACO 培训网站的工作实践代码! 100% 工作 - 大部分优化 - 混合语言
这是USACO2001-2007月赛全集。 usaco是美国中学生的官方竞赛网站。是美国著名在线题库,专门为信息学竞赛选手准备。推荐直接阅读英语原文,既准确可靠又可提高英语水平。做题方式模拟正式比赛,采用标准测评机、文件...
资源包包括USACO 2001-2007年月赛的测试数据;usaco月赛十年题典(2000-2009),usaco月赛2002-2008题解。单独下载需资源分30分以上。为了方便编程爱好者,我这边统一下载打包。欢迎下载。
USACO培训网站 我为章节解决方案。 每个文件的多行USACO标识信息注释 第1章全部的解决方案 第2章全部的解决方案
USACO-TurtleCamera 该存储库包含我对USACO问题的所有解决方案。 CSE 199工作区目录将是我用来帮助开发USACO课程的主要目录。
usaco 2010-2011 nov news,喜欢usaco的朋友可以看看
我的USACO题解和程序
Java中的USACO金问题 YYMM 姓名 文件夹 笔记 代码 1812 美食 1812 牛适应性 1812 团队合作
自己写的代码,真是的还字少了不行。。。。。。。。。。。。。。。。。。。。。
USACO-Guide