自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【算法】【双指针】acwing算法基础 799. 最长连续不重复子序列

i为右指针,j为左指针。对于每一个i,如何确定j的位置:由于[j, i - 1]是前一步得到的最长连续不重复子序列,所以如果[j, i]中有重复元素,一定是a[i],因此右移j直到a[i]不重复为止。给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。第二行包含 n 个整数(均在 0∼105 范围内),表示整数序列。共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。第一行包含整数 n。

2025-02-11 18:35:13 115

原创 【算法】【差分】acwing算法基础 798. 差分矩阵

输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1) 和。接下来 q 行,每行包含 5 个整数 x1,y1,x2,y2,c,表示一个操作。共 n 行,每行 m 个整数,表示所有操作进行完毕后的最终矩阵。(x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上 c。接下来 n 行,每行包含 m 个整数,表示整数矩阵。请你将进行完所有操作后的矩阵输出。第一行包含整数 n,m,q。

2025-02-11 16:15:18 332

原创 【算法】【差分】acwing算法基础 797. 差分

接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。接下来 m 行,每行包含三个整数 l,r,c,表示一个操作。共一行,包含 n 个整数,表示最终序列。−1000≤整数序列中元素的值≤1000。第二行包含 n 个整数,表示整数序列。输入一个长度为 n 的整数序列。请你输出进行完所有操作后的序列。第一行包含两个整数 n 和 m。四个步骤,见注释题解。

2025-02-11 11:48:57 277

原创 【练习】PAT 乙 1049 数列的片段和

(0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这10个片段。如本例中10个片段总和是0.1 + 0.3 + 0.6 + 1.0 + 0.2 + 0.5 + 0.9 + 0.3 + 0.7 + 0.4 = 5.0。输入第一行给出一个不超过105的正整数N,表示数列中数的个数,第二行给出N个不超过1.0的正数,是数列中的数,其间以空格分隔。

2025-02-11 09:31:04 192

原创 【格式说明符及其对应的数据类型】

等格式化输入输出函数使用。在 C/C++ 中,

2025-02-11 09:22:45 479

原创 【算法】【前缀和】acwing算法基础 796. 子矩阵的和

输入一个 n 行 m列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。接下来 q 行,每行包含四个整数 x1,y1,x2,y2,表示一组询问。接下来 n 行,每行包含 m 个整数,表示整数矩阵。对于每个询问输出子矩阵中所有数的和。共 q 行,每行输出一个询问的结果。−1000≤矩阵内元素的值≤1000。第一行包含三个整数 n,m,q。

2025-02-10 21:06:04 242

原创 【算法】【前缀和】acwing算法基础 795. 前缀和

接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。接下来再输入 m 个询问,每个询问输入一对 l,r。第二行包含 n 个整数,表示整数数列。共 m 行,每行输出一个询问的结果。−1000≤数列中元素的值≤1000。输入一个长度为 n 的整数序列。第一行包含两个整数 n 和 m。

2025-02-10 19:54:23 518

原创 【练习】PAT 乙 1074 宇宙无敌加法器

而在PAT星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为“PAT数”。0527”就表示最低位是7进制数、第2位是2进制数、第3位是5进制数、第4位是10进制数,等等。每一位的进制d或者是0(表示十进制)、或者是[2,9]区间内的整数。因为最低位是7进制的,所以我们得到1和1个进位。第2位是:0+1+1(进位)=2;因为此位是2进制的,所以我们得到0和1个进位。第3位是:2+4+1(进位)=7;因为此位是5进制的,所以我们得到2和1个进位。第4位是:6+1(进位)=7;

2025-02-09 23:00:13 359

原创 【算法】【高精度】acwing算法基础 794. 高精度除法

给定两个非负整数(不含前导 0) A,B,请你计算 A/B 的商和余数。1≤A的长度≤100000,1≤B≤10000,B 一定不为 0。共两行,第一行包含整数 A,第二行包含整数 B。共两行,第一行输出所求的商,第二行输出所求余数。

2025-02-09 20:37:03 303

原创 【算法】【高精度】acwing算法基础 793. 高精度乘法

给定两个非负整数(不含前导 0) A 和 B,请你计算 A×B 的值。共两行,第一行包含整数 A,第二行包含整数 B。1≤A的长度≤100000, 0≤B≤10000。共一行,包含 A×B 的值。

2025-02-09 19:32:18 520

原创 【练习】PAT 乙 1048 数字加密

本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10、Q代表11、K代表12;对偶数位,用B的数字减去A的数字,若结果为负数,则再加10。这里令个位为第1位。输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空格分隔。的大小为 14,而不是 13,是因为 C/C++ 中的字符串常量(如。在一行中输出加密后的结果。,用于表示字符串的结束。

2025-02-08 16:54:50 484

原创 【算法】【高精度】acwing算法基础 792. 高精度减法

1、注意数字字符串的比较:不是直接比较大小,而是先比较长度,长度相同下可以直接比较大小。给定两个正整数(不含前导 0),计算它们的差,计算结果可能为负数。共两行,每行包含一个整数。共一行,包含所求的差。1≤整数长度≤105。

2025-02-08 11:01:01 573

原创 【练习】PAT 乙 1047 编程团体赛

编程团体赛的规则为:每个参赛队由若干队员组成;参赛队的成绩为所有队员的成绩和;现给定所有队员的比赛成绩,请你编写程序找出冠军。随后N行,每行给出一位队员的成绩,格式为:“队伍编号-队员编号。原文链接:https://blog.csdn.net/liuchuo/article/details/51994326。成绩”,其中“队伍编号”为1到1000的正整数,“队员编号”为1到10的正整数,“成绩”为0到100的整数。在一行中输出冠军队的编号和总成绩,其间以一个空格分隔。注意:题目保证冠军 队是唯一的。

2025-02-07 16:33:06 237

原创 【算法】【高精度】acwing算法基础 791. 高精度加法

给定两个正整数(不含前导 0),计算它们的和。共两行,每行包含一个整数。1≤整数长度≤100000。共一行,包含所求的和。

2025-02-07 10:05:54 597

原创 【算法】【二分】acwing算法基础 790. 数的三次方根

由此可见,想要保留出正确的六位小数,需要保证第七位是精准的,不能被进位,因此循环条件需要满足。共一行,包含一个浮点数,表示问题的解。注意,结果保留 6 位小数。给定一个浮点数 n,求它的三次方根。共一行,包含一个浮点数 n。

2025-02-06 10:16:41 322

原创 【练习】PAT 乙 1046 划拳

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

2025-02-06 09:34:26 374

原创 【练习】PAT 乙 1044 火星数字

地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。火星人将进位以后的12个高位数字分别称为:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer, jou。输入第一行给出一个正整数N(<100),随后N行,每行给出一个[0, 169)区间内的数字 —— 或者是地球文,或者是火星文。对应输入的每一行,在一行中输出翻译后的另一种语言的数字。

2025-02-05 20:56:57 301

原创 【算法】【二分】acwing 算法基础 789. 数的范围

第二行包含 n个整数(均在 1∼10000范围内),表示完整数组。接下来 q 行,每行包含一个整数 k,表示一个询问元素。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。共 q 行,每行包含两个整数,表示所求元素的起始位置和终止位置。题解2:不用考虑边界+1 -1的情况,容易记忆。如果数组中不存在该元素,则返回 -1 -1。如果数组中不存在该元素,则返回 -1 -1。题解1:需要考虑边界+1 -1的情况。

2025-02-04 19:50:55 475

原创 【练习】PAT 乙 1043 输出PATest

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

2025-02-04 09:24:09 513

原创 【练习】PAT 乙 1040 有几个PAT

字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位§,第4位(A),第6位(T);第二个PAT是第3位§,第4位(A),第6位(T)。现给定字符串,问一共可以形成多少个PAT?在一行中输出给定字符串中包含多少个PAT。由于结果可能比较大,只输出对1000000007取余数的结果。输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。2.再次遍历字符串,遇到A之前,统计P个数,减少T个数。3.遇到A统计可能的组合方式:即当前遍历到A时。1.遍历字符串,统计T总数。

2025-02-03 17:22:45 243

原创 【练习】PAT 乙 1039 到底买不买

小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。如果可以买,则在一行中输出“Yes”以及有多少多余的珠子;如果不可以买,则在一行中输出“No”以及缺了多少珠子。其间以1个空格分隔。每个输入包含1个测试用例。每个测试用例分别在2行中先后给出摊主的珠串和小红想做的珠串,两串都不超过1000个珠子。

2025-02-03 16:27:49 549

原创 【练习】PAT 乙1038 统计同成绩学生

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

2025-02-01 20:21:27 433

原创 【练习】PAT 乙 1037 在霍格沃茨找零钱

输入在1行中分别给出P和A,格式为“Galleon.Sickle.Knut”,其间用1个空格分隔。这里Galleon是[0,10^7]区间内的整数,Sickle是[0, 17)区间内的整数,Knut是[0, 29)区间内的整数。就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。在一行中用与输入同样的格式输出哈利应该被找的零钱。

2025-01-31 23:05:42 270

原创 【练习】PAT 乙 1031 查验身份证

按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};输入第一行给出正整数N(<= 100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。

2025-01-30 16:33:18 796

原创 【练习】PAT 乙 1027 打印沙漏

所谓“沙漏形状”,是指每行输出奇数个符号;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。

2025-01-30 15:45:56 518

原创 【练习】PAT 乙 1024 科学计数法

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[±][1-9]”.”[0-9]+E[±][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。每个输入包含1个测试用例,即一个以科学计数法表示的实数A。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。对每个测试用例,在一行中按普通数字表示法输出A,并保证所有有效位都被保留,包括末尾的0。

2025-01-27 18:53:05 537

原创 【insert函数】

函数签名功能描述示例插入字符串插入 C 风格字符串插入字符串的一部分插入多个字符在迭代器位置插入字符在迭代器位置插入多个字符在迭代器位置插入一段字符序列在迭代器位置插入初始化列表中的字符。

2025-01-27 18:44:21 814

原创 【算法】【归并排序】AcWing 算法基础 788. 逆序对的数量

逆序对的定义如下:对于数列的第 i个和第 j 个元素,如果满足 i<j且 a[i]>a[j],则其为一个逆序对;给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。1≤n≤100000,数列中的元素的取值范围 [1,109]。第二行包含 n 个整数,表示整个数列。第一行包含整数 n,表示数列的长度。输出一个整数,表示逆序对的个数。

2025-01-27 14:42:20 542

原创 【算法】acwing 算法基础 787. 归并排序

给定你一个长度为 n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入共两行,第一行包含整数 n,第二行包含 n个整数(所有整数均在 1∼10^9范围内),表示整个数列。输出共一行,包含 n 个整数,表示排好序的数列。

2025-01-26 17:23:01 308

原创 【练习】PAT 乙 1023 组个最小数

给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。现给定数字,请编写程序输出能够组成的最小的数。在一行中输出能够组成的最小的数。

2025-01-26 13:26:58 613

原创 【练习】PAT 乙 1020 月饼

样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第3 种月饼,获得 72 + 45/2 = 94.5(亿元)。每个测试用例先给出一个不超过 1000 的正整数 N 表示月饼的种类数、以及不超过500(以万吨为单位)的正整数 D 表示市场最大需求量。月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。

2025-01-25 18:25:12 436

原创 【算法】快速排序2

给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k个数。第二行包含 n个整数(所有整数均在 1∼10^9范围内),表示整数数列。while给漏了:一次递归要循环到 i 与 j 相遇为止。输出一个整数,表示数列的第 k 小数。第一行包含两个整数 n和 k。

2025-01-25 09:30:05 493

原创 【练习】PAT 乙 1019 数字黑洞

给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。如果N的4位数字全相等,则在一行内输出“N – N = 0000”;否则将计算的每一步在一行内输出,直到6174作为差出现,输出格式见样例。现给定任意4位正整数,请编写程序演示到达黑洞的过程。题解2:优化题解1,将一部分重复代码合并。例如,我们从6767开始,将得到。

2025-01-24 20:57:27 321

原创 【算法】快速排序1

输入格式 输入共两行,第一行包含整数 𝑛。第二行包含 𝑛个整数(所有整数均在 1∼10^9范围内),表示整个数列。给定你一个长度为 𝑛的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输出共一行,包含 𝑛 个整数,表示排好序的数列。

2025-01-24 11:49:50 395

原创 【练习】PAT 乙 1018 锤子剪刀布

随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

2025-01-21 17:16:01 782

原创 【练习】PAT 乙 1015 德才论 (自定义比较函数,类似excel里面的 筛选+排序 )

除了基本的准考证号、德分、才分以外,再定义用以排序的。

2025-01-21 10:24:16 878

原创 【练习】PAT 乙 1014 福尔摩斯的约会

大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母’D’,代表星期四;后面两字符串第1对相同的英文字母’s’出现在第4个位置(从0开始计数)上,代表第4分钟。在一行中输出约会的时间,格式为“DAYHH:MM”,其中“DAY”是某星期的3字符缩写,即MON表示星期一,TUE表示星期二,WED表示星期三,THU表示星期四,FRI表示星期五,SAT表示星期六,SUN表示星期日。大写字母的范围需要按照题目要求,

2025-01-20 10:38:04 381

原创 【练习】PAT 乙 1013 数素数

输出格式:输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。令Pi表示第i个素数。现任给两个正整数M<=N<=10^4,请输出PM到PN的所有素数。输入在一行中给出M和N,其间以空格分隔。1不是素数,2是素数。

2025-01-19 21:26:52 534

原创 【练习】PAT 乙 1007 素数对猜想

让我们定义dn为:dn=pn+1–pn,其中pi是第i个素数。显然有d1=1且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。每个测试输入包含1个测试用例,给出正整数N。判断是不是素数对可以优化。

2025-01-19 12:44:12 248

原创 【练习】PAT 乙 1006 换个格式输出整数

让我们用字母B来表示“百”、字母S表示“十”,用“12…n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。每个测试输入包含1个测试用例,给出正整数n(<1000)。每个测试用例的输出占一行,用规定的格式输出n。计算出百位、十位、个位分别为多少依次输出即可。

2025-01-19 10:00:46 312

空空如也

空空如也

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

TA关注的人

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