
算法
不如一默
我会用一生好好爱我的宝贝!!!
展开
-
加密
在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算。解密的方法就是再执行一次同样的操作。加密过程中n位二进制数会循环使用。并且其长度也可能不是8的整数倍。下面的代码演示了如何实现该功能。请仔细阅读,填写空缺的代码(下划线部分)。注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可原创 2015-05-21 14:23:12 · 305 阅读 · 0 评论 -
字符统计
从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组alf中。注意:不区分大小写,不能使用字符串库函数。例如,输入:“A=abc+5*c”,结果为:a=2,b=1,c=2。参考代码:#include#define N 100void fun(char *tt,int alf[]){ int i; char *p=tt; for(i=原创 2015-06-17 22:20:13 · 637 阅读 · 0 评论 -
字符统计
Problem DescriptionGivena string containing only 'A' - 'Z', we could encode it using the followingmethod: 1.Each sub-string containing k same characters should be encoded to"kX" where "X" is t原创 2015-06-17 22:22:37 · 395 阅读 · 0 评论 -
完美的代价
问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是:交换两个相邻的字符 例如mamad 第一次交换 ad : mamda 第二次交换 md : madma 第三次交换 ma : madam(回文!完美!)输入格转载 2015-06-17 22:26:56 · 458 阅读 · 0 评论 -
大臣的旅费
很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。 J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另原创 2015-05-23 19:44:41 · 600 阅读 · 0 评论 -
第39阶台阶
小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢? 请你利用计算机的优势,帮助小明寻找答案。要求提交的是一个整数。注意原创 2015-05-23 20:13:47 · 1066 阅读 · 0 评论 -
高斯日记
题目标题: 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢? 高斯出生于:1777年4月30日。 在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。原创 2015-05-22 17:42:43 · 482 阅读 · 0 评论 -
FJ的字符串
问题描述 FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = “ABA” A3 = “ABACABA” A4 = “ABACABADABACABA” … … 你能找出其中的规律并写所有的数列AN吗?输入格式 仅有一个数:N≤ 26。输出格式 请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。原创 2015-06-03 19:00:17 · 3741 阅读 · 1 评论 -
三角形的面积
Problem Description老师在计算几何这门课上给Eddy布置了一道题目,题目是这样的:给定二维的平面上n个不同的点,要求在这些点里寻找三个点,使他们构成的三角形拥有的面积最大。Eddy对这道题目百思不得其解,想不通用什么方法来解决,因此他找到了聪明的你,请你帮他解决这个题目。Input输入数据包含多组测试用例,每个测试用例的第一行包含一个整数n,表示一共有n个互不相同原创 2015-06-03 19:29:02 · 631 阅读 · 0 评论 -
十进制转十六进制
问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。 给出一个非负整数,将它表示成十六进制的形式。输入格式 输转载 2015-06-03 20:15:24 · 389 阅读 · 0 评论 -
连号区间数
小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R]里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。 当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要原创 2015-05-23 23:14:00 · 313 阅读 · 0 评论 -
排它平方数
再归纳一下筛选要求: 1. 6位正整数 2. 每个数位上的数字不同 3. 其平方数的每个数位不含原数字的任何组成数位原创 2015-05-22 21:53:51 · 395 阅读 · 0 评论 -
夺冠概率
现在要举行一次锦标赛。双方抽签,分两个组比,获胜的两个队再争夺冠军。请你根据甲乙丙丁四人的获胜概率进行10万次模拟,计算出甲队夺冠的概率。原创 2015-05-21 22:55:12 · 1234 阅读 · 0 评论 -
转方阵
对一个方阵转置,就是把原来的行号变列号,原来的列号变行号 例如,如下的方阵: 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 转置后变为: 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 但,如果是对该方阵顺时针旋转(原创 2015-05-21 20:27:29 · 766 阅读 · 0 评论 -
Number Sequence
Problem DescriptionAnumber sequence is defined as follows: f(1) =1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. GivenA, B, and n, you are to calculate the value of f(n). Inp原创 2015-06-03 19:12:06 · 341 阅读 · 0 评论 -
凑算式
看这个算式:☆☆☆ +☆☆☆ =☆☆☆如果每个五角星代表 1 ~ 9 的不同的数字。这个算式有多少种可能的正确填写方法?173 +286 = 459295 +173 = 468173 +295 = 468183 +492 = 675以上都是正确的填写法!注意:111 +222 = 333 是错误的填写法!因为每个数字必须是不同的! 也就是说:原创 2015-06-03 19:54:15 · 1211 阅读 · 0 评论 -
回形取数
问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式 输入第一行是两个不超过200的正整数m,n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式 输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入3 31 2 3原创 2015-06-04 09:50:29 · 586 阅读 · 0 评论 -
带分数
100 可以表示为带分数的形式:100 = 3 + 69258 / 714 还可以表示为:100 = 82 + 3546 / 197 注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。 类似这样的带分数,100 有 11 种表示法。 题目要求:从标准输入读入一个正整数N(N程序输出该数字用数码1~9不重复不遗漏地组成带分原创 2015-05-23 22:38:53 · 380 阅读 · 0 评论 -
三部排序
一般的排序有许多经典算法,如快速排序、希尔排序等。 但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。 比如,对一个整型数组中的数字进行分类排序: 使得负数都靠左端,正数都靠右端,0在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过1次线性扫描就结束战斗!!原创 2015-05-23 21:35:35 · 442 阅读 · 0 评论 -
Anagrams问题
问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。 输入格式:输入有两行,分别为两个单词。 输出格式:输出只有一个字母Y或N,分别表示Yes和No。原创 2015-05-22 16:06:30 · 578 阅读 · 0 评论 -
0-1背包问题
有n个物体,重量和价值已知,要放入容量为c的背包里,放入的时间,要求放入的总重量不能超过包的容量,同时保证价值最大。原创 2015-05-21 19:20:34 · 371 阅读 · 0 评论 -
2的N次幂表示
问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。 将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0 现在约定幂次用括号来表示,即a^b表示为a(b) 此时,137可表示为:2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0(2^1用2表示) 3=2+2^原创 2015-06-03 18:47:16 · 3144 阅读 · 0 评论 -
颠倒的价牌
小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店。 其标价都是4位数字(即千元不等)。 小李为了标价清晰、方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就可以了(参见p1.jpg)。这种价牌有个特点,对一些数字,倒过来看也是合理的数字。如:1 2 5 6 8 9 0都可以。这样一来,如果牌子挂倒了,有可能完全变成了另一个价格,比如:1958 倒着挂就是:8561,差了几千元啊!! 当然,多数情况不能倒读,比如,1110 就不能倒过来,因为0不能作为原创 2015-05-22 22:52:18 · 765 阅读 · 0 评论 -
振兴中华
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。 地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg) 从我做起振我做起振兴做起振兴中起振兴中华 比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。 要求跳过的路线刚好构成“从我做起振兴中华”这句话。 请你帮助小明算一算他一共有多少种可能的跳跃路线呢?原创 2015-05-22 22:50:12 · 328 阅读 · 0 评论 -
罗马数字
古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现0的概念! 本题目的要求是:请编写程序,由用户输入若干个罗马数字串,程序输出对应的十进制表示。原创 2015-05-22 16:39:46 · 692 阅读 · 0 评论 -
放棋子
今有 6 x 6 的棋盘格。其中某些格子已经预先放好了棋子。现在要再放上去一些,使得:每行每列都正好有3颗棋子。我们希望推算出所有可能的放法。原创 2015-05-21 22:24:13 · 614 阅读 · 0 评论 -
分解质因数
问题描述 求出区间[a,b]中所有整数的质因数分解。输入格式 输入两个整数a,b。输出格式 每行输出一个数的分解,形如k=a1*a2*a3...(a1样例输入3 10样例输出3=34=2*25=56=2*37=78=2*2*29=3*310=2*5提示 先筛出所有素数,然后再分解。数据规模和约定 2原创 2015-06-03 19:58:44 · 514 阅读 · 0 评论 -
密码发生器
这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。原创 2015-05-21 22:05:33 · 506 阅读 · 0 评论 -
Sine之舞
问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。 不妨设 An=sin(1–sin(2+sin(3–sin(4+...sin(n))...) Sn=(...(A1+n)A2+n-1)A3+...+2)An+1 FJ想让奶牛们计算Sn的值原创 2015-06-03 19:26:12 · 770 阅读 · 0 评论 -
中奖计算
某抽奖活动的规则是:每位参与者在纸上写下一个8位数的号码。最后通过摇奖的办法随机产生一个8位数字。参与者写下的数字中最多有多少个连续位与开奖号码中的相同,则称为中了几个号。 例如:小张写的数字是:12345678,而开奖号码是:42347856。则称小张中了3个号,因为其中最长的相同连续位是:“234”。如果小张写的是:87654321,则他只中了一个号。参考代码(蓝桥杯填空)原创 2015-06-03 19:33:59 · 584 阅读 · 1 评论 -
信用卡校验
当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。 该校验的过程:1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。3、将奇数位总和加上偶数位总和,结果应该可以被1原创 2015-06-03 19:42:54 · 824 阅读 · 0 评论 -
反硬币
小明正在玩一个“翻硬币”的游戏。 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。 比如,可能情形是:**oo***oooo 如果同时翻转左边的两个硬币,则变为:oooo***oooo 现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最原创 2015-05-23 22:00:10 · 329 阅读 · 0 评论 -
干支纪年
10天干是:甲,乙,丙,丁,戊,己,庚,辛,壬,癸 12地支是:子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥 如果某年是甲子,下一年就是乙丑,再下是丙寅,......癸酉,甲戌,乙亥,丙子,.... 总之天干、地址都是循环使用,两两配对。 今年(2012)是壬辰年,1911年辛亥革命 下面的代码根据公历年份输出相应的干支法纪年。已知最近的甲子年是1984年。原创 2015-05-22 09:17:39 · 658 阅读 · 0 评论 -
大数乘法
对于32位字长的机器,大约超过20亿,用int类型就无法表示了,我们可以选择int64类型,但无论怎样扩展,固定的整数类型总是有表达的极限!如果对超级大整数进行精确运算呢?一个简单的办法是:仅仅使用现有类型,但是把大整数的运算化解为若干小整数的运算,即所谓:“分块法”。原创 2015-05-21 20:52:38 · 501 阅读 · 0 评论 -
大数阶乘
问题描述:输入不超过1000的正整数,输出它的 阶乘的精确结果。解题思路:用数组分别记录阶乘结果么每位数字。原创 2015-05-21 20:36:56 · 308 阅读 · 0 评论 -
Huffuman 树
问题描述 Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …,pn-1},用这列数构造Huffman树的过程如下: 1.找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。 2. 重复步骤1,直到{pi}中只原创 2015-06-03 19:07:18 · 1182 阅读 · 0 评论 -
十六进制转八进制
问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n(1 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。注意 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导转载 2015-06-03 20:10:30 · 348 阅读 · 0 评论 -
十六进制转十进制
问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535 参考代码:#include#include #includeint main(){ char a[9]={0}; int len,i,j; do转载 2015-06-03 20:13:19 · 571 阅读 · 0 评论 -
空白格式化
本次大赛采用了全自动机器测评系统。 如果你的答案与标准答案相差了一个空格,很可能无法得分,所以要加倍谨慎! 但也不必过于惊慌。因为在有些情况下,测评系统会把你的答案进行“空白格式化”。其具体做法是:去掉所有首尾空白;中间的多个空白替换为一个空格。所谓空白指的是:空格、制表符、回车符。 以下代码实现了这个功能。仔细阅读代码,填写缺失的部分。原创 2015-05-25 07:36:08 · 936 阅读 · 0 评论 -
前缀判断
如下的代码判断needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL。 比如:"abcd1234" 就包含了"abc" 为前缀 char* prefix(char*haystack_start, char* needle_start){char*haystack = haystack_start;char*nee原创 2015-05-22 22:56:25 · 1411 阅读 · 0 评论