算法设计
文章平均质量分 59
ThinkingOne
有梦才能飞向远方……
展开
-
翻硬币
小明正在玩一个“翻硬币”的游戏。 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是 零)。 比如,可能情形是:**oo***oooo 如果同时翻转左边的两个硬币,则变为:oooo***oooo 现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的 两个硬币,那么对特定的局面,最少要翻动多少次呢? 我们约定:把翻动相邻的两个硬原创 2015-04-10 20:13:58 · 447 阅读 · 0 评论 -
特殊的数字
特殊的数字时间限制:1.0s 内存限制:512.0MB问题描述:153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。输出格式:按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。代码如下:#include #include #include int getdata(int n原创 2015-04-15 21:30:00 · 488 阅读 · 0 评论 -
格子位置
格子位置时间限制:1.0s 内存限制:512.0MB问题描述:输入三个自然数N,i,j (1输入格式:输入共三行,分别输入自然数N,i,j。其中保证N输出格式:输出共四行。第一行为与格子(i,j)同行的所有格子的位置,第二行为与格子(i,j)同列的所有格子的位置,第三行为从左上到右下对角线上的格子的位置,第四行为从左下到右上对角线上的格子的位置。样例输入423原创 2015-04-15 20:53:04 · 2463 阅读 · 0 评论 -
矩阵乘法
矩阵乘法时间限制:1.0s 内存限制:512.0MB问题描述:给定一个N阶矩阵A,输出A的M次幂(M是非负整数),例如:A =1 23 4A的2次幂7 1015 22输入格式:第一行是一个正整数N、M(1接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值输出格式:输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格原创 2015-04-15 21:10:47 · 608 阅读 · 0 评论 -
十六进制转十进制
十六进制转十进制时间限制:1.0s 内存限制:512.0MB问题描述:从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535代码如下:#include #include #include #include原创 2015-04-15 20:58:22 · 397 阅读 · 0 评论 -
杨辉三角形
杨辉三角形时间限制:1.0s 内存限制:256.0MB问题描述:杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。下面给出了杨辉三角形的前4行:11 11 2 11 3 3 1给出n,输出它的前n行。输入格式:输入包含一个数n。输出格式:输出杨辉三角形的前n行。原创 2015-04-15 21:30:38 · 462 阅读 · 0 评论 -
一些递归程序
代码一:#includeusing namespace std;void ten_to_two(int num);int main(){ int num=10; ten_to_two(num); return 0;} void ten_to_two(int num){ if(num!=0){ int m=num%2; num=num/2; ten_to_two(n原创 2015-04-15 21:24:56 · 639 阅读 · 0 评论 -
矩形面积交
矩形面积交时间限制:1.0s 内存限制:512.0MB问题描述:平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入格式:输入仅包含两行,每行描述一个矩形。在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。输出格式:输出仅包含一个实数,为交的面积,保留原创 2015-04-15 21:16:05 · 533 阅读 · 0 评论 -
核桃的数量
核桃的数量时间限制:1.0s 内存限制:256.0MB锦囊1问题描述:小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式:输入包含三个正整数a,b, c,表示原创 2015-04-15 21:34:31 · 370 阅读 · 0 评论 -
数列排序
数列排序的几种排序方法时间限制:1.0s 内存限制:512.0MB问题描述:给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1输入格式:第一行为一个整数n。第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式:输出一行,按从小到大的顺序输出排序后的数列。样例输入58 3 6 4 9样例输出3 4 6 8 9代码如下:原创 2015-04-15 21:07:13 · 661 阅读 · 0 评论 -
十六进制转八进制
十六进制转八进制时间限制:1.0s 内存限制:512.0MB问题描述:给定n个十六进制正整数,输出它们对应的八进制数。输入格式:输入的第一行为一个正整数n (1输出格式:输出n行,每行为输入对应的八进制正整数。注意:输入的十六进制数不会有前导0,比如012A。输出的八进制数也不能有前导0。样例输入239123ABC样例输出714435274提原创 2015-04-15 21:03:27 · 523 阅读 · 0 评论 -
装箱问题
装箱问题的几种解法暴力求解动态规划(贪心算法)递推式解法题目:装箱问题 时间限制:1.0s 内存限制:256.0MB 问题描述:有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入格式:第一行为一个整数,表示箱子容量; 第二行为一个整数,原创 2015-04-12 09:41:43 · 1491 阅读 · 0 评论 -
勇者斗恶龙
算法分析: 要雇佣的勇士的能力值应该尽量接近要砍掉龙头的直径值,所以先对其进行排序,然后对比,就可以判断出应该选的勇士了。 代码如下:#include<iostream>#include<algorithm> using namespace std;int Count(int n,int m){ while(m!=0&&n!=0){ int *dra原创 2015-04-12 09:17:31 · 545 阅读 · 0 评论 -
错误票据
错误票据某涉密单位下发了某种票据,并要在年终全部收回。 每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定 的。 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个 ID重号。 你的任务是通过编程,找出断号的ID和重号的ID。 假设断号不可能发生在最大和最小号。 要求程序首先输入一个整数N(N<100)表示后面数据行数。 接原创 2015-04-09 21:19:37 · 332 阅读 · 0 评论 -
喷水装置(一)
描述现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润,你要做的是:选择尽量少的喷水装置,把整个草坪的全部湿润。输入第一行m表示有m组测试数据每一组测试数据的第一行有一个整数数n,n表示共有n个喷水装原创 2015-11-28 15:55:17 · 501 阅读 · 0 评论