上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 66 下一页
摘要: 在做这个题的过程中有了解到了在java这么语言中,只有八种常量是直接分配内存的,其余对象均为引用类型,这样有效的避免了内存的浪费。不过还有一个问题,为什么这样写就不正确呢? if( b == BigInteger.ZREO ) {} 这个判定输入的b是否为零就不正确。 代码如下:import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { BigInteger sum, b; int T; Scanner in = new Sc. 阅读全文
posted @ 2011-08-14 11:08 沐阳 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 一道最基本的大数相加题,java果然强大啊。import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { BigInteger a, b; int T; Scanner in = new Scanner(System.in); T = in.nextInt(); for (int i = 1; i <= T; ++i) { System.out.println("Case" + " " 阅读全文
posted @ 2011-08-14 09:53 沐阳 阅读(2441) 评论(0) 推荐(0) 编辑
摘要: 汉诺塔IIITime Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3657Accepted Submission(s): 1668Problem Description约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到右边的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。现在我们改变游戏的玩法,不允许直接从最左(右)边移到最右(左) 阅读全文
posted @ 2011-08-12 21:49 沐阳 阅读(3923) 评论(0) 推荐(0) 编辑
摘要: 首先要说明的一点就是两种搜索的过程都是一个枚举的过程,无论如何都可以将其视为一种暴力求解的过程,当然这个过程中是可以进行剪枝的,即人为的为其判断进行优化,快速舍弃那些不可能的解,最经典要属奇偶剪枝了,这时符合逻辑的因为起点和重点确实存在这种关系,但是这还是不能改变这一搜索过程是近乎盲目的。好了,了解到这两种搜索的属性,我们不禁要思考在什么情况下要用到这两种搜索方式呢?首先因明确两种搜索方式只是利用了搜索过程中的严谨性,即对人而言大量的组合性运算极容易出错(可能在一个迷宫里,你走了20步,拐了3个弯你就不知道自己是打哪来的了),而计算机不会,只要你愿意,它能记录下所有的信息,这时计算机运行算法. 阅读全文
posted @ 2011-08-12 15:58 沐阳 阅读(466) 评论(1) 推荐(0) 编辑
摘要: 首先解释下这题的名字,下沙是个地名,面的是一种公共交通工具,小是个形容词...... 对于这题那便是DFS纯暴力了,每次先到达不同的第一站,再扩展下去到第二站... 暴力枚举每一种可能,最后保留最小值。 代码如下:#include <cstdio>#include <cstring>#include <cstdio>using namespace std;int map[35][35], N, K, obj[35], RK;void DFS( int pos, int step, int dis, int &ans ){ if( step== RK 阅读全文
posted @ 2011-08-12 15:09 沐阳 阅读(533) 评论(0) 推荐(1) 编辑
摘要: 可恶的模拟题,刚进入的那一步竟然不算,贡献了多次WA啊,只要注意这点应该就木有问题了。#include <cstring>#include <cstdlib>#include <cstdio>using namespace std;int N, M, sx, sy;char map[15][15], hash[15][15];bool out( int x, int y ){ if( x< 1|| x> N|| y< 1|| y> M ) { return true; } return false;}bool DFS( int &am 阅读全文
posted @ 2011-08-12 14:39 沐阳 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 给定一个非递减的序列,要求从这些序列中找出一系列的数相加等于要求的数。这题的主要任务就是怎样去重。 现分析如下: 对于给定的两个非递减序列,A, B, C, D 用来映射各个数的位置,2(A) 1(B) 1(C) 1(D) 以及 2(A) 2(B) 2(C) 1(D), 要求求出和为3的表达式。 显然前面的序列递归下去会首先出现A+ B的组合,由于此时A+ B已经等于了3,所以递归就会回溯,此时会形成A+ C的组合,按照正常人的思维,这个解肯定是不能够取的,但是计算机有这么聪明吗?显然还是要我们来设计各种复杂的判断...... 转回正题,我们在递归时有一个属性就是递归的层数,而该题的求解就会. 阅读全文
posted @ 2011-08-12 11:35 沐阳 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 简单DFS,需要注意的是最后的那个数加上一要是个素数。 代码如下:#include <cstring>#include <cstdlib>#include <cstdio>#include <cmath>using namespace std;int hash[25], rec[25], cnt;bool isprime( int x ){ if( x<= 1 ) return false; if( x== 2 ) return true; int lim= sqrt( x ); for( int i= 2; i<= lim; ++i 阅读全文
posted @ 2011-08-11 21:14 沐阳 阅读(191) 评论(0) 推荐(0) 编辑
摘要: Accepted NecklaceTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1027Accepted Submission(s): 407Problem DescriptionI have N precious stones, and plan to use K of them to make a necklace for my mother, but she won't accept a necklace which is to 阅读全文
posted @ 2011-08-11 20:38 沐阳 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 简单DFS,代码如下:#include <cstdio>#include <cstring>#include <cstdlib>using namespace std;char word[10000][100];int hash[10000];void DFS( char *w, int cnt, int &ans ){ if( w[ strlen( w )- 1 ]== 'm' ) { ans= 1; return; } for( int i= 0; i< cnt; ++i ) { if( !hash[i]&& 阅读全文
posted @ 2011-08-11 16:02 沐阳 阅读(257) 评论(0) 推荐(0) 编辑
上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 66 下一页