九度OJ
文章平均质量分 73
u012963208
这个作者很懒,什么都没留下…
展开
-
九度OJ-1056:最大公约数
题目地址:点击打开链接题目描述:输入两个正整数,求其最大公约数。输入:测试数据有多组,每组输入两个正整数。输出:对于每组输入,请输出其最大公约数。样例输入:49 14样例输出:7来源:2011年哈尔滨工业大学计算机研究生机试真题答疑:解题遇到问题?分享解题心得?讨论本题请访问:http://原创 2017-02-04 22:15:07 · 220 阅读 · 0 评论 -
九度OJ-1439:Least Common Multiple(相关文章尚未添加)
收获如下: ①今后出现bug首先检查是否很简单地因为开的数据类型太小了导致数据溢出(比如此题,buf开成int之后就WA了)题目地址:点击打开链接题目描述:The least common multiple (LCM) of a set of positive integers is the smallest positive integer which is divis原创 2017-02-04 22:55:09 · 188 阅读 · 0 评论 -
九度OJ-1194-八进制
没啥可说的。题目地址:点击打开链接题目描述:输入一个整数,将其转换成八进制数输出。输入:输入包括一个整数N(0输出:可能有多组测试数据,对于每组数据,输出N的八进制表示数。样例输入:789样例输出:71011来源:2008年华中科技大学计算机研究生机试真题答疑:解题遇到问原创 2017-02-04 21:39:48 · 347 阅读 · 0 评论 -
九度OJ-1163:素数(未关联)
题目地址:点击打开链接题目描述:输入一个整数n(2输入:输入有多组数据。每组一行,输入n。输出:输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。样例输入:100样例输出:11 31 41 61 71来源:2008年北京航原创 2017-02-04 23:53:50 · 227 阅读 · 0 评论 -
九度OJ-1040:Prime Number
题目地址:点击打开链接题目描述:Output the k-th prime number.输入:k≤10000输出:The k-th prime number.样例输入:37样例输出:517来源:2008年上海交通大学计算机研究生机试真题答疑:解题遇到问题?分享解题心得?讨论本题请访问:http原创 2017-02-05 00:43:23 · 337 阅读 · 0 评论 -
九度OJ-1047:素数判定
注意技巧:只需枚举至sqrt(n)即可。题目地址:点击打开链接题目描述:给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。输入:测试数据有多组,每组输入一个数n。输出:对于每组输入,若是素数则输出yes,否则输入no。样例输入:13样例输出:yes来源:2009年哈尔滨工业大学计算机原创 2017-02-04 23:16:17 · 270 阅读 · 0 评论 -
九度OJ-1138-进制转换
此题说来惭愧。题目地址:点击打开链接题目描述:将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。输入:多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数)输出:每行输出对应的二进制数。样例输入:0138样例输出:01原创 2017-02-04 21:36:45 · 832 阅读 · 0 评论 -
九度OJ-1118-数制转换
此题解法分为两个部分:一、a进制化为十进制;二、十进制化为b进制。后者直接套用“九度OJ-1026-又一版A+B”中写过的范版即可。输入的初始数要用穿存储,因为可能存在字母。 总结一下在数位拆解重新组合时“先得到高位数字再得到低位数字”情况下的通法:与“求反序数”的方法一致,这是数制转换时从串来求的代码: for (int i=0;s[i]!='\0';i++){ num*原创 2017-02-04 12:51:54 · 299 阅读 · 0 评论 -
九度OJ-1440:Goldbach's Conjecture
题目地址:点击打开链接题目描述:Goldbach's Conjecture: For any even number n greater than or equal to 4, there exists at least one pair of prime numbers p1 and p2 such that n = p1 + p2. This conjecture has not原创 2017-02-05 15:00:32 · 291 阅读 · 0 评论 -
九度OJ-1207:质因数的个数
此题的关键代码是37-39行: else if ( prime[index]>(int)(sqrt(n))+1 ){ count++; break;必须在此prime[index]无法整除n时加一条这个判断,不仅因为这样做能够减少计算量,还因为输入n的上限是十亿,sqrt(10 0000 0000)尚能在int的范围之内不会溢出,不这么处理就溢出了。题目地址:点原创 2017-02-05 15:01:47 · 352 阅读 · 0 评论 -
九度OJ-1104:整除问题
感觉这题难度不算太小。思路就是分别将n,a进行分解质因数并把幂次存储在两个power数组里,然后按照a的质因数去遍历,计算每个质因数p的“在n中幂次/在a中幂次"的比值,比值中最小的即为k。题目地址:点击打开链接题目描述:给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除。输入:两个整数n(2输出:一个整数.原创 2017-02-05 16:46:53 · 388 阅读 · 0 评论 -
九度OJ-1087:约数的个数
这题的难点依然是在大数据的处理上,只要不存储具体的因数及其幂次,而直接累乘到pro上即可。不赘述。题目地址:点击打开链接题目描述:输入n个整数,依次输出每个数的约数的个数输入:输入的第一行为N,即数组的个数(N接下来的1行包括N个整数,其中每个数的范围为(1当N=0时输入结束。输出:可能有多组输入数据,对于每组输入数据原创 2017-02-05 18:20:35 · 246 阅读 · 0 评论 -
九度OJ-1441:人见人爱 A^B(二分求幂)
此题涉及一个非常重要的算法:二分求幂。相对不好理解,消化如下: 关于二分求幂的原理见下图: a^b,基本的思想是将b进行二进制转化。所以代码的主体是在b的二进制化的while循环上进行改造:while (b>0){ if (b%2==1){ ans*=weight; } b/=2; weight*=weight;}加红部分为二进制化的代码。故二分求幂的代码主体原创 2017-02-06 13:36:33 · 359 阅读 · 0 评论 -
九度OJ-1442:A sequence of numbers
一道大数据处理的题目。因为数据过大故要注意两点:取模+二分求幂。 二分求幂就不细说了。取模用到了如下两个公式: ①(a*b)%c=((a%c)*(b%c))%c ②(a+b)%c=((a%c)+(b%c))%c题目描述:Xinlv wrote some sequences on the paper a long time ago, they might原创 2017-02-06 15:18:18 · 748 阅读 · 0 评论 -
九度OJ-1443:Tr A
本题的考点有俩:1.矩阵乘法;2.二分求幂。 由于矩阵乘法也满足结合律,故只要定义好矩阵乘法的函数(或可用运算符重载),剩下的思想基本与实数的二分求幂无异。题目地址:点击打开链接题目描述:A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973。输入:数据的第一行是一个T,表示有T组数据。每组数据的第一行原创 2017-02-07 14:44:52 · 327 阅读 · 0 评论 -
九度OJ-1198:a+b (高精度整数加法)
此题是高精度整数的第一题,可作为范版。 Debug记录: 这题debug了好半天,出现了两个问题: ①当sumInt中某个存储单元非4位数时,输出会不满4位,应当加上前导0。这个bug很快就找到了 ②最恶心的问题出在加法函数中一种临界情况时对进位c的处理上:当两个加数的size相等时,若首部单元相加产生进位,要做一个if判断来特殊处理,否则c则被遗漏,出错。这个找了整整一个原创 2017-02-07 17:43:25 · 273 阅读 · 0 评论 -
九度OJ-1076:N的阶乘
本题是高精度整数乘法的第一题。且藉由此题复习了一下类及其成员函数的定义、运算符重载等已经忘了的基础知识 = = 代码的关键在于逐单元的算法。即乘完本单元就取模并进位。其他的代码与高精度整数加法相似。题目描述: 输入一个正整数N,输出N的阶乘。输入:正整数N(0输出: 输入可能包括多组数据,对于每一组输入数据,输出N的阶乘样例输入原创 2017-02-08 02:41:59 · 355 阅读 · 0 评论 -
九度OJ-1012:畅通工程(用并查集求连通分量数)
本题可抽象为求无向图的连通分量数。 求无向图连通分量数可使用并查集来实现。 算法:初始化孤点,通过输入边不断并集。然后遍历求出集合数(==-1),即为连通分量数。debug记录: ①编写unionSet函数:void unionSet(int x,int y){ int xroot=findRoot(x),yroot=findRoot(y); if (xroot!=y原创 2017-02-08 21:47:13 · 244 阅读 · 0 评论 -
九度OJ-1444:More is better(用并查集求集合大小)
本题可抽象为求各个连通子图的顶点数的最大值。进一步抽象为求各个集合的个数的最大值。同样采用并查集实现集合的合并。 以下有两个版本。改进版是看完《机试指南》后启发,将统计集合元素数的操作封装进了unionSet函数中。将vexNum数组作为UFS的数据成员,用以记录以此下标为根的 集合的元素数,在unionSet并集时将两个集合的元素数归加和。通过这种算法使得不必写一个像原版那样的for循环,原创 2017-02-09 01:16:54 · 433 阅读 · 0 评论 -
九度OJ-1109:连通图
本题与“1012-畅通工程”完全相同,就是求连通分量个数。不赘述。题目描述: 给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的。输入: 每组数据的第一行是两个整数 n 和 m(0输出: 对于每组输入数据,如果所有顶点都是连通的,输出"YES",否则输出"NO"。样例输入:4 31 2原创 2017-02-09 01:41:48 · 304 阅读 · 0 评论 -
九度OJ-1445:How Many Tables
用并查集求连通分量数。与上题完全一样,不赘述。题目描述:Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that原创 2017-02-09 01:50:52 · 282 阅读 · 0 评论 -
九度OJ-1120:全排列
本题最初打算用深度优先搜索+回溯法来做。后来不论怎么修改都是TLE。最后没有办法上网搜索学习了一下STL的next_permutation函数来做这题。题目描述:给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。我们假设对于小写字母有'a' 输入:输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。原创 2017-02-28 10:17:42 · 336 阅读 · 0 评论 -
九度OJ-1461:Tempter of the bone
深度优先搜索+回溯法的题。关于路径存在性的问题,都考虑使用深度优先搜索+回溯法。Debug记录:①visit的时候忘记标记visited数组了导致超时②关于使用scanf()录入%c:cin>>x无论x是啥类型,'\n' '\t' ' '(空白字符)不会被提取进x,一定会留在输入流中,当其后的字符被提取时其被丢弃。而对于scanf(“%口”,&x),其他的与cin一样,唯独x是c原创 2017-02-28 10:29:38 · 249 阅读 · 0 评论 -
九度OJ-1205:N阶楼梯上楼问题
典型的顺推求解。使用循环即可。debug记录:①最开始使用int buf[]存储,导致数据溢出WA。后改用long long解决题目描述:N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)输入:输入包括一个整数N,(1输出:可能有多组测试数据,对于每组数据,输出当楼梯阶数是N时的上楼方式个数原创 2017-02-28 10:48:16 · 298 阅读 · 0 评论 -
九度OJ-1451:不容易系列之一
错排问题。思考过程写在书上了。题目描述:大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样。话虽这样说,我还是要告诉大家,要想失败到一定程度也是不容易的。比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!大家都学原创 2017-02-28 11:11:15 · 198 阅读 · 0 评论 -
九度OJ-1122:吃糖果
就是:N阶楼梯上楼问题。原创 2017-02-28 11:14:57 · 339 阅读 · 0 评论 -
九度OJ-1112:拦截导弹
最长递增子序列问题。本题为求“最长非递增子序列”,只需要把转移方程的转移条件改一改就好了。算法分析: 抽象过程:从给定的高度序列中选定元素,构成一个非递增(高度依次非递增)子序列(必须按时序即下标),求其最大长度。 设计状态:设dp[j]表示以list[j]结尾的非递增子序列长度中的最大值。 边界条件;dp[1]=1 转移方程:dp[j]=max{ 1,dp[i]+1原创 2017-02-28 11:44:24 · 692 阅读 · 0 评论 -
九度OJ-1447:最短路
题目描述:在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?输入:输入包括多组数据。每组数据第一行是两个整数N、M(N当输入为两个0时,输入结束。输出:对于每组输入,输出一行,表示工作人员从原创 2017-02-15 00:50:58 · 239 阅读 · 0 评论 -
九度OJ-1008:最短路径问题
Debug记录: ①最初时将dist[newPoint]cost[newPoint]的初始化放在newPoint的初始化之前忘记修改了(本题newPoint是使用输入而非默认的,输入之后才能初始化newPoint),故编译通过但是答案出错。题目描述:给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线原创 2017-02-20 00:16:47 · 244 阅读 · 0 评论 -
九度OJ-1100:最短路径
本题是做过的第一题五星题,综合性较大——Dijkstra+高精度整数。 (在做本题的过程中突然开窍把高精度整数的int2BigInt与char2BigInt函数的功能用对=重载来代替了哈哈)题目描述:N个城市,标号从0到N-1,M条道路,第K条道路(K从0开始)的长度为2^K,求编号为0的城市到其他城市的最短距离输入:第一行两个正整数N(2接下来M原创 2017-02-20 01:16:29 · 300 阅读 · 0 评论 -
九度OJ-1042:Coincidence(最长公共子序列)
题目描述:Find a longest common subsequence of two strings.输入:First and second line of each input case contain two strings of lowercase character a…z. There are no spaces before, inside原创 2017-02-28 21:35:29 · 247 阅读 · 0 评论 -
九度OJ-1131:合唱队形(最长递增子序列)
本题可以以“求最长递增子序列长度”为模板。问题抽象:即求最长合唱子序列长度。所谓“合唱子序列”,即:该子序列满足 T1 Ti+1 > … > TK (1 算法分析:正向求一次LIS存dp[],反向求一次LIS存dpR[]。然后dp[j]+dpR[j]-1即为最长合唱子序列长度。题目描述:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同原创 2017-02-28 21:06:18 · 308 阅读 · 0 评论 -
九度OJ-1202:排序
题目描述: 对输入的n个数进行排序并输出。输入: 输入的第一行包括一个整数n(1 接下来的一行包括n个整数。输出: 可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格。 每组测试数据的结果占一行。样例输入:41 4 3 2样例输出:1 2 3 4原创 2017-03-01 10:08:39 · 215 阅读 · 0 评论 -
九度OJ-1061:成绩排序
使用重载Debug记录:①最开始忘记initiate vector了 ②下图是在录入大量数据时,使用cin与printf()函数的对比,差了一个数量级。故:以后在OJ上做题的时候,养成使用c风格的IO函数的习惯题目描述: 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个原创 2017-03-01 10:10:38 · 387 阅读 · 0 评论 -
九度OJ-1185:特殊排序
题目描述:输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。输入:输入第一行包括1个整数N,1接下来的一行有N个整数。输出:可能有多组测试数据,对于每组数据,第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。第二行将排序的结果输出。样例输入:41 3 4 2样例输出:4原创 2017-03-01 10:26:10 · 265 阅读 · 0 评论 -
九度OJ-1023:EXCEL排序
题目描述: Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。 对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始)。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2时,按姓名的非递减字典序排序;当 C=3 时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号原创 2017-03-01 10:54:45 · 283 阅读 · 0 评论 -
九度OJ-1054:字符串内排序
题目描述:输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。输入:测试数据有多组,输入字符串。输出:对于每组输入,输出处理后的结果。样例输入:bacd样例输出:abcd来源:2010年哈尔滨工业大学计算机研究生机试真题答疑:解题遇到问题?分享解题心得?讨论本题请访问:htt原创 2017-03-01 10:58:07 · 220 阅读 · 0 评论 -
九度OJ-1438:最小公倍数
用辗转相除法求出两数的最大公约数,再用两数的积除以最大公约数即为最小公倍数。题目地址:点击打开链接题目描述:给定两个正整数,计算这两个数的最小公倍数。输入:输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数。输出:对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。样例输入:10 14原创 2017-02-04 22:34:37 · 228 阅读 · 0 评论 -
九度OJ-1144:Freckles
题目描述: In 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 scar, so原创 2017-02-12 15:09:05 · 462 阅读 · 0 评论 -
九度OJ-1154:Jungle Roads
题目描述:The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was spent on extra roads between villages some years ago. But the jungle overtakes roads r原创 2017-02-12 16:26:35 · 237 阅读 · 0 评论