
基础题
本专栏以基础为主
navy.star
流水无情
展开
-
线段树简单介绍
【代码】线段树简单介绍。原创 2022-09-06 21:57:57 · 245 阅读 · 0 评论 -
性感素数p
“性感素数 ”是指形如 (p,p+6) 这样的一对素数。之所以叫这个名字,是因为拉丁语管“六”叫“sex”(即英语的“性感”)。现给定一个整数,请你判断其是否为一个性感素数。输入格式输入在一行中给出一个正整数 N。输出格式若 N 是一个性感素数,则在一行中输出 Yes,并在第二行输出与 N 配对的另一个性感素数(若这样的数不唯一,输出较小的那个)。若 N 不是性感素数,则在一行中输出 No,然后在第二行输出大于 N 的最小性感素数。数据范围1≤N≤108(暴力枚举) O(n)O(n)没啥好说的原创 2022-06-14 23:06:41 · 224 阅读 · 0 评论 -
二维费用的背包
题目描述有 N 件物品和一个容量是 V 的背包,背包能承受的最大重量是 M。每件物品只能用一次。体积是 vi,重量是 mi,价值是 wi。求解将哪些物品装入背包,可使物品总体积不超过背包容量,总重量不超过背包可承受的最大重量,且价值总和最大。输出最大价值。输入格式第一行三个整数,N,V,M,用空格隔开,分别表示物品件数、背包容积和背包可承受的最大重量。接下来有 N 行,每行三个整数 vi,mi,wi,用空格隔开,分别表示第 i 件物品的体积、重量和价值。输出格式输出一个整数,表示原创 2022-04-05 10:49:06 · 1557 阅读 · 0 评论 -
三角形面积
题目描述Farmer John 想要给他的奶牛们建造一个三角形牧场。有 N 个栅栏柱子分别位于农场的二维平面上不同的点 (X1,Y1)…(XN,YN)。他可以选择其中三个点组成三角形牧场,只要三角形有一条边与 x 轴平行,且有另一条边与 y 轴平行。Farmer John 可以围成的牧场的最大面积是多少?保证存在至少一个合法的三角形牧场。输入格式输入的第一行包含整数 N。以下 N 行每行包含两个整数 Xi 和 Yi,均在范围 −104…104 之内,描述一个栅栏柱子的位置。输原创 2022-04-04 21:15:13 · 704 阅读 · 0 评论 -
俩个闹钟响铃
题目描述有两个闹钟。第一个闹钟会在 b,b+a,b+2a,b+3a,… 时刻响铃。第二个闹钟会在 d,d+c,d+2c,d+3c,… 时刻响铃。请计算两个闹钟第一次同时响铃的具体时刻。输入格式第一行包含两个整数 a,b。第二行包含两个整数 c,d。输出格式一个整数,表示第一次同时响铃的具体时刻。如果永远都不可能同时响铃,则输出 −1。数据范围所有测试点满足 1≤a,b,c,d≤100。样例输入样例1:20 29 19输出样例1:82输入样例2:2 1原创 2022-03-28 20:43:27 · 2420 阅读 · 2 评论 -
牛文字母歌
题目描述一个鲜为人知的事实是,奶牛拥有自己的文字:「牛文」。牛文由 26 个字母 a 到 z 组成,但是当奶牛说牛文时,可能与我们所熟悉的 abcdefghijklmnopqrstuvwxyz 不同,她会按某种特定的顺序排列字母。为了打发时间,奶牛 Bessie 在反复哼唱牛文字母歌,而 Farmer John 好奇她唱了多少遍。给定一个小写字母组成的字符串,为 Farmer John 听到 Bessie 唱的字母,计算 Bessie 至少唱了几遍完整的牛文字母歌,使得 Farmer John原创 2022-03-18 22:39:32 · 1322 阅读 · 0 评论 -
你知道你的ABC吗?
题目描述Farmer John 的奶牛正在 mooZ 视频会议平台上举行每日集会。她们发明了一个简单的数字游戏,为会议增添一些乐趣。Elsie 有三个正整数 A、B 和 C (A≤B≤C)。这些数字是保密的,她不会直接透露给她的姐妹 Bessie。她告诉 Bessie 七个范围在 1…109 之间的整数(不一定各不相同),并宣称这是 A、B、C、A+B、B+C、C+A 和 A+B+C 的某种排列。给定这七个整数,请帮助 Bessie 求出 A、B 和 C。可以证明,答案是唯一的。原创 2022-03-17 12:36:05 · 1542 阅读 · 0 评论 -
乘积数量(索引)
题目描述给定一个长度为 n 且不包含 0 的整数序列 a1,a2,…,an。请你计算以下两值:使得 al×al+1×…×ar 为负的索引对 (l,r)(l≤r) 的数量。使得 al×al+1×…×ar 为正的索引对 (l,r)(l≤r) 的数量。输入格式第一行一个整数 n。第二行包含 n 个整数 a1,…,an。输出格式共一行,输出单个空格隔开的两个整数,分别表示负的索引对数和正的索引对数。数据范围1≤n≤2×105,−109≤ai≤109,ai≠0。样例输入样例1原创 2022-03-06 22:14:57 · 757 阅读 · 0 评论 -
完美矩阵(回文)
题目描述如果一个矩阵能够满足所有的行和列都是回文序列,则称这个矩阵为一个完美矩阵。一个整数序列 a1,a2,…,ak,如果满足对于任何整数 i(1≤i≤k),等式 ai=ak−i+1 均成立,则这个序列是一个回文序列。给定一个 n×m 的矩阵 a,每次操作可以将矩阵中的某个元素加一或减一,请问最少经过多少次操作后,可以将矩阵 a 变为一个完美矩阵?输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据第一行包含整数 n 和 m,表示矩阵的大小。接下来 n 行,每行包含 m 个原创 2022-03-04 17:24:49 · 2551 阅读 · 0 评论 -
若干数阶乘的和
题目描述给定一个非负整数 n,请你判断是否存在一些整数 xi,能够使得 n=∑1≤i≤txi!,其中 t≥1,xi≥0,xi=xj iff i=j。iff 表示当且仅当。输入格式输入包含多组测试数据。每组数据占一行,包含一个非负整数 n。最后一行是一个负数,表示输入结束,无需处理。输出格式每组数据输出一行结果,如果 n 能表示为若干数的阶乘之和,则输出 YES,否则输出 NO。数据范围0≤n≤106,每组输入最多包含 100 组数据。样例输入样例:9-1输出样例原创 2022-03-04 17:20:15 · 700 阅读 · 0 评论 -
最长公共子序列
题目描述给出两个长度为 n 的整数序列,求它们的最长公共子序列(LCS)的长度,保证第一个序列中所有元素都不重复。注意:第一个序列中的所有元素均不重复。第二个序列中可能有重复元素。一个序列中的某些元素可能不在另一个序列中出现。输入格式第一行包含一个整数 n。接下来两行,每行包含 n 个整数,表示一个整数序列。输出格式输出一个整数,表示最长公共子序列的长度。数据范围1≤n≤106,序列内元素取值范围 [1,106]。原创 2022-03-02 18:08:54 · 149 阅读 · 0 评论 -
最大的和(元素和)
题目描述给定一个长度为 n 的正整数数列 a1,a2,…,an。初始时,数列中的每个元素要么处于可选状态,要么处于不可选状态。你可以选择一个长度恰好为 k 的区间 [i,i+k−1],使得 ai∼ai+k−1 这 k 个元素的状态全部变为可选。请问,在经过此操作后,所有处于可选状态的元素之和最大是多少。输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数 ai。第三行包含一个长度为 n 的 01 序列,如果第 i 个数为 1,表示 ai 的初始状态为可选,如果第 i 个原创 2022-02-27 14:42:16 · 611 阅读 · 0 评论 -
DP(一)采药
题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?输入格式输入文件的第一行有两个整数 T 和 M,用一个空格隔开,T 代原创 2022-02-25 15:47:17 · 164 阅读 · 0 评论 -
欧拉路径(连通)
题目描述在图论中,欧拉路径是图中的一条路径,该路径满足恰好访问每个边一次。而欧拉回路是一条在同一顶点处开始和结束的欧拉路径。它们最早由欧拉于 1736 年解决著名的哥尼斯堡七桥问题时提出。事实证明,如果一个连通图的所有顶点的度数都为偶数,那么这个连通图具有欧拉回路,且这个图被称为欧拉图。如果一个连通图中有两个顶点的度数为奇数,其他顶点的度数为偶数,那么所有欧拉路径都从其中一个度数为奇数的顶点开始,并在另一个度数为奇数的顶点结束。具有欧拉路径但不具有欧拉回路的图被称为半欧拉图。现在,原创 2022-02-23 11:35:50 · 1978 阅读 · 0 评论 -
训练赛二(元素分类,链表,字符串归并)
给定一个长度为 nn 的整数数组 a1,a2,…,an。现在,需要你对数组中的每个元素进行分类。每个元素要么划分至 b 类,要么划分至 c 类。我们设所有 b 类元素的相加之和为 sumb,所有 c 类元素的相加之和为 sumc。请你计算 sumb−sumc 的最大可能值。如果某类元素的个数为 0,则该类元素的相加之和视为 0。输入格式第一行包含整数 n。第二行包含 n 个整数 a1,a2,…,an。输出格式输出一个整数,表示 sumb−sumc 的最大可能值。数原创 2022-02-20 09:40:33 · 573 阅读 · 0 评论 -
菊花链(拍照)
每天,作为她绕农场行走的一部分,奶牛 Bessie 会经过她最喜爱的草地,其中种有N朵花(五颜六色的雏菊),编号为1…N,排列成一行。花i有pi朵花瓣。作为一名崭露头角的摄影家,Bessie 决定给这些花拍些照片。具体地说,对于每一对满足1≤i≤j≤N 的花(i,j),Bessie 会给从花i到花j之间的所有花(包括i和j)拍一张照。后来 Bessie 查看这些照片时注意到有些照片里存在「平均」的花——一朵恰好有P朵花瓣的花,其中P等于照片中所有花的花瓣数量的平均值。B...原创 2022-02-16 22:48:13 · 174 阅读 · 0 评论 -
社交距离(奶牛感染)
题目描述由于高传染性的牛传染病 COWVID-19 的爆发,Farmer John 非常担忧他的奶牛们的健康。尽管他尽了最大努力使他的 N 头奶牛们践行“社交距离”,还是有许多奶牛不幸染上了疾病。编号为 1…N 的奶牛们分别位于一条长直道路上的不同位置(相当于一维数轴),奶牛 i 位于位置 xi。Farmer John 知道存在一个半径 R,任何与一头被感染的奶牛距离不超过 R 单位的奶牛也会被感染(然后会传染给与其距离 R 单位内的奶牛,以此类推)。不幸的是,Farmer John 并不原创 2022-02-15 23:00:51 · 1102 阅读 · 0 评论 -
训练赛总结(老李题集)
老李截获了一份电报,电报由字符组成(可能含有空格),他希望在这些字符串中提取出有用的情报。例如:a1b23c456d007890中可以提取出1, 23, 456, 7890共4个数字。现在,他得到了一个长度高达1000的字符串,请你帮他提取出所有的数字。输入本题有多组数据。输入一个字符串S。输出输出提取出的所有数字,相邻两个数字用一个空格隔开。不包含数字的时候输出空行注意,你输出的数不能含有前导0。原创 2022-02-14 23:46:03 · 2139 阅读 · 0 评论 -
疯狂的科学家
题目描述Farmer John 的远房亲戚 Ben 是一个疯狂的科学家。通常这会在家庭聚会时造成不小的摩擦,但这偶尔也会带来些好处,尤其是当 Farmer John 发现他正面对一些有关他的奶牛们的独特而不寻常的问题时。Farmer John 当前正面对一个有关她的奶牛们的独特而不寻常的问题。他最近订购了 N 头奶牛,包含两种不同品种:荷斯坦牛和更赛牛。他在订单中用一个长为 N 的字符串来指定奶牛,其中的字符为 H(表示荷斯坦牛)或 G(表示更赛牛)。不幸的是,当这些奶牛到达他的农场,原创 2022-02-14 22:38:27 · 372 阅读 · 0 评论 -
奶牛排队拍照
农夫约翰在给他编号为 1…N 的 N 头奶牛排队拍照。约翰一开始计划从左向右数第 i 个位置排编号为 ai 的奶牛,他在一张纸上写下了排列 a1,a2,…,aN。不幸的是,这张纸刚刚被小偷偷走了!幸好约翰仍然有机会恢复他之前写下的排列。在这张纸被偷走之前,奶牛贝茜记录了序列 b1,b2,…,bN−1,对于每一个 1≤i<N 满足 bi=ai+ai+1。基于贝茜的信息,帮助约翰恢复可以产生序列 b 的“字典序最小”的排列 a。排列 x 字典序小于排列 y,如果对于某个 j,对于.原创 2022-02-13 23:31:42 · 1018 阅读 · 0 评论 -
截断数列(是否相等)
题目描述给定一个由 n 位数字组成的序列 a1a2…an。其中,每个数字都是 0∼9 之一。请你判断,能否将数列从中间截断为两个或更多个非空部分,要求每一部分的各位数字之和都相等。例如,350178 可以截断为 3 个部分 350、17、8,并且满足 3+5+0=1+7=8。输入格式第一行包含一个整数 n。第二行包含 n 个数字 a1,a2,…,an,数字之间不含空格。输出格式如果可以按要求截断数列,则输出 YES,否则输出 NO。数据范围前 6 个测试点满足 2≤n≤1原创 2022-02-12 23:29:06 · 1208 阅读 · 0 评论 -
两种操作(类似耍杂技的牛)
题目描述给定一个正整数 n,我们希望你可以通过一系列的操作,将其变为另一个正整数 m。操作共分两种:样例输入样例1:4 6输出样例1:2输入样例2:10 1输出样例2:9将当前的数乘以 2。将当前的数减去 1。要求,在变换过程中,数字始终为正。请你计算,所需要的最少操作次数。输入格式一行,两个不同的正整数 n 和 m。输出格式一个整数,表示所需的最少操作次数。数据范围前 6 个测试点满足 1≤n,m≤10。所有测试点满足 1≤n,m≤10000。原创 2022-02-12 23:11:04 · 673 阅读 · 0 评论 -
删点--统计x坐标正负
题目描述在一个二维平面上有 n 个点,其中没有任何一个点位于 y 轴上。请你判断这些点中是否存在一点满足,删除该点后,剩余的所有点都在 y 轴的同一侧。输入格式第一行包含整数 n。接下来 n 行,每行包含两个整数 x,y,表示其中一个点的横纵坐标。点的位置两两不重合。输出格式如果存在满足要求的点,则输出 Yes,否则输出 No。数据范围前三个测试点满足 2≤n≤10。所有测试点满足 2≤n≤100,|x|,|y|≤100,|x|≠0。原创 2022-02-12 22:31:10 · 472 阅读 · 0 评论 -
我在哪?从何处来,又到哪里去?
题目描述:农夫约翰出门沿着马路散步,但是他现在发现自己可能迷路了!沿路有一排共 N 个农场。不幸的是农场并没有编号,这使得约翰难以分辨他在这条路上所处的位置。然而,每个农场都沿路设有一个彩色的邮箱,所以约翰希望能够通过查看最近的几个邮箱的颜色来唯一确定他所在的位置。每个邮箱的颜色用 A..Z 之间的一个字母来指定,所以沿着道路的 N 个邮箱的序列可以用一个长为 N 的由字母 A..Z 组成的字符串来表示。某些邮箱可能会有相同的颜色。约翰想要知道最小的 K 的值,使得他查看任意连续原创 2022-02-11 23:10:33 · 782 阅读 · 0 评论 -
替换空格(字符串)
题目描述请实现一个函数,把字符串中的每个空格替换成”%20”。数据范围0≤ 输入字符串的长度 ≤1000。注意输出字符串的长度可能大于 1000。原创 2022-02-11 19:08:14 · 410 阅读 · 0 评论 -
树上有猴(模拟)
一棵大树上初始时有若干个猴子(也可能没有)。接下来 nn 个时刻,每个时刻树上猴子的数量都会发生变动。第 ii 时刻的变动数量为 ai,ai>0 表示有 ai 只猴子上了树,ai<0 表示有 |ai| 只猴子下了树。已知,在任意时刻树上的猴子总数都没有超过 w,当然也不可能小于 0。请问,初始时的猴子数量共有多少种可能性?例如,当 n=3,w=5且 a1=2,a2=1,a3=−3时,初始时的猴子数量可能为 0,1,2个。输入格式第一行包含两个整数 n,w。第二行包原创 2022-02-08 09:32:28 · 414 阅读 · 0 评论 -
满足条件的01串
我也不知道咋回事,想了很久,觉得自己没错,但又觉得缺少哪种特殊情况自己不知道,真的好烦人???????? 感觉自己的思维还是欠缺问了别人后,才知道没有必要一起判断0和1,因为情况很复杂;恍然大悟,说的是呢????给定一个01串,如果同时满足下列两个条件,则输出Yes,否则输出No:不存在两个相邻的1 每个0两边至少有一个1输入格式第一行包含整数T,表示共有T组测试数据。每组数据第一行包含整数n。第二行包含一个长度为n的01字符串。输出格式每组数据输出一行结果...原创 2022-02-07 16:36:50 · 444 阅读 · 2 评论 -
数字移动(基础(二))
题目描述将 1∼n 按顺序排成一排,构成一个数列。数字 i 刚好位于位置 i。再给定一个长度为 n 的位置序列 p1,p2,…,pn,它是 1∼n 的一种排列。接下来,我们会重复不断地对数列进行如下操作:重新排列数列中每个数的位置,将位于位置 i 的数移动至位置 pi。(如果 i=pi 则该数仍移动至位置 i)。每次操作开始时,所有数的移动同时进行,操作结束后,数列将变为一个新的 1∼n 的排列。例如,当 n=6 并且 p=[4,6,1,3,5,2] 时,第一次操作后,数字 1 将移动原创 2022-02-07 15:13:08 · 698 阅读 · 0 评论 -
最大中位数
给定一个由 n 个整数组成的数组 a,其中 n 为奇数。你可以对其进行以下操作:选择数组中的一个元素(例如 ai),将其增加 1(即,将其替换为 ai+1)。你最多可以进行 k 次操作,并希望该数组的中位数能够尽可能大。奇数长度的数组的中位数是数组以非降序排序后的中间元素。例如,数组 [1,5,2,3,5] 的中位数为 3。...原创 2022-02-07 12:44:48 · 1346 阅读 · 0 评论 -
选择数字(基础题(二))
给定一个整数数组 A,其包含 n 个正整数 a1,a2,…,an 以及一个整数数组 B,其包含 m 个正整数 b1,b2,…,bm。请从数组 A 中挑选一个元素 a 并从数组 B 中挑选一个元素 b,使得 a+b 既不包含于 A 也不包含于 B。例如,如果 A=[2,1,7] 而 B=[1,3,4],则可以从 A 中选取 1,从 B 中选取 4,这样得到的数字 1+4=5 既不在 A 中,也不在 B 中。但是,我们不能从 A 中选取 2,从 B 中选取 1,因为得到的数字 2+1=3 包含于 .原创 2022-02-07 12:11:00 · 373 阅读 · 0 评论 -
最长非递减子序列(基础题(二))
给定一个长度为 nn 的数字序列 a1,a2,…,an,序列中只包含数字 1 和 2。现在,你要选取一个区间 [l,r](1≤l≤r≤n),将 al,al+1,…,ar 进行翻转,并且使得到的新数字序列 a的最长非递减子序列的长度尽可能长。请问,这个最大可能长度是多少?一个非递减子序列是指一个索引为 p1,p2,…,pk 的序列,满足 p1<p2<…<pk 并且 ap1≤ap2≤…≤apk,其长度为 k。输入格式第一行一个整数 n。第二行 n 个空格隔开的数字 1.原创 2022-02-07 11:58:10 · 370 阅读 · 0 评论 -
双端队列(基础题(一))
给定一个双端队列,初始时队列为空。你要对其进行 q 次操作,每次操作可能是以下三种之一:1.L x,从队列的左端插入整数 x。2.R x,从队列的右端插入整数 x。3.? x,请你计算为了使已经处于队列中的整数 x 位于队列的最左端或最右端,至少需要从最左端或最右端弹出多少个数字。保证操作 3 一定合法( ? x 中的 x 一定已经处于队列之中)。每个数字最多被插入到队列中 1 次(队列中一定不会存在重复数字)。注意,操作 3 只是询问最少需要弹出多少数字,不是真的要弹出它们,队列中的原创 2022-02-07 11:35:47 · 637 阅读 · 0 评论 -
特殊数字(基础题(一))
我们规定,对于一个整数 a,如果其各位数字相加之和能够被 4 整除,则称它是一个特殊数字。现在,给定一个整数 n,请你计算并输出不小于 n 的最小特殊数字。输入格式一个整数n。输出格式一个整数,表示不小于 n 的最小特殊数字。...原创 2022-02-07 11:26:56 · 654 阅读 · 2 评论 -
复制、剪切、粘贴(基础题(一))
给定一个字符串ss,对其进行若干次复制、剪切、粘贴操作,三种操作具体如下:复制操作COPY l r(0≤l≤r<n),n代表s串的长度。表示将子串s[l]∼s[r] 复制到剪贴板t里面,覆盖t字符串。例如s为abcde,t为pqr,执行COPY 1 2后,s为abcde,t为bc。 剪切操作CUT l r(0≤l≤r<n),n代表s串的长度。表示将子串s[l]∼s[r]剪切到剪贴板t里面(将该子串在s串中删除),覆盖t字符串。...原创 2022-02-07 11:20:18 · 697 阅读 · 0 评论 -
寻找奇特的数(基础题(一))
给定一个 n×n 的矩阵 a,其中第 i 行第 j 列的元素 aij 等于 i×j(1≤i,j≤n)。现在,给定一个整数 m,请你计算 m 在矩阵中出现的次数。原创 2022-02-07 11:12:42 · 430 阅读 · 0 评论 -
变化前的01序列(基础题(一))
题目描述给你一个 01 序列,HDLC 协议处理的话,如果出现连续的 5 个 1 会补 1 个 0。例如 1111110,会变成 11111010。现在给你一个经过 HDLC 处理后的 01 序列,你需要找到 HDLC 处理之前的 01 序列。例如给你 11111010,你需要输出 1111110。输入格式第一行一个整数 N,表示共有 N 组测试数据。每组数据占一行,包含一个 01 序列。输出格式每组数据输出一行结果,为处理之前的 01 序列。数据范围1≤N≤100,0原创 2022-02-07 10:43:34 · 405 阅读 · 0 评论