算法笔记
wchzh2015
这个作者很懒,什么都没留下…
展开
-
问题 A: Least Common Multiple
题目描述The least common multiple (LCM) of a set of positive integers is the smallest positive integer which is divisible by all the numbers in the set. For example, the LCM of 5, 7 and 15 is 105.输入...原创 2019-11-04 16:09:58 · 379 阅读 · 0 评论 -
问题 D: 八皇后
题目描述会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。给出一个数b,要求输出...原创 2019-10-29 23:55:51 · 391 阅读 · 0 评论 -
问题 D: String Subtraction (20)
题目描述Given two strings S1and S2, S = S1- S2is defined to be the remaining string after taking all the characters in S2from S1. Your task is simply to calculate S1- S2for any given strings. Howev...原创 2019-10-27 22:27:31 · 330 阅读 · 0 评论 -
问题 C: Be Unique (20)
题目描述Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1, 104]. The first one who be...原创 2019-10-27 22:19:47 · 303 阅读 · 0 评论 -
问题 B: 分组统计
题目描述先输入一组数,然后输入其分组,按照分组统计出现次数并输出,参见样例。输入输入第一行表示样例数m,对于每个样例,第一行为数的个数n,接下来两行分别有n个数,第一行有n个数,第二行的n个数分别对应上一行每个数的分组,n不超过100。输出输出m行,格式参见样例,按从小到大排。样例输入173 2 3 8 8 2 31 2 3 2 1 3 1样例输出1=...原创 2019-10-27 22:07:36 · 264 阅读 · 0 评论 -
问题 B: 打印极值点下标
题目描述在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。输入每个案例的输入如下:有2×n+1行输入:第一行是要处理的数组的个数n;对其余2×n行,第一行是此数组的元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔。输出每个案例输出不多于n行:每行对应于...原创 2019-10-26 23:30:31 · 225 阅读 · 0 评论 -
问题 C: 查找
题目描述输入数组长度 n输入数组 a[1...n]输入查找个数m输入查找数字b[1...m]输出 YES or NO 查找有则YES 否则NO 。输入输入有多组数据。每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m<=n<=100)。输出如果在n个数组中输出YES否则输出NO。样例输入63 2 5 ...原创 2019-10-26 22:45:54 · 546 阅读 · 0 评论 -
问题 A: 找x
题目描述输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。输入测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。输出对于每组输入,请输出结果。样例输入41 2 3 43样例输出2思路:二分查找的应用#include<bits...原创 2019-10-26 22:39:26 · 221 阅读 · 0 评论 -
问题 B: 基础排序III:归并排序
题目描述归并排序是一个时间复杂度为O(nlogn)的算法,对于大量数据远远优于冒泡排序与插入排序。这是一道排序练习题,数据量较大,请使用归并排序完成。输入第一行一个数字n,代表输入的组数其后每组第一行输入一个数字m,代表待排序数字的个数其后m行每行一个数据,大小在1~100000之间,互不相等,最多有10万个数据。输出升序输出排好序的数据,每行一个数字样例...原创 2019-10-26 20:15:29 · 232 阅读 · 0 评论 -
问题 A: 二路归并排序(mergesort)递归法 [2*+]
题目描述二路归并排序(mergesort)递归法用递归法进行二路归并排序输入:第一行一个数据n,表示有n个数要排序。接下来n行每行一个<=10^7的整数。输出:n行,由小到大排序后的数据数据规模:n<=10^5思考:两个递归都会被执行吗?#include<bits/stdc++.h>using namespace std;void Mer...原创 2019-10-26 20:11:50 · 733 阅读 · 0 评论 -
问题 C: 快速排序 qsort [2*]
题目描述输入n个整数,用快速排序的方法进行排序Input第一行数字n 代表接下来有n个整数接下来n行,每行一个整数OutputOutput升序输出排序结果每行一个数据Sample Input51218141316 Sample Output1213141618 Hintn<=5000每个数据<=50...原创 2019-10-26 19:39:56 · 436 阅读 · 0 评论 -
问题 D: 二分递归快排(Qsort) [2*]
题目描述二分递归快排(Qsort)用二分递归的方法实现快排输入:第一行一个数据n,表示有n个数要排序。接下来n行每行一个<=10^7的整数。输出:n行,由小到大排序后的数据数据规模:n<=10^5思考:两个递归都会被执行吗?有几种可能?#include<bits/stdc++.h>using namespace std;int part(...原创 2019-10-26 19:37:31 · 650 阅读 · 0 评论 -
问题 A: 求第k大数
题目描述给定一个长度为n(1≤n≤1,000,000)的无序正整数序列,以及另一个数k(1≤k≤1,000,000)(关于第k大的数:例如序列{1,2,3,4,5,6}中第3大的数是4。)输入第一行两个正整数m,n。第二行为n个正整数。输出第k大的数。样例输入6 31 2 3 4 5 6样例输出4思路:使用快排的思路,找出每次划分的中...原创 2019-10-26 18:38:38 · 622 阅读 · 0 评论 -
问题 D: Repair the Wall
题目描述Long time ago , Kitty lived in a small village. The air was fresh and the scenery was very beautiful. The only thing that troubled her is the typhoon.When the typhoon came, everything is te...原创 2019-10-19 22:45:47 · 263 阅读 · 0 评论 -
问题 F: 迷瘴
题目描述小明正在玩游戏,他控制的角色正面临着幽谷的考验——幽谷周围瘴气弥漫,静的可怕,隐约可见地上堆满了骷髅。由于此处长年不见天日,导致空气中布满了毒素,一旦吸入体内,便会全身溃烂而死。幸好小明早有防备,提前备好了解药材料(各种浓度的万能药水)。现在只需按照配置成不同比例的浓度。现已知小明随身携带有n种浓度的万能药水,体积V都相同,浓度则分别为Pi%。并且知道,针对当时幽谷的瘴气情况,只...原创 2019-10-19 22:23:01 · 344 阅读 · 0 评论 -
算法笔记
算法笔记第3章:入门模拟 3.6 字符串处理 问题 B: 首字母大写 问题 D: 单词替换 问题 F: 数组逆置 第4章:入门篇(2)——算法初步 4.1 排序 问题 A: 排序 问题 B: 特殊排序 问题 D: 字符串内排序 问题 E: Problem B 问题 F: 小白鼠排队 问题 G: 中位数 问题 H: 整数奇...原创 2019-09-22 21:14:18 · 187 阅读 · 1 评论 -
问题 A: 吃糖果
题目描述名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。例如:如果N=1,则名名第1天就吃掉它,共有1种方案;如果N=2,则名名可以第1天吃1块,第2天吃1块,也可以第1天吃2块,共有2种方案;如果N=3,则...原创 2019-10-03 10:28:49 · 196 阅读 · 0 评论 -
问题 B: 数列
题目描述编写一个求斐波那契数列的递归函数,输入n值,使用该递归函数,输出如下图形(参见样例)。输入输入第一行为样例数m,接下来有m行每行一个整数n,n不超过10。输出对应每个样例输出要求的图形(参见样例格式)。样例输入16样例输出 0 0 1 1 0 1 1 2 3 0 1 1 2 3 5...原创 2019-10-03 11:18:33 · 208 阅读 · 0 评论 -
问题 C: 神奇的口袋
题目描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入输入的第一行是正整数n (...原创 2019-10-03 19:02:34 · 430 阅读 · 0 评论 -
问题 F: 数组逆置
题目描述输入一个字符串,长度小于等于200,然后将数组逆置输出。输入测试数据有多组,每组输入一个字符串。输出对于每组输入,请输出逆置后的结果。样例输入tianqin样例输出niqnait提示注意输入的字符串可能会有空格。思路:#include<bits/stdc++.h>using namespace std;in...原创 2019-10-04 10:38:05 · 390 阅读 · 0 评论 -
问题 B: 首字母大写
题目描述对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')。输入输入一行:待处理的字符串(长度小于100)。输出可能有多组测试数据,对于每组数据,输出一行:转换后的字符串。样例输入if so, you alr...原创 2019-10-04 10:57:54 · 316 阅读 · 0 评论 -
问题 D: 单词替换
题目描述输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。输入多组数据。每组数据输入包括3行,第1行是包含多个单词的字符串 s,第2行是待替换的单词a,(长度<=100)第3行是a将被替换的单词b。(长度<=100)s...原创 2019-10-04 14:34:04 · 476 阅读 · 0 评论 -
问题 E: FatMouse's Trade
题目描述FatMouse 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 contains J[i] pounds ...原创 2019-10-03 10:21:48 · 540 阅读 · 0 评论 -
问题 G: 找零钱
题目描述小智去超市买东西,买了不超过一百块的东西。收银员想尽量用少的纸币来找钱。纸币面额分为50 20 10 5 1 五种。请在知道要找多少钱n给小明的情况下,输出纸币数量最少的方案。 1<=n<=99;输入有多组数据 1<=n<=99;输出对于每种数量不为0的纸币,输出他们的面值*数量,再加起来输出样例输入2532样例输出20...原创 2019-10-03 09:38:03 · 948 阅读 · 0 评论 -
问题 B: 出租车费
题目描述某市出租车计价规则如下:起步4公里10元,即使你的行程没超过4公里;接下来的4公里,每公里2元;之后每公里2.4元。行程的最后一段即使不到1公里,也当作1公里计费。一个乘客可以根据行程公里数合理安排坐车方式来使自己的打车费最小。例如,整个行程为16公里,乘客应该将行程分成长度相同的两部分,每部分花费18元,总共花费36元。如果坐出租车一次走完全程要花费37.2元。现在给你整个行程...原创 2019-10-02 20:24:24 · 1310 阅读 · 0 评论 -
B1001 害死人不偿命的(3n+1)猜想 (15 分)
卡拉兹(Callatz)猜想:对任何一个正整数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国...原创 2019-09-30 10:44:31 · 85 阅读 · 0 评论 -
问题 A: 【字符串】最长回文子串
题目描述 输入一个字符串,求出其中最长的回文子串。子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看相同。如abba和yyxyy。在判断回文时,应该忽略所有标点符号和空格,且忽略大小写,但输出应保持原样(在回文串的首部和尾部不要输出多余字符)。输入字符串长度不超过5000,且占据单独的一行。应该输出最长的回文串,如果有多个,输出起始位置最靠左的。输入...原创 2019-09-28 22:59:53 · 291 阅读 · 0 评论 -
问题 E: 算法2-24 单链表反转
题目描述根据一个整数序列构造一个单链表,然后将其反转。例如:原单链表为 2 3 4 5 ,反转之后为5 4 3 2输入输入包括多组测试数据,每组测试数据占一行,第一个为大于等于0的整数n,表示该单链表的长度,后面跟着n个整数,表示链表的每一个元素。整数之间用空格隔开输出针对每组测试数据,输出包括两行,分别是反转前和反转后的链表元素,用空格隔开如果链表为空,则只输出一行,...原创 2019-09-26 21:56:46 · 924 阅读 · 0 评论 -
问题 B: Problem E
题目描述请写一个程序,判断给定表达式中的括号是否匹配,表达式中的合法括号为”(“, “)”, “[", "]“, “{“, ”}”,这三个括号可以按照任意的次序嵌套使用。输入有多个表达式,输入数据的第一行是表达式的数目,每个表达式占一行。输出对每个表达式,若其中的括号是匹配的,则输出”yes”,否则输出”no”。样例输入4[(d+f)*{}][(2+3))()}...原创 2019-09-26 21:19:54 · 229 阅读 · 0 评论 -
问题 A: 谁是你的潜在朋友
题目描述 “臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味...原创 2019-09-26 08:56:30 · 162 阅读 · 0 评论 -
问题 A: 装箱问题
题目描述【问题描述】有一个箱子的容量为V(V为正整数,且满足0≤V≤20000),同时有n件物品(0的体积值为正整数。要求从n件物品中,选取若干装入箱内,使箱子的剩余空间最小。输入:1行整数,第1个数表示箱子的容量,第2个数表示有n件物品,后面n个数分别表示这n件物品各自的体积。输出:1个整数,表示箱子剩余空间。【输入输出样例】输入:24 6 8 3 12 7 ...原创 2019-09-22 21:13:01 · 193 阅读 · 0 评论 -
问题 A: 最大连续子序列
题目描述给定K个整数的序列{N1,N2,...,NK},其任意连续子序列可表示为{Ni,Ni+1,...,Nj},其中1<=i<=j<=K。最大连续子序列是所有连续子序列中元素和最大的一个,例如给定序列{-2,11,-4,13,-5,-2},其最大连续子序列为{11,-4,13},最大和为20。现在增加一个要求,即还需要...原创 2019-09-22 20:12:40 · 326 阅读 · 0 评论 -
问题 A: 最长上升子序列
题目描述一个数列ai如果满足条件a1<a2< ... <aN,那么它是一个有序的上升数列。我们取数列(a1,a2, ...,aN)的任一子序列(ai1,ai2, ...,aiK)使得1 <=i1<i2< ... <iK<=N。例如,数列(1, 7, 3, 5, 9, 4, 8)的有序上升子序列,像(1, 7),(3,...原创 2019-09-22 20:10:28 · 188 阅读 · 0 评论 -
问题 A: 最长公共子序列
题目描述给你一个序列X和另一个序列Z,当Z中的所有元素都在X中存在,并且在X中的下标顺序是严格递增的,那么就把Z叫做X的子序列。例如:Z=<a,b,f,c>是序列X=<a,b,c,f,b,c>的一个子序列,Z中的元素在X中的下标序列为<1,2,4,6>。现给你两个序列X和Y,请问它们的最长公共子序列的长度是多少?输入输入包含多组测试数据。每组输入...原创 2019-09-22 20:07:25 · 232 阅读 · 0 评论 -
B1011 A+B 和 C (15 分)
题目描述给定区间 [−231,231] 内的 3 个整数A、B和C,请判断A+B是否大于C。输入格式:输入第 1 行给出正整数T(≤10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。输出格式:对每组测试用例,在一行中输出Case #X: true如果A+B>C,否则输出Case ...原创 2019-09-30 10:55:21 · 121 阅读 · 0 评论 -
B1016 部分A+B (15 分)
题目描述:正整数A的“DA(为 1 位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A=3862767,DA=6,则A的“6 部分”PA是 66,因为A中有 2 个 6。现给定A、DA、B、DB,请编写程序计算PA+PB。输入格式:输入在一行中依次给出A、DA、B、DB,...原创 2019-09-30 11:10:41 · 122 阅读 · 0 评论 -
问题 A: 看电视
题目描述暑假到了,小明终于可以开心的看电视了。但是小明喜欢的节目太多了,他希望尽量多的看到完整的节目。现在他把他喜欢的电视节目的转播时间表给你,你能帮他合理安排吗?输入输入包含多组测试数据。每组输入的第一行是一个整数n(n<=100),表示小明喜欢的节目的总数。接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i个节目的开始和结束时间,为了简化问题,...原创 2019-10-02 19:39:35 · 294 阅读 · 0 评论 -
问题 I: 排名
题目描述今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的成绩按降序打印。输入测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N(0<N<1000)、考题数M(0<M<=10)、分数线(...原创 2019-10-02 19:05:02 · 305 阅读 · 0 评论 -
问题 E: Problem B
题目描述请写一个程序,对于一个m行m列的(1<m<10)的方阵,求其每一行,每一列及主对角线元素之和,最后按照从大到小的顺序依次输出。输入共一组数据,输入的第一行为一个正整数,表示m,接下来的m行,每行m个整数表示方阵元素。输出从大到小排列的一行整数,每个整数后跟一个空格,最后换行。样例输入415 8 -2 631 24 18 71-3 -9 27 ...原创 2019-10-02 17:10:37 · 172 阅读 · 0 评论 -
问题 D: 字符串内排序
题目描述输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。输入测试数据有多组,输入字符串。输出对于每组输入,输出处理后的结果。样例输入tianqin样例输出aiinnqt提示注意输入的字符串中可能有空格。思路#include<bits/stdc++.h>using namespace std;int...原创 2019-10-02 16:46:18 · 382 阅读 · 0 评论