自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 一千题,No.0072(选择题)

随后 M 行,每行顺次给出一道题的满分值(不超过 5 的正整数)、选项个数(不少于 2 且不超过 5 的正整数)、正确选项个数(不超过选项个数的正整数)、所有正确选项。按照输入的顺序给出每个学生的得分,每个分数占一行。最后一行输出错得最多的题目的错误次数和编号(题目按照输入的顺序从 1 开始编号)。如果有并列,则按编号递增顺序输出。注意:题目保证学生的答题情况是合法的,即不存在选中的选项数超过实际选项数的情况。批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。

2024-06-16 22:16:45 243

原创 一千题,No.0071(数零壹)

给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0、多少 1。,其字母序号之和为:16+1+20+2+1+19+9+3=71,而 71 的二进制是 1000111,即有 3 个 0、4 个 1。在一行中先后输出 0 的个数和 1 的个数,其间以空格分隔。注意:若字符串中不存在字母,则视为 N 不存在,也就没有 0 和 1。将字母统一为小写在-'a'+1即可。

2024-06-16 20:19:12 127

原创 一千题,No.0070(组合数的和)

给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。输入在一行中先给出 N(1 < N < 10),随后给出 N 个不同的非 0 个位数字。不知道为什么,用g++过不了,得用clang++输出所有可能组合出来的2位数字的和。

2024-06-16 18:50:03 296

原创 一千题,No.0069(集体照)

每个测试用例第 1 行给出两个正整数 N(≤104,总人数)和 K(≤10,总排数)。随后 N 行,每行给出一个人的名字(不包含空格、长度不超过 8 个英文字母)和身高([30, 300] 区间内的整数)。每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、186、175、170,则队形为175、188、190、186、170。注意:假设你面对拍照者,后排的人输出在上方,前排输出在下方。每排人数为 N/K(向下取整),多出来的人全部站在最后一排;

2024-06-16 18:17:47 207

原创 一千题,No.0068(求平均值)

本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。//从字符串a中按""lf"格式输入到temp中。//从temp中按格式输入到字符串b中。是它们的平均值,精确到小数点后 2 位。还有找了半天的一个bug:一个数时,number是单数 :(对每个非法输入,在一行中输出。

2024-06-15 21:20:33 257

原创 一千题,No.0067(住房空置率)

在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下:在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为“可能空置”;若观察期超过某给定阈值 D 天,且满足上一个条件,则该住房为“空置”。现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房占居民区住房总套数的百分比。输入格式:输入第一行给出正整数 N(≤1000),为居民区住房总套数;正实数 e,即低电量阈值;正整数 D,即观察期阈值。

2024-06-14 22:53:04 188

原创 一千题,No.0066(卖个萌)

之后一行给出一个正整数 K,为用户请求的个数。随后 K 行,每行给出一个用户的符号选择,顺序为左手、左眼、口、右眼、右手——这里只给出符号在相应集合中的序号(从 1 开始),数字间以空格分隔。萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。题目保证每个集合都至少有一个符号,并不超过 10 个符号;输入首先在前三行顺序对应给出手、眼、口的可选符号集。对每个用户请求,在一行中输出生成的表情。若用户选择的序号不存在,则输出。现给出可选用的符号集合,请你按用户的要求输出表情。有的符号编译器都输出不了。

2024-06-14 18:00:50 181

原创 一千题,No.0065(复数乘法)

复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i2=−1;也可以写成极坐标下的指数形式 (R×e(Pi)),其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 R(cos(P)+isin(P))。在将两个复数 z1​=R1​(cosP1​+isinP1​) 和 z2​=R2​(cosP2​+isinP2​) 相乘后,结果为 R1​R2​(cos(P1​−P2​)+isin(P1​+P2​))。将这个结果转换为常规形式。但是还是会有两个样例报错。

2024-06-14 14:54:01 348

原创 一千题,No.0064(螺旋矩阵)

本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N;后来把set排序改为vector,sort排序依然超时,果断打开柳s的代码,发现不是排序的问题,是m,n的取值函数耗时太大。输入在第 1 行中给出一个正整数 N,第 2 行给出 N 个待填充的正整数。每行 n 个数字,共 m 行。相邻数字以 1 个空格分隔,行末不得有多余空格。

2024-06-14 11:00:04 282

原创 一千题,No.0063(数列的片段和)

N比较大时,double类型的值多次累加导致的精度误差,因为输入为十进制小数,存储到double中时,计算机内部使用二进制表示,且计算机的字长有限,有的十进制浮点数使用二进制无法精确表示只能无限接近,在字长的限制下不可避免会产生舍入误差,这些细微的误差在N较大时多次累加会产生较大误差,所以建议不要使用double类型进行多次累加的精确计算,而是转为能够精确存储的整型。i出现的次数为1,2,3,4... i 即为 i 次,q的次数为n-i+1次,两个可以同时为i,所以q要+1;发现自己的数学还是不够好,

2024-06-14 09:23:43 534

原创 一千题,No.0062(数字加密)

本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。在一行中输出加密后的结果。将a,b逆转,然后补‘0’

2024-06-13 21:54:30 256

原创 一千题,No.0061(编程团体赛)

编程团体赛的规则为:每个参赛队由若干队员组成;参赛队的成绩为所有队员的成绩和;输入第一行给出一个正整数 N(≤104),即所有参赛队员总数。在一行中输出冠军队的编号和总成绩,其间以一个空格分隔。注意:题目保证冠军队是唯一的。现给定所有队员的比赛成绩,请你编写程序找出冠军队。为 1 到 1000 的正整数,为 1 到 10 的正整数,为 0 到 100 的整数。

2024-06-13 16:33:36 253

原创 一千题,No.0060(划拳)

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。是划出的数字,均为不超过 100 的正整数(两只手一起划)。在一行中先后输出甲、乙两人喝酒的杯数,其间以一个空格分隔。

2024-06-13 16:26:37 442

原创 一千题,No.0059(快速排序)

著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?在第 2 行中按递增顺序输出这些元素,其间以 1 个空格分隔,行首尾不得有多余空格。,因为元素如果是主元素,只能在这个位置,因此只需要判断一边就行了,可以通过迭代一个最大元素来判断数字是否是左边最大的;,然后在判断前面的元素和后面的元素,但是因为位置相同了,所以。

2024-06-13 12:40:18 206

原创 一千题,No.0058(火星数字)

输入第一行给出一个正整数 N(<100),随后 N 行,每行给出一个 [0, 169) 区间内的数字 —— 或者是地球文,或者是火星文。将其按表上从大大小依次减去即可,然后将其对应的单词存入另一个容器中方便格式输出。为了方便交流,请你编写程序实现地球和火星数字之间的互译。对应输入的每一行,在一行中输出翻译后的另一种语言的数字。需要用一个容器存储所有的火星文对应的数字。在根据输入于输出输出相应的答案即可。根据单词对应的数字依次加上即可。

2024-06-12 22:18:26 325

原创 一千题,No.0057(输出PATest)

这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。给定一个长度不超过 104 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按。输入在一行中给出一个长度不超过 104 的、仅由英文字母构成的非空字符串。在一行中按题目要求输出排序后的字符串。

2024-06-12 13:58:33 312

原创 一千题,No.0056(字符统计)

输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。请编写程序,找出一段给定文字中出现最频繁的那个英文字母。

2024-06-12 13:48:40 173

原创 一千题,NO.0055(考试座位号)

正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用 1 个空格分隔。考生信息之后,给出一个正整数 M(≤N),随后一行中给出 M 个待查询的试机座位号码,以空格分隔。

2024-06-12 13:40:20 325

原创 一千题,No.0054(有几个PAT)

需要注意的是,P*T可能超出int范围,因此需要对其进行mod(1000000007)后在相加。先统计出T的个数,然后遍历每遇到一个T就减去,每遇到一个P就加上,然后遇到A让他俩相乘相加即可。由于结果可能比较大,只输出对 1000000007 取余数的结果。需要注意的是sum必需严格小于1000000007,也就是说,输入只有一行,包含一个字符串,长度不超过105,只包含。构成单词的总数等于A前面的P乘后面的T的个数。现给定字符串,问一共可以形成多少个。在一行中输出给定字符串中包含多少个。

2024-06-11 13:27:17 102

原创 一千题,No.0053(到底买不买)

为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她想要的珠子,还多了8颗不需要的珠子;第2串不能买,因为没有黑色珠子,并且少了一颗红色的珠子。小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。每个测试用例分别在 2 行中先后给出摊主的珠串和小红想做的珠串,两串都不超过 1000 个珠子。

2024-06-11 11:47:56 277

原创 一千题,No.0052(统计同成绩学生)

输入在第 1 行给出不超过 105 的正整数 N,即学生总人数。随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔。最后一行给出要查询的分数个数 K(不超过 N 的正整数),随后是 K 个分数,中间以空格分隔。在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格。本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。

2024-06-10 22:25:36 295

原创 一千题,No.0051(在霍格沃茨找零钱)

如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。在一行中用与输入同样的格式输出哈利应该被找的零钱。如果他没带够钱,那么输出的应该是负数。将钱的单位转换为最小,然后进行加减得出最小单位的钱数,然后将其进位输出即可。是 [0, 17) 区间内的整数,,其间用 1 个空格分隔。

2024-06-10 22:19:01 161

原创 一千题,No.0050(插入与归并)

是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下 1 个有序的序列。而Merge_sort就需要模拟了,因为他的常用的实现方法是用递归,不好暂停后进行下一步,所以用模拟的方法更好实现,当然也是一大坨。现给定原始序列和由某排序算法产生的中间序列,请你判断该算法究竟是哪种排序算法?首先在第 1 行中输出。

2024-06-10 21:48:48 570

原创 希尔排序(Shell_sort)

希尔排序虽然看着多了跟多步,但是在大数据的情况下要比单纯的插入排序快上不少。希尔排序常用于插入排序的数据预处理,用于提升插入排序的大数据处理速度。将i初始值改为1,然后j循环所有的1改为n即可。将插入排序的函数改为n递增即可使用希尔排序。

2024-06-10 13:46:41 304 1

原创 计数排序(Counting_sort)

哈希函数编号为数字,值为数字出现次数,例如hash[3] = 4表示3出现了4次。寻用哈希思想将数存储在一个哈希数组中,然后遍历哈希数组进行排序。首先构建哈希函数,并将初始值设置为0。然后遍历一次使数组进行排序。

2024-06-10 12:50:00 169

原创 堆排序(Heap_sort)

该函数只能使一个头节点的元素最大,需要从最小的父节点进行循环,因为如果从下往上的话最大的数传播不上去;在主函数后续只需要排序一次是因为:只有头节点不满足大根堆,相当于第一次的最后一步,也就是排序最后一个头节点,因此只需要排序一次即可构成大根堆;然后将首节点与最后节点交换,因为大根堆的头节点最大,这时候最末尾元素就是最大的了。然后在用heap一次即可找打剩余最大的数字持续交换直到剩下最后一个元素即可。父节点的子节点为son = dad*2+1 或 dad*2+2。有父节点大于所有子节点。

2024-06-09 20:33:36 339

原创 快速排序(Quick_Sort)

先用一个变量t存储元素,从左右两端循环,因为排序的元素是最左端元素,所以应该先从右侧开始,如果遇到了小于t的元素,就将左侧覆盖为他,接着从左端开始,如果遇到比t大的元素就将他覆盖到右边,直到low == hight;这个时候的位置就是左侧数都小于t,右侧数都大于t,将t插入后返回即可。每次排序一个元素,每次使他的左边都比他小,右边都比他大;先排序low位置的元素。然后返回他排序后的位置。接着排序他左边和右边。递归直到只剩一个元素。

2024-06-09 20:06:31 604

原创 选择排序(Selection_Sort)

最最最最最最最最最最最最最最简单的一种的排序,没有任何的门槛和技术而且思想十分简单。每次循环选择最小的元素交换。

2024-06-09 19:43:20 190

原创 冒泡排序(Bobble_sort)

从最尾端开始比较,如果元素小就交换,就像这样将最小的元素像冒泡一样顶到最上面。

2024-06-09 19:36:48 239

原创 归并排序(Merge_sort)

递归结束条件是low < hight,也就是最小为2的数组,而如果数组总长度小于1就会不做任何排序。主要函数是将两个分开的数组排序成一个数组,需要两个指针指向两个数组开头,每次排列进去最小的数字;两个排序完后排序四个的,逐步递归,直到完成最开头的Merge函数,排序结束。递归函数的作用是将数组按顺序拆分为两个两个的好多对数字,(两个指针指向两个数组开头,每次排列进去最小的数字);将一个数组拆分为许多个两两结合的数组,然后逐步排序。将这两个数字看作一个数组,和另一对数组排序。需要递归函数和归并函数。

2024-06-09 19:06:30 296

原创 插入排序(Insertion_sort)

基本思想就是从第一个元素开始,每次排列一个元素,一直排列到结尾。因为3小于4所以直接结束循环,将4的位置还是赋值给4。就这样一直覆盖,直到找到比1小或者到最开头为止。接着排序2,这里直接写出排序2的步骤,自行理解。因为3 > 1所以直接将3覆盖到1上。然后结束循环的位置就是这个元素的位置。第一个元素不用排序,从第二个开始。结束循环位置是0在,则赋值为。而1用一个变量先存储着。然后排序5和7也是一样。

2024-06-09 17:41:33 414

原创 四舍五入问题

而将数四舍五入赋值给变量可以用round()函数。但是这么些只能转换位四舍五入的整数。表示将num四舍五入赋值给a。但是这个方法有时候会出错。代表输出n位四舍五入小数。这样就可以精确两位小数。单纯输出四舍五入可以用。

2024-06-08 22:49:57 300

原创 一千题,No.0049(跟奥巴马一起编程)

美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50%(四舍五入取整)。输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。

2024-06-08 22:31:29 303

原创 Dijkstra算法(迪杰斯特拉算法)

3,进入循环,每次寻找dis中最小的节点,然后遍历邻接表,如果邻接表的距离+该点的dis < dis[循环到的点],那么就迭代循环到的点,最后将最小的那个点check设置为true。而迷宫的最短路径可以用BFS来做,虽然BFS不能用于带权值的迷宫,但是可以对BFS稍微改进,只需要把判断是否走过的数组改为最短路径的数组,在判断是否可走时判断是否比最短的小即可。1,初始化一个graph二维数组来存储图的邻接表,一个dis一维数组来存储最短路径,一个check来存储是否走过。也可以直接写一个函数判断。

2024-06-07 13:11:39 515

原创 DFS(深度优先搜索)

2,然后判断各个方向是否能走,如果能走则将arrB设置为1,然后递归DFS(可走的方向,step+1)然后将arrB设置为0,因为要回退,就是把走过的点重新设置为未走过。1,从头结点开始,如果为终点,则迭代min,然后回退(无论是否未终点都需要回退,因为已经无路可走)跟BFS不同的是:DFS优先沿着一个节点走,直到走到结束点,而BFS同时走多个节点;DFS和BFS一样,只能用于个节点权值相等的情况。

2024-06-07 09:29:01 358

原创 BFS(广度优先搜索)

3,判断头节点是否为出口并迭代min,将对列头节点可走的点入队。也可以直接通过pair使用。而如果5和4的权值为1其他为无穷大,则无法找到最短路径。而当权值相等时则不会出现这样的问题,因为2和4就等价了。需要注意的是个点的权值必需相等,否则会出现坏路的情况。然后将入口入队,并设置入口走过(arrB = 1)min记录最短步数,初始化为无穷大。当入队1时,通过1入队2,4;BFS常用于最短路径求解;5,重复3,4直到队列为空。构建arrA存储迷宫,然后通过2入队3,5。

2024-06-07 09:11:39 298

原创 判断素数/质数

网上找了一圈没发现了一个优化的点:即大于5的素数都在6的倍数的两侧,如5,6,7,5和7就是素数11,12,13,11和13就是素数,但是在6的倍数的两侧的不一定是素数,因此还需要判断一次。优化后运行速度提升了一个档次。

2024-06-06 22:26:12 355

原创 求最小公倍数

因此可以通过之前的gcd公式求出最小公倍数。

2024-06-06 21:50:41 303

原创 求最大公约数

而a和a%b的最大公约数又等于a%b和b % (a%b)的最大公约数,一直循环直到b=0;又因为a%b > b % (a%b)恒成立所以b比a小,所以b先=0;a,b的最大公约数等于(a或b)和a%b的最大公约数;

2024-06-06 21:30:26 203

原创 一千题,No.0048(有理数四则运算)

的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式。若除法分母为 0,则输出。需要用到最大公约数函数,自己写了一坨一直超时,于是找大佬偷了一个。本题要求编写程序,计算 2 个有理数的和、差、积、商。只需要构建一个可以按题目要求输出分数的函数即可。题目保证正确的输出中没有超过整型范围的整数。写的是真nb,比我手搓的答辩好多了。分别在 4 行中按照。

2024-06-06 19:00:52 453

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除