![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法笔记
小蓝姐姐超会玩
这个作者很懒,什么都没留下…
展开
-
问题 C: 数组逆置(reverse函数实现)
《算法笔记》6.9小节-algorithm头文件下常用函数介绍问题 C: 数组逆置(reverse函数实现)题目描述输入一个字符串,长度小于等于200,然后将数组逆置输出。输入测试数据有多组,每组输入一个字符串。输出对于每组输入,请输出逆置后的结果。样例输入tianqin样例输出niqnait提示注意输入的字符串可能会有空格。#include<cstdio>#include<cstring>#include<algorithm>using原创 2020-07-29 23:16:47 · 901 阅读 · 0 评论 -
问题 B: 全排列
《算法笔记》6.9小节-algorithm头文件下常用函数介绍问题 B: 全排列题目描述给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。我们假设对于小写字母有’a’ < ‘b’ < … < ‘y’ < ‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。输入输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。输出输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前面。字母序如下定义:已知S =原创 2020-07-29 23:14:58 · 298 阅读 · 0 评论 -
问题 A: 求最大最小数
《算法笔记》6.9小节-algorithm头文件下常用函数介绍问题 A: 求最大最小数题目描述先输入N,表示数的个数,然后输入N个数,求这N个数的最大值和最小值。N<=10000,输入的数的绝对值不大于10^6样例输入42 0 1 2样例输出2 0#include<cstdio>#include<algorithm>using namespace std;int main(){ int n,a[10000]; while(scanf("%d",&a原创 2020-07-29 23:12:48 · 207 阅读 · 0 评论 -
问题 A: 重心在哪里
《算法笔记》6.8小节-pair的常见用法详解问题 A: 重心在哪里题目描述每个人都知道牛顿发现万有引力的故事。自从牛顿发现万有引力后,人们用万有引力理论解决了非常多的问题。不仅如此,我们也知道了每个物体都有自己的重心。现在,给你三角形三个顶点的坐标,你能计算出三角形的重心吗?输入题目包含多组测试数据。第一行输入一个正整数n,表示测试数据的个数,当n=0时,输入结束。接下来n行,每行包含6个数字x1,y1,x2,y2,x3,y3,表示三角形三个顶点的坐标。输出对于每组输入,输出重心的坐标,原创 2020-07-29 23:10:58 · 133 阅读 · 0 评论 -
问题 A: C语言-数字交换
《算法笔记》6.5小节-queue的常见用法详解问题 A: C语言-数字交换题目描述输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。输入10个整数输出整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)样例输入2 1 3 4 5 6 7 8 10 9样例输出1 2 3 4 5 6 7 8 9 10#include<cstdio>#include<algorithm>原创 2020-07-29 23:08:58 · 271 阅读 · 0 评论 -
问题 A: Speech Patterns
《算法笔记》6.4小节-map的常见用法详解问题 A: Speech Patterns题目描述People often have a preference among synonyms of the same word. For example, some may prefer “the police”, while others may prefer “the cops”. Analyzing such patterns can help to narrow down a speaker’s ide原创 2020-07-29 23:06:26 · 104 阅读 · 0 评论 -
问题 A: Set Similarity
《算法笔记》6.2小节-set的常见用法详解问题 A: Set Similarity题目描述Given two sets of integers, the similarity of the sets is defined to be Nc/Nt*100%, where Nc is the number of distinct common numbers shared by the two sets, and Nt is the total number of distinct numbers in原创 2020-07-28 22:57:52 · 95 阅读 · 0 评论 -
问题 B: Student List for Course
《算法笔记》6.1小节-vector的常见用法详解问题 B: Student List for Course题目描述Zhejiang University has 40000 students and provides 2500 courses. Now given the registered course list of each student, you are supposed to output the student name lists of all the courses.输入Ea原创 2020-07-28 22:54:02 · 77 阅读 · 0 评论 -
问题 A: Course List for Student
《算法笔记》6.1小节-vector的常见用法详解问题 A: Course List for Student题目描述Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists of all the courses, you are supposed to output the registered course list for each student who c原创 2020-07-28 22:52:16 · 70 阅读 · 0 评论 -
问题 B: Prime Number
《算法笔记》5.4小节-素数问题 B: Prime Number题目描述Output the k-th prime number.输入k≤10000输出The k-th prime number.样例输入1050样例输出29229#include<cstdio>const int maxn=1000001;int Prime[maxn];bool p[maxn]={0};void find_Prime(){ int pNum=0; for(int i=2原创 2020-07-28 22:48:17 · 139 阅读 · 0 评论 -
问题 A: 素数
《算法笔记》5.4小节-素数问题 A: 素数题目描述输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。输入输入有多组数据。每组一行,输入n。输出输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。样例输入70样例输出11 31 41 61代码(1):#include<cstdio>const in原创 2020-07-27 23:42:29 · 194 阅读 · 0 评论 -
问题 A: 分数矩阵
《算法笔记》5.3小节-分数的四则运算问题 A: 分数矩阵题目描述我们定义如下矩阵:1/1 1/2 1/31/2 1/1 1/21/3 1/2 1/1矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。请求出这个矩阵的总和。输入输入包含多组测试数据。每行给定整数N(N<50000),表示矩阵为N*N。当N=0时,输入结束。输出输出答案,结果保留2位小数。样例输入12340样例输出1.003.005.678.83代码(1):结构体二维数组,时间超原创 2020-07-27 23:39:09 · 118 阅读 · 0 评论 -
问题 A: Least Common Multiple
《算法笔记》5.2小节-最大公约数与最小公倍数问题 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.输入Input w原创 2020-07-27 23:38:28 · 149 阅读 · 0 评论 -
问题 M: 鸡兔同笼
《算法笔记》5.1小节-简单数学问题 M: 鸡兔同笼题目描述一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a (a < 32768)输出输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开如果没有满足要求的答案,则输出两个0。样例输入2185原创 2020-07-26 23:32:15 · 533 阅读 · 0 评论 -
问题 L: 与7无关的数
《算法笔记》5.1小节-简单数学问题 L: 与7无关的数题目描述一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数.现求所有小于等于n(n<100)的与7无关的正整数的平方和。输入案例可能有多组。对于每个测试案例输入为一行,正整数n,(n<100)输出对于每个测试案例输出一行,输出小于等于n的与7无关的正整数的平方和。样例输入61218样例输出916011575代码(1)#include<cstdio>原创 2020-07-26 23:29:58 · 294 阅读 · 0 评论 -
问题 H: 整数和
《算法笔记》5.1小节-简单数学问题 H: 整数和题目描述编写程序,读入一个整数N。若N为非负数,则计算N 到2N 之间的整数和;若N为一个负数,则求2N 到N 之间的整数和。输入第一行表示样例数m,接下来m行每行一个整数N,N的绝对值不超过100。输出输出m行,每行表示对应的题目所求。样例输入22-1样例输出9-3提示注意N可能为负数#include<cstdio>int main(){ int m; scanf("%d",&m); w原创 2020-07-26 23:22:26 · 329 阅读 · 0 评论 -
问题 F: 计算两个矩阵的乘积
《算法笔记》5.1小节-简单数学问题 F: 计算两个矩阵的乘积题目描述计算两个矩阵的乘积,第一个是23矩阵,第二个是32矩阵,结果为一个22矩阵。输入输入包含多组数据,先输入一个23矩阵,再输入一个3*2矩阵。输出输出两个矩阵的乘积。样例输入1 1 11 1 11 11 11 1样例输出3 33 3#include<cstdio>int main(){ int a[2][3]; while(scanf("%d",&a[0][0])!=原创 2020-07-26 23:19:50 · 169 阅读 · 0 评论 -
问题 E: 众数
《算法笔记》5.1小节-简单数学问题 E: 众数题目描述输入20个数,每个数都在1-10之间,求1-10中的众数(众数就是出现次数最多的数,如果存在一样多次数的众数,则输出权值较小的那一个)。输入测试数据有多组,每组输入20个1-10之间的数。输出对于每组输入,请输出1-10中的众数。注意如果存在一样多次数的众数,则输出权值较小的那一个。样例输入8 9 6 4 6 3 10 4 7 4 2 9 1 6 5 6 2 2 3 8样例输出6#include<cstdio>原创 2020-07-26 23:17:02 · 160 阅读 · 0 评论 -
问题 D: abc
《算法笔记》5.1小节-简单数学问题 D: abc题目描述设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c的值。输入题目没有任何输入。输出请输出所有满足题目条件的a、b、c的值。a、b、c之间用空格隔开。每个输出占一行。#include<cstdio>int main(){ for(int a=0;a<=9;a++) { for(int b=0;b<=9;b++) {原创 2020-07-26 23:13:41 · 126 阅读 · 0 评论 -
问题 C: 百鸡问题
《算法笔记》5.1小节-简单数学问题 C: 百鸡问题题目描述用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。编程求解x,y,z所有可能解。输入测试数据有多组,输入n。输出对于每组输入,请输出x,y,z所有可行解,按照x,y,z依次增大的顺序输出。样例输入45样例输出x=0,y=0,z=100x=0,y=1,z=99x=0,y=2,z=98x=0,y=3,z=97x=0,y=4,z=96x=1,y=0,z=99x原创 2020-07-26 23:12:08 · 100 阅读 · 0 评论 -
问题 B: 反序数
《算法笔记》5.1小节-简单数学问题 B: 反序数题目描述设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)求N的值输入程序无任何输入数据。输出输出题目要求的四位数,如果结果有多组,则每组结果之间以回车隔开。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int main(){ for(int i=1000;i<10原创 2020-07-26 23:10:14 · 129 阅读 · 0 评论 -
问题 A: 守形数
《算法笔记》5.1小节-简单数学问题 A: 守形数题目描述守形数是这样一种整数,它的平方的低位部分等于它本身。比如25的平方是625,低位部分是25,因此25是一个守形数。编一个程序,判断N是否为守形数。输入输入包括1个整数N,2<=N<100。输出可能有多组测试数据,对于每组数据,输出"Yes!”表示N是守形数。输出"No!”表示N不是守形数。样例输入611样例输出Yes!No!#include<cstdio>#include<cstri原创 2020-07-26 23:08:19 · 113 阅读 · 0 评论 -
问题A:Find Coins
问题A:Find Coins题意给出n个正整数和正整数m,问n个数字中是否存在一对数字a和b(a<=b),使得a+b=m成立。如果有多对,输出a最小的那一对。输入样例18 151 2 8 7 2 4 11 15输出样例14 11输入样例27 141 8 7 2 4 11 15输出样例2No Solution(1)散列法#include<cstdio>#include<algorithm>using namespace std;const int原创 2020-07-25 17:21:46 · 157 阅读 · 0 评论 -
问题 D: 二分递归快排(Qsort) [2*]
《算法笔记》4.6小节-two pointers问题 D: 二分递归快排(Qsort) [2]*题目描述二分递归快排(Qsort)用二分递归的方法实现快排输入第一行一个数据n,表示有n个数要排序。接下来n行每行一个<=10^7的整数。输出n行,由小到大排序后的数据数据规模:n<=10^5思考:两个递归都会被执行吗?有几种可能?#include<cstdio>const int maxn=100001;int partition(int A[],int lef原创 2020-07-25 14:00:19 · 138 阅读 · 0 评论 -
问题 A: 二路归并排序(mergesort)递归法 [2*+]
《算法笔记》4.6小节-two pointers问题 A: 二路归并排序(mergesort)递归法 [2+]*题目描述二路归并排序(mergesort)递归法用递归法进行二路归并排序输入第一行一个数据n,表示有n个数要排序。接下来n行每行一个<=10^7的整数。输出n行,由小到大排序后的数据数据规模:n<=10^5思考:两个递归都会被执行吗?程序运行结果:题目后台测试出错#include<cstdio>const int maxn=100001;vo原创 2020-07-25 13:57:09 · 251 阅读 · 0 评论 -
问题 C: 查找(二分)
《算法笔记》4.5小节-二分问题 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 4 7 823 6样例输出YESNO#include<cstdio&g原创 2020-07-24 17:18:50 · 96 阅读 · 0 评论 -
问题 B: 打印极值点下标
《算法笔记》4.5小节-二分问题 B: 打印极值点下标题目描述在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。输入每个案例的输入如下:有2×n+1行输入:第一行是要处理的数组的个数n;对其余2×n行,第一行是此数组的元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔。输出每个案例输出不多于n行:每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔,如果没有极值点则原创 2020-07-24 17:16:33 · 120 阅读 · 0 评论 -
问题 A: 找x(二分查找)
《算法笔记》4.5小节-二分问题 A: 找x(二分查找)题目描述输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。输入测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。输出对于每组输入,请输出结果。样例输入41 2 3 43样例输出2#include<cstdio>int binarySearch(int A[],int left,int right,int原创 2020-07-24 17:11:30 · 256 阅读 · 2 评论 -
问题 B: 出租车费
《算法笔记》4.3小节-贪心问题 B: 出租车费题目描述某市出租车计价规则如下:起步4公里10元,即使你的行程没超过4公里;接下来的4公里,每公里2元;之后每公里2.4元。行程的最后一段即使不到1公里,也当作1公里计费。一个乘客可以根据行程公里数合理安排坐车方式来使自己的打车费最小。例如,整个行程为16公里,乘客应该将行程分成长度相同的两部分,每部分花费18元,总共花费36元。如果坐出租车一次走完全程要花费37.2元。现在给你整个行程的公里数,请你计算坐出租车的最小花费。输入输入包含多组测试原创 2020-07-23 23:34:02 · 259 阅读 · 0 评论 -
问题 G: 找零钱
《算法笔记》4.3小节-贪心问题 G: 找零钱题目描述小智去超市买东西,买了不超过一百块的东西。收银员想尽量用少的纸币来找钱。纸币面额分为50 20 10 5 1 五种。请在知道要找多少钱n给小明的情况下,输出纸币数量最少的方案。 1<=n<=99;输入有多组数据 1<=n<=99;输出对于每种数量不为0的纸币,输出他们的面值*数量,再加起来输出样例输入2532样例输出20×1+5×120×1+10×1+1×2#include<cstdio>原创 2020-07-23 17:50:04 · 194 阅读 · 0 评论 -
问题 A: 看电视
《算法笔记》4.3小节-贪心问题 A: 看电视题目描述暑假到了,小明终于可以开心的看电视了。但是小明喜欢的节目太多了,他希望尽量多的看到完整的节目。现在他把他喜欢的电视节目的转播时间表给你,你能帮他合理安排吗?输入输入包含多组测试数据。每组输入的第一行是一个整数n(n<=100),表示小明喜欢的节目的总数。接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。当n=0时,输入结束。输出对于每组原创 2020-07-23 17:45:30 · 97 阅读 · 0 评论 -
问题 A: 吃糖果
《算法笔记》4.2小节-哈希问题 A: 吃糖果题目描述名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。例如:如果N=1,则名名第1天就吃掉它,共有1种方案;如果N=2,则名名可以第1天吃1块,第2天吃1块,也可以第1天吃2块,共有2种方案;如果N=3,则名名第1天可以吃1块,剩2块,也可以第1天吃2块剩1块,所以名名原创 2020-07-23 17:41:49 · 118 阅读 · 0 评论 -
问题 D: String Subtraction
算法笔记》4.2小节-哈希问题 D: String Subtraction题目描述Given two strings S1 and S2, S = S1 - S2 is defined to be the remaining string after taking all the characters in S2 from S1. Your task is simply to calculate S1 - S2for any given strings. However, it might not b原创 2020-07-22 22:40:38 · 74 阅读 · 0 评论 -
问题 C: Be Unique
算法笔记》4.2小节-哈希**问题 C: Be Unique **题目描述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 bets on a unique number原创 2020-07-22 22:37:56 · 111 阅读 · 0 评论 -
问题 A: 谁是你的潜在朋友
算法笔记》4.2小节-哈希问题 A: 谁是你的潜在朋友题目描述“臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会 并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。你现在的任务是从原创 2020-07-22 22:32:23 · 134 阅读 · 0 评论 -
问题 I: 排名
《算法笔记》4.1小节-排序问题 I: 排名题目描述今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的成绩按降序打印。输入测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N < 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给原创 2020-07-22 10:36:53 · 156 阅读 · 0 评论 -
问题 H: 整数奇偶排序
《算法笔记》4.1小节-排序问题 H: 整数奇偶排序题目描述输入10个整数,彼此以空格分隔。重新排序以后输出(也按空格分隔),要求:1.先输出其中的奇数,并按从大到小排列;2.然后输出其中的偶数,并按从小到大排列。输入任意排序的10个整数(0~100),彼此以空格分隔。输出可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔。样例输入0 56 19 81 59 48 35 90 83 7517 86 71 51 30 1 9 36 14 16样例输出83 81 75原创 2020-07-22 10:34:28 · 170 阅读 · 0 评论 -
问题 G: 中位数
《算法笔记》4.1小节-排序问题 G: 中位数题目描述中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数).给出一组无序整数,求出中位数,如果求最中间两个数的平均数,向下取整即可(不需要使用浮点数)输入该程序包含多组测试数据,每一组测试数据的第一行为N,代表该组测试数据包含的数据个数,1<=N<=10000.接着N行为N个数据的输入,N=0时结束输入输出输出中位数,每一组测试数据输出一行样例输入14681550117072原创 2020-07-22 10:32:34 · 189 阅读 · 0 评论 -
问题 F: 小白鼠排队
《算法笔记》4.1小节-排序问题 F: 小白鼠排队题目描述N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。输入多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目。下面有N行,每行是一只白鼠的信息。第一个为不大于100的正整数,表示白鼠的重量,;第二个为字符串,表示原创 2020-07-21 23:16:51 · 119 阅读 · 0 评论 -
问题 E: Problem B
《算法笔记》4.1小节-排序问题 E: Problem B题目描述请写一个程序,对于一个m行m列的(1<m<10)的方阵,求其每一行,每一列及主对角线元素之和,最后按照从大到小的顺序依次输出。输入共一组数据,输入的第一行为一个正整数,表示m,接下来的m行,每行m个整数表示方阵元素。输出从大到小排列的一行整数,每个整数后跟一个空格,最后换行。样例输入415 8 -2 631 24 18 71-3 -9 27 1317 21 38 69样例输出159 145 144 1原创 2020-07-21 23:14:09 · 136 阅读 · 0 评论