摘要: 题目描述: Every positive number can be presented by the exponential form.For example, 137 = 2^7 + 2^3 + 2^0。 Let's present a^b by the form a(b).Then 137 is presented by 2(7)+2(3)+2(0). Since 7 = 2^2 + 2 + 2^0 and 3 = 2 + 2^0 , 137 is finally presented by 2(2(2)+2 +2(0))+2(2+2(0))+2(0). Given a posit 阅读全文
posted @ 2012-04-05 18:10 从此醉 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 同样的BFS,这种方法相对内存占用较小。复制别人的代码,学习了!题目描述:sun所在学校每年都要举行电脑节,今年电脑节有一个新的趣味比赛项目叫做闯迷宫。sun的室友在帮电脑节设计迷宫,所以室友就请sun帮忙计算下走出迷宫的最少步数。知道了最少步数就可以辅助控制比赛难度以及去掉一些没有路径到达终点的map。比赛规则是:从原点(0,0)开始走到终点(n-1,n-1),只能上下左右4个方向走,只能在给定的矩阵里走。输入:输入有多组数据。每组数据输入n(0<n<=100),然后输入n*n的01矩阵,0代表该格子没有障碍,为1表示有障碍物。注意:如果输入中的原点和终点为1则这个迷宫是不可达的 阅读全文
posted @ 2012-04-05 15:04 从此醉 阅读(1021) 评论(0) 推荐(0) 编辑
摘要: http://ac.jobdu.com/problem.php?id=1335转自:www.acmerblog.com还有另一题,类似的http://ac.jobdu.com/problem.php?id=1365建议用BFS实现较为方便。题目描述:sun所在学校每年都要举行电脑节,今年电脑节有一个新的趣味比赛项目叫做闯迷宫。sun的室友在帮电脑节设计迷宫,所以室友就请sun帮忙计算下走出迷宫的最少步数。知道了最少步数就可以辅助控制比赛难度以及去掉一些没有路径到达终点的map。比赛规则是:从原点(0,0)开始走到终点(n-1,n-1),只能上下左右4个方向走,只能在给定的矩阵里走。输入:输入有 阅读全文
posted @ 2012-04-04 14:44 从此醉 阅读(705) 评论(0) 推荐(1) 编辑
摘要: 输入: 每组测试数据可能有多组输入,对于每一组输入,输入的第一行包括两个整数S(1 <= S <= 1000)和C(1<=C<=100),S代表地铁的总空间的大小,C代表v一共存储的炸药的个数。接下来的C行每行包括两个1到100(包括1和100)的整数,分别表示这个炸药所需要的空间以及它所能产生的破坏力。输出: 对于每组输入,输出只包括一行,这一行只包含一个整数,表示在地铁的有限的空间里转载选出的炸药,能产生的最大的破坏力。如果每个炸药的体积都很大,地铁的空间连一个炸药都装不下,输出0即可。样例输入:70 371 10069 11 2样例输出:3#include < 阅读全文
posted @ 2012-04-03 21:18 从此醉 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 题目描述:编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如下的先序遍历字符串:ABC##DE#G##F###其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入:输入包括1行字符串,长度不超过100。输出:可能有多组测试数据,对于每组数据,输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。每个输出结果占一行。样例输入:abc##de#g##f###样例输出:c b e g d f a 此题的关键就是在于建树。设置一个全局变量cnt递增,递归建树。#include #incl 阅读全文
posted @ 2012-04-03 21:11 从此醉 阅读(1382) 评论(0) 推荐(0) 编辑
摘要: 有的时候,自己写过的代码,自己再看时就不认识了。有必须要记录下来。把数的排序转换为字符串的排序。原来用sort函数也可以对字符串排序。对C++的库函数不是很熟悉~~~sort(a,a+n); //两个参数分别为待排序数组的首地址和尾地址当然还可以传第三个参数,自定义的比较函数。#include <string>#include <iostream>#include <algorithm>using namespace std;bool pare(string a,string b){ if(a.size() > b.size()) return fal 阅读全文
posted @ 2012-04-03 14:05 从此醉 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值。 如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分、3分、4分即可。输入: 有多组数据,对于每组数据,首先是要求凑成的邮票总值M,M<100。然后是一个数N,N〈20,表示有N张邮票。接下来是N个正整数,分别表示这N张邮票的面值,且以升序排列。输出: 对于每组数据,能够凑成总值M的最少邮票张数。若无解,输出0。样例输入:1051 3 3 3 4样例输出:3import java.io.BufferedInputStream;import java.util.Arrays;import 阅读全文
posted @ 2012-04-02 11:21 从此醉 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 题目描述:在某条线路上有N个火车站,有三种距离的路程,L1,L2,L3,对应的价格为C1,C2,C3.其对应关系如下:距离s 票价0<S<=L1 C1L1<S<=L2 C2L2<S<=L3 C3输入保证0<L1<L2<L3<10^9,0<C1<C2<C3<10^9。每两个站之间的距离不超过L3。当乘客要移动的两个站的距离大于L3的时候,可以选择从中间一个站下车,然后买票再上车,所以乘客整个过程中至少会买两张票。现在给你一个 L1,L2,L3,C1,C2,C3。然后是A B的值,其分别为乘客旅程的起始站和终点站。 阅读全文
posted @ 2012-04-01 18:35 从此醉 阅读(674) 评论(0) 推荐(0) 编辑
摘要: import java.io.BufferedInputStream;import java.util.Scanner;public class Prim { static int[][] arr; static boolean flag[]; //用来标记节点i是否被覆盖 static int n; static int sum; static final int maxInt = Integer.MAX_VALUE; public static void main(String[] args) { Scanner s = new Scan... 阅读全文
posted @ 2012-03-29 12:42 从此醉 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 题目描述:一个整数总可以拆分为2的幂的和,例如:7=1+2+47=1+2+2+27=1+1+1+47=1+1+1+2+27=1+1+1+1+1+27=1+1+1+1+1+1+1总共有六种不同的拆分方式。再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。用f(n)表示n的不同拆分的种数,例如f(7)=6.要求编写程序,读入n(不超过1000000),输出f(n)%1000000000。输入:每组输入包括一个整数:N(1<=N<=1000000)。输出:对于每组数据,输出f(n)%1000000000。样例输入:7样例输出:6一、 阅读全文
posted @ 2012-03-29 12:19 从此醉 阅读(1334) 评论(0) 推荐(0) 编辑