![](https://img-blog.csdnimg.cn/direct/fb3c4a3bbf2a472193db56e4e5368b1c.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
洛谷题解
文章平均质量分 57
帮助大家解决洛谷做题中遇到的难题。
127wangruopu
这个作者很懒,什么都没留下…
展开
-
P5736 【深基7.例2】质数筛
输入 n 个不大于 105 的正整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。输出一行,依次输出 ai 中剩余的质数,以空格隔开。数据保证,1≤n≤100,1≤ai≤10^5。这题不需要素数筛,不需要存入数组,判断素数即可。第二行输入 n 个正整数 ai,以空格隔开。第一行输入一个正整数 n,表示整数个数。原创 2024-02-02 20:20:41 · 155 阅读 · 0 评论 -
P5739 【深基7.例7】计算阶乘
挑战:尝试不使用循环语句(for、while)完成这个任务。不用for,while循环,用递归解决。,也就是 1×2×3⋯×n。输出一个正整数,表示 n!第一行输入一个正整数 n。数据保证,1≤n≤12。原创 2024-02-02 11:48:28 · 170 阅读 · 0 评论 -
P1928 外星密码
解开密码的第一道工序就是解压缩密码,外星人对于连续的若干个相同的子串 XX 会压缩为 [DX][DX] 的形式(D 是一个整数且 1≤D≤99),比如说字符串 CBCBCBCB 就压缩为 [4CB] 或者[2[2CB]],类似于后面这种压缩之后再压缩的称为二重压缩。如果是 [2[2[2CB]]] 则是三重的。对于 100% 的数据:解压后的字符串长度在 20000 以内,最多只有十重压缩。保证只包含数字、大写字母、对于 50% 的数据:解压后的字符串长度在 1000 以内,最多只有三重压缩。原创 2024-02-06 19:34:43 · 255 阅读 · 1 评论 -
P1228 地毯填补问题
宫殿里有个四四方方的格子迷宫,国王选择驸马的方法非常特殊,也非常简单:公主就站在其中一个方格子上,只要谁能用地毯将除公主站立的地方外的所有地方盖上,美丽漂亮聪慧的公主就是他的人了。将迷宫填补完整的方案:每一补(行)为 x y c(x,y 为毯子拐角的行坐标和列坐标,c 为使用毯子的形状,具体见上面的图 11,毯子形状分别用 1,2,3,4 表示,x,y,c 之间用一个空格隔开)。第二行两个整数 x,y,即给出公主所在方格的坐标(x 为行坐标,y 为列坐标),x 和 y 之间有一个空格隔开。原创 2024-02-06 19:48:13 · 339 阅读 · 1 评论 -
P2404 自然数的拆分问题
任何一个大于 1 的自然数 n,总可以拆分成若干个小于 n 的自然数之和。现在给你一个自然数 n,要求你求出 n 的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,其中字典序小的序列需要优先输出。,搜索到底得到一种方案,本次方案排列完毕后,输入:待拆分的自然数 n。输出:若干数的加法式子。数据保证,2≤n≤8。原创 2024-02-06 19:17:58 · 275 阅读 · 1 评论 -
P1219 [USACO1.5] 八皇后 Checker Challenge
一个如下的 6×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。前三行为前三个解,每个解的两个数字之间用一个空格隔开。第四行只有一个数字,表示解的总数。这只是棋子放置的一个解。请编一个程序找出所有棋子放置的解。这是一道搜索回溯,我们只要标记每个王后的位置即可。并把它们以上面的序列方法输出,解按字典顺序排列。一行一个正整数 n,表示棋盘是 n×n 大小的。请输出前 3 个解。对于 100% 的数据,6≤n≤13。原创 2024-02-02 21:13:15 · 227 阅读 · 0 评论 -
P5717 【深基3.习8】三角形分类
因为一个三角形只能是直角三角形、锐角三角形、钝角三角形中的一个,只要满足其中的一个条件,就进行下一层的判断。这道题难在一个三角形有可能是多种三角形,这个时候我们不能用“else if”,可以用“if”来解决。因为一个三角形如果是等边三角形,那么它必是等腰三角形,但是等腰三角形未必是等边三角形。如果a,b,c无法构成三角形,那么就退出循环,否则程序就会继续往下运行。当两短边的平方和大于一长边的平方,说明是锐角三角形。当两短边的平方和小于一长边的平方,说明是钝角三角形。输入 3 个整数 a、b 和 c。原创 2024-01-31 13:40:06 · 361 阅读 · 0 评论 -
洛谷P1010 [NOIP1998 普及组] 幂次方
所以 1315最后可表示为 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)。所以最后 137 可表示为 2(2(2)+2+2(0))+2(2+2(0))+2(0)。例如 137=2^7+2^3+2^0。7=2^2+2+2^0 (2^1 用2表示),并且 3=2+2^0。由此可知,137可表示为 2(7)+2(3)+2(0)。又如 1315=210+28+25+2+1。NOIP1998 普及组 第三题。一行一个正整数 n。本题使用递归即可解决。原创 2024-02-01 11:43:42 · 241 阅读 · 0 评论 -
P1605 迷宫
对于 100%100% 的数据,1≤N,M≤5,1≤T≤10,1≤SX,FX≤n,1≤SY,FY≤m。第二行为四个正整数 SX,SY,FX,FY,SX,SY 代表起点坐标,FX,FY 代表终点坐标。给定起点坐标和终点坐标,每个方格最多经过一次,问有多少种从起点坐标到终点坐标的方案。给定一个 N×M 方格的迷宫,迷宫里有 T 处障碍,障碍处不可通过。第一行为三个正整数 N,M,T,分别表示迷宫的长宽和障碍总数。接下来 T 行,每行两个正整数,表示障碍点的坐标。输出从起点坐标到终点坐标的方案总数。原创 2024-02-01 20:52:02 · 146 阅读 · 1 评论 -
P1036 [NOIP2002 普及组] 选数
已知 n 个整数 x1,x2,⋯,xn,以及 11 个整数 k(k原创 2024-02-01 12:08:33 · 239 阅读 · 0 评论 -
P5461 赦免战俘
他将正方形矩阵均分为 4 个更小的正方形矩阵,每个更小的矩阵的边长是原矩阵的一半。其中左上角那一个矩阵的所有作弊者都将得到赦免,剩下 3 个小矩阵中,每一个矩阵继续分为 4 个更小的矩阵,然后通过同样的方式赦免作弊者……所有没有被赦免的作弊者都将被处以棕名处罚。代码可以通过递归来实现,每次递归将左上方的正方形清零,并再次递归剩余的三个正方形,当正方形的边长为2时结束递归。给出 n,请输出每名作弊者的命运,其中 0 代表被赦免,1 代表不被赦免。2^n×2^n 的 01 矩阵,代表每个人是否被赦免。原创 2024-02-02 15:59:04 · 226 阅读 · 0 评论 -
P5707 【深基2.例12】上学迟到
学校要求必须在上午 8:008:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。学校和 yyy 的家之间的距离为 �s 米,而 yyy 以 �v 米每分钟的速度匀速走向学校。输出格式为 HH:MMHH:MM,分别代表该时间的时和分。由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。在上学的路上,yyy 还要额外花费 1010 分钟的时间进行垃圾分类。输出一个 2424 小时制下的时间,代表 yyy 最晚的出发时间。一行两个正整数 s,v,分别代表路程和速度。原创 2024-01-30 11:53:14 · 296 阅读 · 1 评论 -
P2036 [COCI 2008/2009 #2] PERKET
当我们添加配料时,总的酸度为每一种配料的酸度总乘积;总的苦度为每一种配料的苦度的总和。当我们添加配料时,总的酸度为每一种配料的酸度总乘积;总的甜度为每一种配料的甜度的总和。对于 100% 的数据,有 1≤n≤10,且将所有可用食材全部使用产生的总酸度和总苦度小于 1×109,酸度和苦度不同时为 1 和 0。众所周知,美食应该做到口感适中,所以我们希望选取配料,以使得酸度和苦度的绝对差最小。另外,我们必须添加至少一种配料,因为没有任何食物以水为配料的。一行一个整数,表示可能的总酸度和总苦度的最小绝对差。原创 2024-02-02 17:40:12 · 249 阅读 · 0 评论 -
P1059 [NOIP2006 普及组] 明明的随机数
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 N 个 11 到 1000 之间的随机整数 (N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。第 2 行为 M 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。输出也是两行,第 1 行为 1 个正整数 M,表示不相同的随机数的个数。输入有两行,第 1 行为 1 个正整数,表示所生成的随机数的个数 N。NOIP 2006 普及组 第一题。原创 2024-03-05 21:35:30 · 236 阅读 · 0 评论 -
U411934 统计分数plus+
在你的帮助下,老师成功地完成了成绩的统计。但是,教委又说要添加口语听说成绩,并且还要写出每科的排名和平均分。老师们有彻夜难眠。原创 2024-03-08 21:31:29 · 472 阅读 · 0 评论 -
U410866 统计分数
很明显,这道题是一道将结构体和排序相结合的一道题。这是一题将结构体和排序结合在一起的题。原创 2024-03-05 18:49:55 · 575 阅读 · 0 评论 -
P1958 上学路线
你所在城市的街道好像一个棋盘,有 a 条南北方向的街道和 b 条东西方向的街道。南北方向的 a 条街道从西到东依次编号为 1 到 a,而东西方向的 b 条街道从南到北依次编号为 1 到 b,南北方向的街道 i 和东西方向的街道 j 的交点记为 (i,j)。你住在 (1,1) 处,而学校在 (a,b) 处,你骑自行车去上学,自行车只能沿着街道走,而且为了缩短时间只允许沿着向东和北的方向行驶。,(Xn,Yn),这些路口是不能通车的。输出一个整数表示从 (1,1) 到 (a,b) 的行车路线总数。原创 2024-03-09 21:14:48 · 251 阅读 · 0 评论 -
P1665 正方形计数
给定平面上 N 个点,你需要计算以其中 4 个点为顶点的正方形的个数。注意这里的正方形边不一定需要和坐标轴平行。对于 100% 的数据,满足 1≤N≤500,−50≤Xi,Yi≤50,点不会重合。对于 20% 的数据,满足 1≤N≤20。接下来 N 行每行两个数,表示点的坐标。一个数表示正方形的个数。原创 2024-03-15 20:34:22 · 185 阅读 · 0 评论 -
P2386 放苹果
把 m 个同样的苹果放在 n 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法。(5,1,1 和 1,1,5 是同一种方法)第一行是测试数据的数目 t,以下每行均包括二个整数 m 和 n,以空格分开。对输入的每组数据 m 和 n,用一行输出相应的结果。对于所有数据,保证:1≤m,n≤10,0≤t≤20。使用搜索与回溯算法搜索可能性。原创 2024-03-09 21:04:01 · 118 阅读 · 0 评论 -
P1145 约瑟夫
n 个人站成一圈,从某个人开始数数,每次数到 m 的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人。现在有一圈人,k 个好人站在一起,k 个坏人站在一起。从第一个好人开始数数。你要确定一个最小的 m,使得在第一个好人被杀死前,k 个坏人先被杀死。正解就是暴力.只要稍微优美那么一点点就能过了,最最最朴素的暴力就是枚举m,然后一位一位地挪,非常慢,正确的方法是直接取模,判断是不是坏人,每一个m最多走k次就会结束游戏,每次删除一个人后把起点变一下,模数变一下就好了。原创 2024-03-01 20:59:06 · 159 阅读 · 0 评论 -
P1123 取数游戏
一个 N×M 的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻 88 个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少。原创 2024-03-15 20:09:16 · 256 阅读 · 0 评论 -
P5635 【CSGRound1】天下第一
天下第一的 cbw 以主席的身份在 8102 年统治全宇宙后,开始了自己休闲的生活,并邀请自己的好友每天都来和他做游戏。由于 cbw 想要显出自己平易近人,所以 zhouwc 虽然是一个蒟蒻,也有能和 cbw 玩游戏的机会。cbw 为了捍卫自己主席的尊严,想要提前知道游戏的结果,并且可以趁机动点手脚,所以他希望你来告诉他结果。给定两个数 x,y,与一个模数 p。第一个回合:x←(x+y)modp。第二个回合:y←(x+y)modp。第三个回合:x←(x+y)modp。第四个回合:y←(x+y)modp。原创 2024-03-09 20:55:55 · 246 阅读 · 0 评论 -
P10095 [ROIR 2023 Day 1] 斐波那契乘积
斐波那契数指斐波那契数列(f0=1,f1=1,fi=fi−2+fi−1)中出现的数。给定一个自然数 n,求出将其表示为大于 1 的斐波那契数的乘积的方式数量。使用dfs搜索表示为大于 1 的斐波那契数的乘积的方式数量。对于所有数据,1≤t≤50,2≤n≤101^8。对于每组测试数据,输出一个数表示答案。接下来 t 行,每行输入一个数 n。第一行一个数 t,表示数据组数。原创 2024-03-09 21:07:56 · 292 阅读 · 0 评论 -
B3620 x 进制转 10 进制
给一个小整数 x 和一个 x 进制的数 S。将 S 转为 10 进制数。对于超过十进制的数码,用。例如:(12341)5=1×54+2×53+3×52+4×5+1=971=(971)10。所以,我们就可以用上面讲的内容用编程实现 x 进制转 10 进制。个位权重是 1,十位权重是 10,百位权重是 100...保证目标数在十进制下不超过 10^9,1≤x≤36。那么如何算出 k 进制数字的 10 进制数字?将 S 倒着存入 a,将字母类型变成。输出仅包含一个整数,表示答案。第二行一个字符串 S。原创 2024-03-05 21:20:39 · 277 阅读 · 0 评论 -
P1012 [NOIP1998 提高组] 拼数
后面的(注意这是那个奇怪的大于等于),那么这种排列肯定不是最优的。an,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。有了这个结论,我们只要对a,b,c各乘上一个合适的整数(没错就是合适),不难证明传递性了。‾abc (a,b,c都是数字符串)(当然再多几个字符串也没关系,跟上面一个意思)a是数字字符串 n是正整数 表示把a连续写n遍形成的很长的字符串。没错,这个东西本来是表示数字的,现在被我们借过来表示字符串。a⩾b 表示正常的a大于等于b (下面这个就是不正常的)这个结论,题设肯定成立。原创 2024-03-05 21:33:35 · 325 阅读 · 0 评论 -
B3619 10 进制转 x 进制
设所求二进制数的长为 x ( 1 为最此二进制数左端的位置, x 为最二进制数最右端的位置)。那么,就有了 10=A , 11=B , ...... , 35=Z 这种说法啦。2/2=1 余 0 , 将余数 00 作为所求二进制数的第 (x−1) 位。所以,正如题目所说:对于超过十进制的数码,用 A ,B ... 表示。5/2=2 余 1 , 将余数 1 作为所求二进制数的第 x 位。至此,我们便求出了 (5)10=(101)2 这个结果。但是,在十进制之后,还隐藏着一个神秘的世界。原创 2024-03-05 21:24:13 · 321 阅读 · 0 评论 -
P1611 循环的数字
让我们假定两个不同的正整数 (n,m) 是循环的,当且仅当你能通过将 n 末端的几个数字移到它的首端而不改变移动的数字的顺序并使整个数字变成 m。举个例子,(12345,34512) 就是一对循环的数字,因为你能把 12345 中末尾的 345 移到 12 前面,从而得到 34512。好吧,虽然我并不关心电视节目的好坏,不过有时却也很像那样不断循环的数字。现在给定正整数 A 和 B,并保证 A 和 B 位数相同且均没有前置 0,求存在多少循环的正整数对 (n,m),使得 A≤n≤m≤B?原创 2024-03-09 21:19:54 · 870 阅读 · 0 评论 -
P1086 [NOIP2004 普及组] 花生采摘
有经验的多多一眼就能看出,每棵花生植株下的花生有多少。表示花生田的大小为M×N(1≤M,N≤20),多多采花生的限定时间为K(0≤K≤1000)个单位时间。第i+1行的第j个整数Pij(0≤Pij≤500)表示花生田里植株(i,j)下花生的数目,0表示该植株下没有花生。例如在图2所示的花生田里,只有位于 (2,5),(3,7),(4,2),(5,4) 的植株下长有花生,个数分别为 13,7,15,9。现在给定一块花生田的大小和花生的分布,请问在限定时间内,多多最多可以采到多少个花生?原创 2024-03-15 20:30:55 · 319 阅读 · 0 评论 -
P1331 海战
不幸的是,因为种种原因,国防海军部仅有很少的几位军官能指挥大型海战。在一个方形的盘上,放置了固定数量和形状的船只,每只船却不能碰到其它的船。在本题中,我们认为船是方形的,所有的船只都是由图形组成的方形。警察将监视每一条大街,军队将保卫建筑物,领空将布满了 F-2003 飞机。一行一个字符串,如果船的位置放得正确(即棋盘上只存在相互之间不能接触的方形,如果两个。号上下相邻或左右相邻却分属两艘不同的船只,则称这两艘船相互接触了)。第一行为两个整数 R 和 C,用空格隔开,分别表示游戏棋盘的行数和列数。原创 2024-02-29 22:03:43 · 339 阅读 · 0 评论 -
P1927 防护伞
于是地球防卫小队决定制造一个特殊防护伞,挡住太阳黑子爆发的区域,减少其对地球的影响。根据情报,在 2012 年时,太阳表面上会产生 N 个黑子区域,每个黑子视为一个点。特殊防护伞可以看作一个巨大的圆面,现在地球防卫小队决定将它的中心定位于某个黑子,然后用伞面挡住其他黑子。那么,很显然,用一个点作为圆心时,需要用(它)和(离它最远的点)的距离作为。这样双重循环,i枚举每一个点,j枚举这个点到其他所有点的距离。首先,可以把题目简单化为:输入几个点,用一个圆覆盖所有的点。圆的半径,才能覆盖所有的点。原创 2024-02-29 22:27:16 · 405 阅读 · 0 评论 -
B3634 最大公约数和最小公倍数
若 q 为一个数,∀q∈Z+ 且 a mod q=0,b mod q=0,则我们称 q 为 a,b 的公约数。公式为 gcd(x,y)=gcd(y,xmody) (x>y,xmody=0)则 b 可被 a 整除,记作 a∣b,b 是 a 的倍数,a 是 b 的约数。所以 gcd(y,x−ky)=1,得到 gcd(b,a mod b)=c。给定正整数 a,b,输出 gcd(a,b) 和 lcm(a,b)。所以 gcd(a,b)=gcd(b,a mod b)。先来看怎么求 gcd(a,b)。原创 2024-03-05 21:29:40 · 305 阅读 · 0 评论