【2022寒假萌新训练-3】7-4 天梯赛的善良
天梯赛是个善良的比赛。善良的命题组希望将题目难度控制在一个范围内,使得每个参赛的学生都有能做出来的题目,并且最厉害的学生也要非常努力才有可能得到高分。
于是命题组首先将编程能力划分成了 10^6个等级(太疯狂了,这是假的),然后调查了每个参赛学生的编程能力。现在请你写个程序找出所有参赛学生的最小和最大能力值,给命题组作为出题的参考。
输入格式:输入在第一行中给出一个正整数 N(≤2×10^4),即参赛学生的总数。随后一行给出 N 个不超过 10^6 的正整数,是参赛学生的能力值。
输出格式:第一行输出所有参赛学生的最小能力值,以及具有这个能力值的学生人数。第二行输出所有参赛学生的最大能力值,以及具有这个能力值的学生人数。同行数字间以 1 个空格分隔,行首尾不得有多余空格。
输入样例:121086 75 233 888 666 75 886 888 75 666
输出样例:1275 3888 2
思路 根据题意,要找出最小和最大能力值已经相应的人数,要记录的是能力值和人数,可以采用map存储,利用map的自动排序,map的第一个元素就是最小能力值和人数,最后一个元素就是最大能 ...
【2022寒假萌新训练-3】7-3 素数对猜想
7-3 素数对猜想 (20 分)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<10^5),请计算不超过N的满足猜想的素数对的个数。
输入格式:输入在一行给出正整数N。
输出格式:在一行中输出不超过N的满足猜想的素数对的个数。
输入样例:120
输出样例:14
思路 套用判断素数的模板,然后遍历从2~n,判断的是数字i和数字i + 2是否同时为素数即可,同时为素数则ans++
代码1234567891011121314151617181920#include<bits/stdc++.h>using namespace std;bool IsPrime(int n) { if(n <= 1) return false; for(int i = 2; i <= sqrt(n); i++) { if(n % i == 0) return fa ...
【2022寒假萌新训练-3】7-2 判断素数
本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231的需要判断的正整数。
输出格式:对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
输入样例:123211111
输出样例:12YesNo
思路 根据判断素数的模板直接套就可以,为了提高运行效率,为了防止i*i超出int范围,可以采用i <= sqrt(n)。
代码1234567891011121314151617181920212223#include<bits/stdc++.h>using namespace std;bool IsPrime(int n) { if(n <= 1) return false; for(int i = 2; i <= sqrt(n); ++i) { if(n % i == 0) return false; } return true;}int mai ...
【2022寒假萌新训练-3】7-1 最大公因数与最小公倍数
求两个正整数 a,b 的最大公因数与最小公倍数。
两个数的最大公因数指的是 a,b 共有的约数中最大的一个。
两个数的最小公倍数指的是 a,b 共有的倍数中最小的一个。
输入格式:在一行中给出两个数字 a,b (1<=a,b<=1,000,000,000)
输出格式:在一行中以空格分隔输出 a,b 的最大公因数与最小公倍数。
输入样例:16 9
输出样例:13 18
思路 根据欧几里德算法或者C++的函数库求出a和b的最大公因数.
最小公倍数则是a*b除以它们的最大公倍数,为了防止a * b计算时由于结果过大而溢出,所以可以先让a除以最大公倍数再乘b
欧几里德算法:设a,b均为正整数,a,b的最大公约数等于b,a%b的最大公约数即Gcd(a,b) = Gcd(b,a % b)
代码123456789101112#include<bits/stdc++.h>using namespace std;typedef long long ll;ll Gcd(ll a, ll b) { return a % b == 0 ...
【2022每日分享day12】Git与GitHub
河北大学2022寒假萌新程序设计训练每日知识分享-day12
每日分享——Git与GitHubGitGit是目前世界上最先进的分布式版本控制系统。Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。
GitHubGitHub是一个基于Git的远程文件托管平台。Git本身完全可以做到版本控制,但其所有内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。
学习网站
Git 教程 | 菜鸟教程
https://www.runoob.com/ https://www.runoob.com/git/git-tutorial.html
Git - 关于版本控制
https://git-scm.com/ https://www.git-scm.com/book/zh/v2/
图形化的学习
https://learngitbranching.js.org/?locale=zh_CN
菜鸟教程网站也 ...
【2022每日分享day11】保存多次复制内容Ditto+全排列函数
河北大学2022寒假萌新程序设计训练每日知识分享-day11
每日分享——保存多次复制内容Ditto+全排列函数可以保存多次复制内容的软件——DittoDitto是剪贴板增强工具,免费开源且支持中文(开源就是说大概率能在github找到这个软件的源代码,可以下载下来自己改一些功能)。你可以保存多次复制的内容,打开近期内容面板后选择一个用于粘贴,包括图片等非文字格式的复制也可,可以自己设置保存多少条近期复制的信息和一些快捷键。
对于平时的刷算法题它也可以带来极大的方便:可以避免在做题调试代码时重复的复制测试点、复制代码提交。
C++的STL中可以用于计算全排列的函数
【2022每日分享day10】algorithm和cctype头文件常用函数
河北大学2022寒假萌新程序设计训练每日知识分享-day10
每日分享——< algorithm >和< cctype >头文件常用函数
【2022每日分享day09】字符串和数字转换函数总结
河北大学2022寒假萌新程序设计训练每日知识分享-day09
每日分享——字符串和数字转换函数总结
【2022寒假精进训练-3】7-4 N个数求和
本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。
输入格式:输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 ...给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。
输出格式:输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。
输入样例1:1252/5 4/15 1/30 -2/60 8/3
输出样例1:13 1/3
输入样例2:1224/3 2/3
输出样例2:12
输入样例3:1231/3 -1/6 1/8
输出样例3:17/24
思路先根据分数加法的公式进行累加$\frac{A}{B}+\frac{a}{b} = \frac{Ab+aB}{Bb}$,最后分离出整数部分和分数部分输出即可。
...
【2022寒假精进训练-3】7-2 出生年
以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。
输入格式:输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4。注意不足4位的年份要在前面补零,例如公元1年被认为是0001年,有2个不同的数字0和1。
输出格式:根据输入,输出x和能达到要求的年份。数字间以1个空格分隔,行首尾不得有多余空格。年份要按4位输出。注意:所谓“n个数字都不相同”是指不同的数字正好是n个。如“2013”被视为满足“4位数字都不同”的条件,但不被视为满足2位或3位数字不同的条件。
输入样例1:11988 4
输出样例1:125 2013
输入样例2:11 2
输出样例2:10 0001
思路判断年份y中是否有n个不同的数字,需要是不同的数字,所以使用set容器,将年份y中的每位数字放入set容器中,然后比较set容器大小与n是否相同。需要注意的是年份y如果是小于 ...