POJ
老肥码码码
Hello World
展开
-
哈希排序算法
如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)一个很有意思的题目在数字范围有限制的情况下,如n=100,只需要用一个数组记录每个数字出现次数就可以了。定义一个数组a[100](这个空间是常量,和n无关,所以空间复杂度是O(1) )扫描一遍输入的待排序列,a[t]++,时间复杂度为O(n)有几个相同的输入数值t,a[t]就等于多少,当a[t]>0时,...原创 2019-03-09 19:35:03 · 14794 阅读 · 3 评论 -
每日一题(二十四):枚举
题目描述: 用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。编程求解x,y,z所有可能解。输入: 测试数据有多组,输入n。输出: 对于每组输入,请输出x,y,z所有可行解,按照x,y,z依次增大的顺序输出。样例输入:40样例输出:x=0,y=0,z=100x=0,y=1,z=99x=0,...原创 2019-02-19 10:52:16 · 157 阅读 · 0 评论 -
每日一题(三十三):最长公共子序列(LCS)
题目描述:Find a longest common subsequence of two strings.输入:First and second line of each input casecontain two strings of lowercase character a…z. There are no spaces before, inside or after the st...原创 2019-02-28 14:42:53 · 142 阅读 · 0 评论 -
每日一题(十九):More is better
题目描述:Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements.Mr Wang selected a ...原创 2019-02-11 23:26:00 · 232 阅读 · 0 评论 -
每日一题(三十二):最长递增子序列(LIS)
题目描述:某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。 输入:每组输入有两行,第一行,输入雷...原创 2019-02-27 15:24:55 · 146 阅读 · 0 评论 -
每日一题(二十八):Prime ring problem
问题描述:A ring is compose of n circles as shown in diagram. Put natural number 1, 2, …, n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.Note: the number...原创 2019-02-23 22:20:12 · 231 阅读 · 0 评论 -
每日一题(二十七):汉诺塔Ⅲ
题目描述:约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到右边的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。现在我们改变游戏的玩法,不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到下盘的上面。Daisy已经做过原来的汉诺塔...原创 2019-02-22 17:06:21 · 480 阅读 · 0 评论 -
每日一题(十三):素数筛法
题目描述:给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。输入:测试数据有多组,每组输入一个数n。输出:对于每组输入,若是素数则输出yes,否则输入no。样例输入:13样例输出:yes#include<stdio.h>#include<math.h>bool judge(int x) { if (x <...原创 2019-02-01 09:15:03 · 231 阅读 · 0 评论 -
每日一题(十八):并查集
Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目...原创 2019-02-10 22:31:49 · 166 阅读 · 0 评论 -
每日一题(二十五):广度优先搜索
题目描述:Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的其中一个.现在给你城堡的地图,请你...原创 2019-02-19 12:39:27 · 206 阅读 · 0 评论 -
每日一题(二十九):Oil Deposite
题目描述:The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divi...原创 2019-02-24 19:43:54 · 416 阅读 · 0 评论 -
每日一题(三十七):完全背包
题目描述在 ACM 能够开展之前,必须准备预算,并获得必要的财力支持。该活动的主要收入来自于 Irreversibly Bound Money (IBM)。思路很简单。任何时候,某位 ACM 会员有少量的钱时,他将所有的硬币投入到小猪储钱罐中。这个过程不可逆,因为只有把小猪储钱罐打碎才能取出硬币。在足够长的时间之后,小猪储钱罐中有了足够的现金,用于支付 ACM 活动所需的花费。但是,小猪储...原创 2019-03-04 12:31:48 · 296 阅读 · 0 评论 -
每日一题(三十六):0-1背包
题目描述:辰辰是个很有潜能、天资聪颖的孩子,他的梦想是称为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大...原创 2019-03-03 19:47:56 · 566 阅读 · 0 评论 -
每日一题(三十五):Greedy Tino
Problem DescriptionTino wrote a long long story. BUT! in Chinese...So I have to tell you the problem directly and discard his long long story. That is tino want to carry some oranges with "Carrying ...原创 2019-03-02 21:50:58 · 236 阅读 · 0 评论 -
每日一题(三十八):多重背包
题目描述:为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?输入:输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1<=n<=100, 1<=m<=100),分别...原创 2019-03-05 14:56:17 · 298 阅读 · 0 评论 -
每日一题(三十一):N阶楼梯上楼
题目描述N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。输入描述:输入包括一个整数N,(1<=N<90)。输出描述:可能有多组测试数据,对于每组数据,输出当楼梯阶数是N时的上楼方式个数。 样例输入4样例输出5 #include<stdio.h>long long F[91];int main() { F[1] = 1; F...原创 2019-02-26 11:44:35 · 332 阅读 · 0 评论 -
每日一题(三十四):动态规划
题目描述:搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2*k件过去就行了.但还是会很累,因为2*k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手的物品的重量差的平方成正...原创 2019-03-01 10:43:09 · 170 阅读 · 0 评论 -
每日一题(三十):DFS
题目描述:The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, and the doggie could feel the ground sinking. He realized that the...原创 2019-02-25 12:44:48 · 166 阅读 · 0 评论 -
每日一题(二十):最小生成树
Problem Description某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。 Input测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-...原创 2019-02-13 22:06:21 · 484 阅读 · 0 评论 -
每日一题(二十三):迪杰斯特拉
题目描述:在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?输入:输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口...原创 2019-02-16 22:19:06 · 891 阅读 · 0 评论 -
每日一题(十二):最大公约数,最小公倍数
求a、b两个正整数的最大公约数,通过欧几里得算法,可以改变朴素的枚举法需要“暴力”遍历所有数字的情况,而改为利用数学原理巧妙地将问题转化为规模更小的问题,从而得出最后答案。欧几里得算法的核心思想是把求a、b的最大公约数转换成求b、a mod b的最大公约数,不断重复该过程直到问题缩小成为某个非零数和零的最大公约数。// 递归#include<stdio.h>int gc...原创 2019-01-31 09:53:33 · 369 阅读 · 0 评论 -
每日一题(十一):进制转换
题目描述输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。输入输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。当m为0时输入结束。输出输出格式:每个测试用例的输出占一行,输出A+B的m进制数。样例输入2 4 58 123 4560样例输出10011103#...原创 2019-01-30 16:23:04 · 1109 阅读 · 0 评论 -
每日一题(十四):质因数的个数
题目描述求正整数N(N>1)的质因数的个数。相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。输入描述:可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N<10^9)。输出描述:对于每组数据,输出N的质因数的个数。示例1输入120输出5#include<stdio.h>bool mark[100001];in...原创 2019-02-02 05:37:43 · 451 阅读 · 0 评论 -
每日一题(六):哈夫曼树
题目描述哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。 输入输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。 输出输出权值。 样例输入22 8 35 11 ...原创 2019-01-25 14:32:16 · 591 阅读 · 0 评论 -
每日一题(七):二叉树遍历
二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问根,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 题目:给定一棵二叉树的前序和中序遍历,求其后续遍历。 样例输入:ABCBACFDXEAGXDEFAG样例输出:B C...原创 2019-01-26 08:52:25 · 272 阅读 · 1 评论 -
每日一题(五):栈的基础应用
1.题目描述: 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注.输入: 输入包括多组数据,每组数据一行,包含一个字符串,只包含...原创 2019-01-20 13:33:16 · 3001 阅读 · 0 评论 -
每日一题(四):贪心算法
1.Problem DescriptionFatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.The warehouse has N rooms. The i-th room c...原创 2019-01-19 08:54:17 · 2572 阅读 · 0 评论 -
每日一题(三):查找
1.输入一个数n,然后输入n个数,其值各不相同,再输入一个值x,输出这个值在这个数组中的下标志(从0开始,若不在数组中输出-1)#include<stdio.h>int main() { int buf[200]; int n; while (scanf("%d", &n) != EOF) { for (int i = 0; i < n; i+...原创 2019-01-18 18:56:16 · 299 阅读 · 0 评论 -
POJ基础题(二)
1207 The 3n + 1 problem#include<iostream>using namespace std; int cycle(int i){ int count=1; while(i!=1) { count++; if(i%2) i=3*i+1; else i/=2; } return cou...原创 2019-01-18 18:45:46 · 260 阅读 · 0 评论 -
POJ基础题(一)
1003 hangoverHow far can you make a stack of cards overhang a table? If you have one card, you can create a maximum overhang of half a card length. (We're assuming that the cards must be perpendicul...原创 2019-01-07 18:34:56 · 883 阅读 · 0 评论 -
每日一题(八):二叉排序树
题目描述: 输入一系列整数,建立二叉排序树,并进行前序,中序,后序遍历。输入: 输入第一行包括一个整数n(1<=n<=100)。 接下来的一行包括n个整数。输出: 可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。 每种遍历结果输出一行。每行最后一个数据之后有一个空格。样例输入:5...原创 2019-01-27 15:25:00 · 365 阅读 · 0 评论 -
每日一题(一):Hash的基础应用
1.统计同成绩学生人数 #include<stdio.h>int main() { int n; while (scanf("%d", &n) != EOF&&n != 0) { int Hash[101] = { 0 }; for (int i = 0; i < n; i++) { int x; scanf("%d...原创 2019-01-16 17:02:37 · 2472 阅读 · 1 评论 -
每日一题(十七):N的阶乘
题目描述: 输入一个正整数N,输出N的阶乘。输入:正整数N(0<=N<=1000)输出: 输入可能包括多组数据,对于每一组输入数据,输出N的阶乘样例输入:4515样例输出:241201307674368000#include<stdio.h>#include<string.h>struct bigInt...原创 2019-02-09 15:54:22 · 397 阅读 · 0 评论 -
每日一题(二十二):弗洛伊德
题目描述:在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?输入:输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口...原创 2019-02-15 17:05:26 · 379 阅读 · 0 评论 -
每日一题(二十六):非常可乐
Problem Description大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101)毫升 (正好装满一瓶) ,它们三个之间可以相互倒可乐 (都是...原创 2019-02-21 13:25:32 · 401 阅读 · 1 评论 -
每日一题(十):数位拆解
题目描述写个算法,对2个小于1000000000的输入,求结果。 特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5输入描述:两个小于1000000000的数输出描述:输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。样例输入123 45样例输出54#include<stdio.h&g...原创 2019-01-29 13:09:12 · 335 阅读 · 0 评论 -
每日一题(十六):高精度整数
题目描述:实现一个加法器,使其能够输出a+b的值。输入:输入包括两个数a和b,其中a和b的位数不超过1000位。输出:可能有多组测试数据,对于每组数据,输出a+b的值。样例输入:2 610000000000000000000 10000000000000000000000000000000样例输出:810000000000010000000000000000000 ...原创 2019-02-04 11:10:45 · 213 阅读 · 0 评论 -
每日一题(二十一):Freckles
Problem DescriptionIn an episode of the Dick Van Dyke show, little Richie connects the freckles on his Dad’s back to form a picture of the Liberty Bell. Alas, one of the freckles turns out to be a s...原创 2019-02-14 23:15:09 · 418 阅读 · 0 评论 -
每日一题(十五):二分求幂
题目描述:求A^B的最后三位数表示的整数。说明:A^B的含义是“A的B次方”输入:输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。输出:对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。样例输入:2 312 66789 100000 0样例输...原创 2019-02-03 09:40:59 · 217 阅读 · 0 评论 -
每日一题(九):二叉搜索树
题目:判断两序列是否为同一二叉搜索树要求:输入: 判断两序列是否为同一二叉搜索树序列 Input开始一个数n(1<=n<=20) ,表示有n个需要判断,n= 0 的时候输入结束。 接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。 接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能...原创 2019-01-28 10:19:36 · 248 阅读 · 0 评论