05 2013 档案

摘要:1 /*小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。 2 3 小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。 4 5 你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。 6 7 本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。 8 9 输入:10 两个正整数,表示每种包装中糖的颗数(都不多于1000)11 12 要求输出:13 一个正整数,表示最大不能买到的糖数14 15 不需要考虑无解的情况... 阅读全文
posted @ 2013-05-31 21:42 萧凡客 阅读(465) 评论(0) 推荐(0) 编辑
摘要:1 /*标题: 振兴中华 2 3 小明参加了学校的趣味运动会,其中的一个项目是:跳格子。 4 5 地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg) 6 7 从我做起振 8 我做起振兴 9 做起振兴中10 起振兴中华11 12 13 比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。14 15 16 要求跳过的路线刚好构成“从我做起振兴中华”这句话。17 18 请你帮助小明算一算他一共有多少种可能的跳跃路线呢?19 20 答案是一个整数,请通过... 阅读全文
posted @ 2013-05-31 20:02 萧凡客 阅读(1994) 评论(0) 推荐(1) 编辑
摘要:“数独”是当下炙手可热的智力游戏。一般认为它的起源是“拉丁方块”,是大数学家欧拉于1783年发明的。 如图[1.jpg]所示:6x6的小格被分为6个部分(图中用不同的颜色区分),每个部分含有6个小格(以下也称为分组)。 开始的时候,某些小格中已经填写了字母(ABCDEF之一)。需要在所有剩下的小格中补填字母。 全部填好后,必须满足如下约束: 1. 所填字母只允许是A,B,C,D,E,F 中的某一个。 2. 每行的6个小格中,所填写的字母不能重复。 3. 每列的6个小格中,所填写的字母不能重复。 4. 每个分组(参见图中不同颜色表示)包含的6个小格中,所填写的字母不能重复。 为了表示上的方便,. 阅读全文
posted @ 2013-05-29 21:30 萧凡客 阅读(2623) 评论(0) 推荐(0) 编辑
摘要:脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。这4种核苷酸可以分别记为:A、G、C、T。DNA携带的遗传信息可以用形如:AGGTCGACTCCA.... 的串来表示。DNA在转录复制的过程中可能会发生随机的偏差,这才最终造就了生物的多样性。为了简化问题,我们假设,DNA在复制的时候可能出现的偏差是(理论上,对每个碱基被复制时,都可能出现偏差): 1. 漏掉某个脱氧核苷酸。例如把 AGGT 复制成为:AGT2. 错码,例如把 AGGT 复制成了:AGCT3. 重码,例如把 AGGT 复制成了. 阅读全文
posted @ 2013-05-29 21:22 萧凡客 阅读(1475) 评论(4) 推荐(1) 编辑
摘要:AGTCTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 7934Accepted: 3147DescriptionLet x and y be two strings over some finite alphabet A. We would like to transform x into y allowing only operations given below:Deletion: a letter in x is missing in y at a corresponding position.Insertion: a 阅读全文
posted @ 2013-05-29 21:12 萧凡客 阅读(289) 评论(0) 推荐(0) 编辑
摘要:表达式求值时间限制:3000 ms | 内存限制:65535 KB难度:4 描述ACM队的mdd想做一个计算器,但是,他要做的不仅仅是一计算一个A+B的计算器,他想实现随便输入一个表达式都能求出它的值的计算器,现在请你帮助他来实现这个计算器吧。比如输入:“1+2/4=”,程序就输出1.50(结果保留两位小数)输入第一行输入一个整数n,共有n组测试数据(n<10)。每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式,每个运算式都是以“=”结束。这个表达式里只包含+-*/与小括号这几种符号。其中小括号可以嵌套使用。数据保证输入的操作数中不会出现负数。数据保证除数不会为0输 阅读全文
posted @ 2013-05-29 20:32 萧凡客 阅读(406) 评论(0) 推荐(0) 编辑
摘要:郁闷的C小加(二)时间限制:1000 ms | 内存限制:65535 KB难度:4 描述聪明的你帮助C小加解决了中缀表达式到后缀表达式的转换(详情请参考“郁闷的C小加(一)”),C小加很高兴。但C小加是个爱思考的人,他又想通过这种方法计算一个表达式的值。即先把表达式转换为后缀表达式,再求值。这时又要考虑操作数是小数和多位数的情况。输入第一行输入一个整数T,共有T组测试数据(T<10)。每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式,每个运算式都是以“=”结束。这个表达式里只包含+-*/与小括号这几种符号。其中小括号可以嵌套使用。数据保证输入的操作数中不会出现负数并 阅读全文
posted @ 2013-05-29 20:07 萧凡客 阅读(3241) 评论(0) 推荐(0) 编辑
摘要:一个算术表达式,含有数字(为简化处理,数字只有一位),运算符:+、-、*,以及括号,求表达式的值。给出的表达式是一般我们见到的中缀表达式,即运算符位于操作数之间。如果把中缀表达式转化为后缀表达式,那么对后缀表达式求值将会很方便。后缀表达式特点: 1.操作符位于操作数之后; 2.没有括号; 3.运算符没有优先级。中缀表达式转化为后缀表达式的步骤: 1.初始化一个空操作符栈和空结果字符串; 2.从前到后读取中缀表达式的字符,如果是操作数,加到结果字符串后面; 3.如果是操作符,分两种情况入栈: a.如果待入栈操作符优先级大于栈顶操作符,直接入栈; b.如果待入栈操作符优先级... 阅读全文
posted @ 2013-05-29 17:29 萧凡客 阅读(1051) 评论(0) 推荐(0) 编辑
摘要:足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。 假设有甲、乙、丙、丁四个球队。根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表: 甲 乙 丙 丁 甲 - 0.1 0.3 0.5乙 0.9 - 0.7 0.4 丙 0.7 0.3 - 0.2丁 0.5 0.6 0.8 - 数据含义:甲对乙的取胜概率为0.1,丙对乙的胜率为0.3,... 现在要举行一次锦标赛。双方抽签,分两个组比,获胜的两个队再争夺冠军。(参见【1.jpg】) 请你进行10万次模拟,计算出甲队夺冠的概率。 注意: 请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分! 1 #include<std 阅读全文
posted @ 2013-05-28 20:35 萧凡客 阅读(529) 评论(0) 推荐(0) 编辑
摘要:描述南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人到底有多少军功就是一个比较困难的事情,军师小工的任务就是在南将军询问他某个人的军功的时候,快速的报出此人的军功,请你编写一个程序来帮助小工吧。假设起始时所有人的军功都是0.输入只有一组测试数据。每一行是两个整数T和M表示共有T条指令,M个士兵。(1<=T,M<=1000000)随后的T行,每行是一个指令。指令分为两种:一种形如ADD 100 500 55 阅读全文
posted @ 2013-05-28 20:33 萧凡客 阅读(204) 评论(0) 推荐(0) 编辑
摘要:士兵杀敌(二)时间限制:1000 ms | 内存限制:65535 KB难度:5描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1<N<1000000),M表示指令的条数。(1<M<100000)随后的一行是N个整数,ai表示第i号士兵杀敌数目。(0<=ai<=100)随后的M行每行是一条 阅读全文
posted @ 2013-05-27 21:12 萧凡客 阅读(488) 评论(0) 推荐(1) 编辑
摘要:一、插点问线,如“士兵杀敌(二)”要向上修改,向下统计;一般是修改某个位置上的值,查找的是一段区间的和;二、插线问点,如“士兵杀敌(四)”要向上统计,向下修改;一般是修改一段区间的值,查找的是某个位上的值;下图中的C数组就是树状数组,a数组是原数组可以发现这些规律C1=a1C2=a1+a2C3=a3C4=a1+a2+a3+a4C5=a5……C8=a1+a2+a3+a4+a5+a6+a7+a8……C2^n=a1+a2+….+a2^n对于序列a,一个(树状)数组C定义C[i] = a[i – 2^k + 1] + … + a[i],k为i在二进制下末尾0的个数。以上可以看出:设节点编号为i,那么这 阅读全文
posted @ 2013-05-27 21:00 萧凡客 阅读(193) 评论(2) 推荐(0) 编辑
摘要:Problem DescriptionWe all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long time. But recently, it is reported that he hides in Hang Zhou of China! “Oh, God! How terrible! ”Don’t be so afraid, guys. Although he hides in a cave of Hang Zhou, he dares not to go out. Laden 阅读全文
posted @ 2013-05-27 20:41 萧凡客 阅读(578) 评论(0) 推荐(0) 编辑
摘要:hdu 1938Problem DescriptionPeople in Silverland use square coins. Not only they have square shapes but also their values are square numbers. Coins with values of all square numbers up to 289 (=17^2), i.e., 1-credit coins, 4-credit coins, 9-credit coins, ..., and 289-credit coins, are available in Si 阅读全文
posted @ 2013-05-27 19:53 萧凡客 阅读(254) 评论(0) 推荐(0) 编辑
摘要:Problem Description"Well, it seems the first problem is too easy. I will let you know how foolish you are later." feng5166 says."The second problem is, given an positive integer N, we define an equation like this:N=a[1]+a[2]+a[3]+...+a[m];a[i]>0,1<=m<=N;My question is how man 阅读全文
posted @ 2013-05-26 22:01 萧凡客 阅读(193) 评论(0) 推荐(0) 编辑
摘要:1 import java.math.*; 2 3 public class Huangjinfenge { 4 5 public static void main(String[] args) { 6 7 BigDecimal a[] = new BigDecimal[2005]; 8 a[0]=BigDecimal.valueOf(1); 9 a[1]=BigDecimal.valueOf(2);10 for(int i=2;i<=2000;i++)11 {12 ... 阅读全文
posted @ 2013-05-25 23:52 萧凡客 阅读(700) 评论(5) 推荐(0) 编辑
摘要:描述himdd最近很想玩游戏,于是他找到acmj和他一起玩,游戏是这样的:有一堆石子,两个人轮流从其中取走一定的石子,取走最后所有石子的人为赢家,不过得遵循如下规则:1.第一次取不能取完,至少取1颗.2.从第二次开始,每个人取的石子数至少为1,至多为对手刚取的石子数的两倍。himdd事先想知道自己会不会赢,你能帮帮他吗?(每次himdd先手)输入有多组测试数据,每组有一个整数n(2<=n<2^64);输出himdd会赢输出Yes,否则输出No;样例输入256样例输出NoNoYes 1 2 #include<stdio.h> 3 #include<stdlib.h& 阅读全文
posted @ 2013-05-25 10:53 萧凡客 阅读(262) 评论(0) 推荐(0) 编辑
摘要:描述小王喜欢与同事玩一些小游戏,今天他们选择了玩取石子。游戏规则如下:共有N堆石子,已知每堆中石子的数量,并且规定好每堆石子最多可以取的石子数(最少取1颗)。两个人轮流取子,每次只能选择N堆石子中的一堆,取一定数量的石子(最少取一个),并且取的石子数量不能多于该堆石子规定好的最多取子数,等哪个人无法取子时就表示此人输掉了游戏。假设每次都是小王先取石子,并且游戏双方都绝对聪明,现在给你石子的堆数、每堆石子的数量和每堆石子规定的单次取子上限,请判断出小王能否获胜。输入第一行是一个整数T表示测试数据的组数(T<100)每组测试数据的第一行是一个整数N(1<N<100),表示共有N堆 阅读全文
posted @ 2013-05-25 10:06 萧凡客 阅读(345) 评论(0) 推荐(0) 编辑
摘要:有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。这种情况下是颇为复杂的。我们用(ak,bk)(ak ≤ bk ,k=0,1,2,……,n)表示两堆物品的数量并称其为局势,如果甲面对(0,0),那么甲已经输了,这种局势我们称为奇异局势。前几个奇异局势是:(0,0)、(1,2)、(3,5)、(4,7)、(6,10)、(8,13)、(9,15)、(11,18)、(12,20)。我们可以知道,后面的奇异局势可以通过一轮特殊的取法变为更低的奇异局势!可以看出,a0=b0=0,ak是未在前面出现过的最小自然数,而 bk= ak + k,奇异 阅读全文
posted @ 2013-05-25 09:49 萧凡客 阅读(309) 评论(0) 推荐(0) 编辑
摘要:取石子(一)时间限制:3000ms | 内存限制:65535KB难度:2描述一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子。游戏的规则是这样的。设有一堆石子,数量为N(1<=N<=1000000),两个人轮番取出其中的若干个,每次最多取M个(1<=M<=1000000),最先把石子取完者胜利。我们知道,TT和他/她的室友都十分的聪明,那么如果是TT先取,他/她会取得游戏的胜利么?输入第一行是一个正整数n表示有n组测试数据输入有不到1000组数据,每组数据一行,有两个数N和M,之间用空格分隔。输出对于每组数据,输出一行 阅读全文
posted @ 2013-05-24 18:25 萧凡客 阅读(151) 评论(0) 推荐(0) 编辑
摘要:方法步骤1: 将所有终结位置标记为必败点(P点);步骤2: 将所有一步操作能进入必败点(P点)的位置标记为必胜点(N点)步骤3:如果从某个点开始的所有一步操作都只能进入必胜点(N点) ,则将该点标记为必败点(P点) ;步骤4: 如果在步骤3未能找到新的必败(P点),则算法终止;否则,返回到步骤2。今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。 我们约定: 每个人从盒子中取出的球的数目必须是:1,3,7或者8个。 轮到某一方取球时不能弃权! A先取球,然后双方交替取球,... 阅读全文
posted @ 2013-05-24 18:13 萧凡客 阅读(568) 评论(0) 推荐(0) 编辑
摘要:尼姆博奕(Nimm Game):有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况最有意思,它与二进制有密切关系,我们用(a,b,c)表示某种局势,首先(0,0,0)显然是奇异局势,无论谁面对奇异局势,都必然失败。第二种奇异局势是(0,n,n),只要与对手拿走一样多的物品,最后都将导致(0,0,0)。仔细分析一下,(1,2,3)也是奇异局势,无论对手如何拿,接下来都可以变为(0,n,n)的情形。 计算机算法里面有一种叫做按位模2加,也叫做异或的运算,我们用符号(+)表示这种运算。这种运算和一般加法不同的一点是1+1=0。先看(1,.. 阅读全文
posted @ 2013-05-24 18:06 萧凡客 阅读(174) 评论(0) 推荐(0) 编辑
摘要:机器人II时间限制:1000 ms | 内存限制:65535 KB难度:1描述自从xiao_wu发明了只能向左转与向右转的机器人以后,热血沸腾的他又给机器人加了一个操作。假设机器人在二维坐标系的原点,一开始面向Y轴正方向(北N),现在给你一个仅由’L’,’R’,’M’的串,其中L表示向左转,R表示向右转,M表示向所面对的方向走一个单位的距离,试问经过操作过后,机器人的坐标和所面对的方向。北(N),西(W),东(E),南(S)。输入第一行输入一个T(T<150),表示任务的个数对于每个任务,输入一个串。(每个任务开始前机器人在原点,面向北(N),既Y轴正方向)串长度不大于100输出对于每个 阅读全文
posted @ 2013-05-21 20:45 萧凡客 阅读(242) 评论(0) 推荐(0) 编辑
摘要:2x3=6个方格中放入ABCDE五个字母,右下角的那个格空着。如图【1.jpg】所示。和空格子相邻的格子中的字母可以移动到空格中,比如,图中的C和E就可以移动,移动后的局面分别是:A B D E CA B CD E 为了表示方便,我们把6个格子中字母配置用一个串表示出来,比如上边的两种局面分别表示为:AB*DECABCD*E 题目的要求是:请编写程序,由用户输入若干表示局面的串,程序通过计算,输出是否能通过对初始状态经过若干次移动到达该状态。可以实现输出1,否则输出0。初始状态为:ABCDE* 用户输入的格式是:先是一个整数n,表示接下来有n行状态。程序输出也应该是... 阅读全文
posted @ 2013-05-19 16:44 萧凡客 阅读(1273) 评论(2) 推荐(1) 编辑
摘要:匪警请拨110,即使手机欠费也可拨通!为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练!某批警察叔叔正在进行智力训练:1 2 3 4 5 6 7 8 9 = 110;请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)。之间没有填入符号的数字组合成一个数,例如:12+34+56+7-8+9 就是一种合格的填法;123+4+5+67-89 是另一个可能的答案。请你利用计算机的优势,帮助警察叔叔快速找到所有答案。每个答案占一行。形如:12+34+56+7-8+9123+4+5+67-89..... 阅读全文
posted @ 2013-05-19 16:43 萧凡客 阅读(339) 评论(2) 推荐(0) 编辑
摘要:泊松是法国数学家、物理学家和力学家。他一生致力科学事业,成果颇多。有许多著名的公式定理以他的名字命名,比如概率论中著名的泊松分布。 有一次闲暇时,他提出过一个有趣的问题,后称为:“泊松分酒”。在我国古代也提出过类似问题,遗憾的是没有进行彻底探索,其中流传较多是:“韩信走马分油”问题。 有3个容器,容量分别为12升,8升,5升。其中12升中装满油,另外两个空着。要求你只用3个容器操作,最后使得某个容器中正好有6升油。 下面的列表是可能的操作状态记录:12,0,04,8,04,3,59,3,09,0,31,8,31,6,5 每行3个数据,分别表示12,8,6升容器中... 阅读全文
posted @ 2013-05-19 16:41 萧凡客 阅读(885) 评论(0) 推荐(1) 编辑
摘要:Excel是最常用的办公软件。每个单元格都有唯一的地址表示。比如:第12行第4列表示为:“D12”,第5行第255列表示为“IU5”。 事实上,Excel提供了两种地址表示方法,还有一种表示法叫做RC格式地址。 第12行第4列表示为:“R12C4”,第5行第255列表示为“R5C255”。 你的任务是:编写程序,实现从RC地址格式到常规地址格式的转换。【输入、输出格式要求】 用户先输入一个整数n(n<100),表示接下来有n行输入数据。 接着输入的n行数据是RC格式的Excel单元格地址表示法。 程序则输出n行数据,每行是转换后的常规地址表示法。 ... 阅读全文
posted @ 2013-05-19 16:40 萧凡客 阅读(2089) 评论(0) 推荐(0) 编辑
摘要:任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。如此往复,数字会落入某个循环圈(称为数字黑洞)。比如,刚才的数字会落入:[82962, 75933, 63954, 61974] 这个循环圈。请编写程序,找到5位数所有可能的循环圈,并输出,每个循环圈占1行。其中5位数全都相同则循环圈为 [0],这个可以不考虑。循环圈的输出格式仿照:[82962, 75933, 63954, 61974] 1 #include<string.h& 阅读全文
posted @ 2013-05-19 16:39 萧凡客 阅读(250) 评论(0) 推荐(0) 编辑
摘要:1 #include <stdio.h> 2 #define n 4 3 typedef struct 4 { 5 int parent; 6 int lchild,rchild; 7 int weight; 8 int flag; 9 }Node;10 11 typedef struct 12 {13 char bit[n];14 int start;15 char ch;16 }CodeNode;17 18 Node haffman[7];19 CodeNode code[n];20 21 int select(int j)22... 阅读全文
posted @ 2013-05-01 22:48 萧凡客 阅读(241) 评论(0) 推荐(0) 编辑
摘要:会场安排问题时间限制:3000ms | 内存限制:65535KB难度:4描述学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。输入第一行是一个整型数m(m<100)表示共有m组测试数据。每组测试数据的第一行是一个整数n(1<n<10000)表示该测试数据共有n个活动。随后的n行,每行有两个正整数Bi,Ei(0<=Bi,Ei<10000),分别表示第i个活动的起始与结束时间(Bi&l 阅读全文
posted @ 2013-05-01 22:45 萧凡客 阅读(430) 评论(0) 推荐(0) 编辑
摘要:1 #include<stdio.h> 2 3 int a[10000]; 4 int n,m; 5 6 int is_part(int u) 7 { 8 int sum,i,count,ok; 9 sum=count=0;ok=1;10 for(i=0;i<n;i++)11 {12 if(a[i]>u)13 {14 ok=0;15 break;16 }17 if(sum+a[i]>u) 18 { 19 s... 阅读全文
posted @ 2013-05-01 22:35 萧凡客 阅读(467) 评论(0) 推荐(0) 编辑