洛谷
呆码农梦中识bug,程序员哭求加工资
这个作者很懒,什么都没留下…
展开
-
洛谷 P2574 XOR的艺术 【线段树】 (题目 + 代码 + 详细注释)
题目:Question:一段01序列,多次反转[l, r]区间内的数字,即(0 -> 1, 1 -> 0),然后询问某个区间内1的个数Analyse:显然是一道“区间修改,区间查询”的问题,因此我们可以用线段树来做。而这道题比较特殊,每个位置的数只有0或1,那么区间内部1的个数就是区间和(这个懂了就好写代码了);因此,这道题实际上就是求区间和Difficulty:反转区间时怎么记录Solution:我们可以用懒标记记录每个区间的反转次数。如果标记次...原创 2021-03-06 10:51:00 · 324 阅读 · 1 评论 -
洛谷P4017 最大食物链计数(题目 + 代码 + 详解)
https://www.luogu.com.cn/problem/P4017#include<bits/stdc++.h> using namespace std;#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)typedef long long LL;typedef unsigned long long ULL; typedef pair<int, int>PII;typ..原创 2021-02-28 15:15:05 · 411 阅读 · 0 评论 -
洛谷 P1017 [NOIP2000 提高组] 进制转换 (负进制转换)
题目传送门题意: 要求把一个十进制数转成一个负进制数,如 -15(10)= 110001110001(-2)分析:要把x转成r进制(r < 0), 可知 x = k * r + m其实和正进制数类似,只不过,对负数取模得到的结果可能是负数,我们需要把其转换成正数,方法是:m < 0时,那么m一定是(-r, 0),m - r就一定大于0,因此上式等价于 x = (k + 1) * r + (m - r);这样余数就为正数了 m > 0时,这个正常写就行...原创 2021-01-21 22:09:27 · 271 阅读 · 0 评论 -
洛谷P1246 编码 (题目 + 详细注释 + 代码)
题目传送门题目描述编码工作常被运用于密文或压缩传输。这里我们用一种最简单的编码方式进行编码:把一些有规律的单词编成数宇。字母表中共有26个字母{a,b,…,z},这些特殊的单词长度不超过6且字母按升序排列。把所有这样的单词放在一起,按字典顺序排列,一个单词的编码就对应着它在字典中的位置。例如:a→1 b→2 z→26 ab→27 ac→28你的任务就是对于所给的单词,求出它的编码。输入格式仅一行,被编码的单词。输出格式仅一行,对应的编码。如果单词不在字母表中,.原创 2021-01-21 20:38:59 · 820 阅读 · 0 评论 -
洛谷 P1658 购物(题目+ 代码 + 详细注释) 【贪心】
题目链接:https://www.luogu.com.cn/problem/P1658题目描述你就要去购物了,现在你手上有N种不同面值的硬币,每种硬币有无限多个。为了方便购物,你希望带尽量少的硬币,但要能组合出1到X之间的任意值。输入格式第一行两个数X、N,以下N个数,表示每种硬币的面值。【数据规模】对于30%的数据,满足N≤3,X≤20;对于100%的数据,满足N≤10,X≤1000.输出格式最少需要携带的硬币个数,如果无解输出-1.输入输出样例输入 #1.原创 2020-07-14 10:55:15 · 729 阅读 · 0 评论 -
洛谷 P1098字符串的展开 (题目 + 代码 + 详细注释)
题目链接:https://www.luogu.com.cn/problem/P1098题目描述在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数字串替代其中的减号,即,将上面两个子串分别输出为“defgh”和“45678"。在本题中,我们通过增加一些参数的设置,使字符串的展开更为灵活。具体约定如下:(1) 遇到下面的情况需要做字符串的展开:在输入的字符串中,出现了原创 2020-07-10 11:31:43 · 397 阅读 · 0 评论 -
洛谷P1072 Hankson 的趣味题 (题目 + 代码 + 详细注释)
题目链接:https://www.luogu.com.cn/problem/P1072题目描述Hanks 博士是 BT(Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson。现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题。今天在课堂上,老师讲解了如何求两个正整数c_1c1和c_2c2的最大公约数和最小公倍数。现在 Hankson 认为自己已经熟练地掌握了这些知识,他开始思考一个“求公约数”和“求公倍数”之类问题的“逆问题”,这个问题是这样的:已知正...原创 2020-07-06 22:52:03 · 1070 阅读 · 0 评论 -
洛谷 P1042 乒乓球 (题目+ 代码 + 详细注释 + 坑点分析)
题目链接:1042 乒乓球题目背景国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中1111分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白1111分制和2121分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。题目描述华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在1111分制和2.原创 2020-07-06 18:12:50 · 1377 阅读 · 0 评论 -
洛谷P1087.FBI树 (题目 + 代码 + 详细注释)
我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。FBI树是一种二叉树1,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2^N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:T的根结点为R,其类型与串S的类型相同; 若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左子串S1构造R的左子树T1,由右子串S2构造R的右子树T2。 现在给定一个长度为2^N的“01”串,请用上述构造方法原创 2020-07-06 17:24:56 · 532 阅读 · 0 评论 -
【模拟】洛谷P1190 接水问题 (题目 + 代码 + 详细注释)
学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。 现在有n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1到n 编号,i 号同学的接水量为wi。接水开始时,1 到m 号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k马上接替j 同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即j 同学第x 秒结束时完成接水,则k 同学第x+1 秒立刻开始接水。若当前接水人原创 2020-07-06 16:15:49 · 513 阅读 · 0 评论 -
洛谷P1579 哥德巴赫猜想(升级版) (详细注释 + C++实现)
题目背景1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和。质数是指除了1和本身之外没有其他约数的数,如2和11都是质数,而6不是质数,因为6除了约数1和6之外还有约数2和3。需要特别说明的是1不是质数。这就是哥德巴赫猜想。欧拉在回信中说,他相信这个猜想是正确的,但他不能证明。从此,这道数学难题引起了几乎所有数学家的注...原创 2020-01-27 10:25:26 · 510 阅读 · 0 评论 -
洛谷P1008 三连击 (C语言 + 两种方法 + 详细注释)
将1,2,⋯,9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。输入格式木有输入输出格式若干行,每行33个数字。按照每行第1个数字升序排列。输入输出样例输入 #1复制无输出 #1复制192 384 576* * *...* * *(输出被和谐了)//解法一:得到a,b,c的每一...原创 2020-01-26 23:55:13 · 2392 阅读 · 1 评论 -
洛谷P1618 三连击(升级版) (详细注释 + C++)
题目描述将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出No!!!。//感谢黄小U饮品完善题意输入格式三个数,A,B,C.输出格式若干行,每行3个数字。按照每行第一个数字升序排列。输入输出样例输入 #1复制1 2 3输出 #1复制192 384 576...原创 2020-01-27 00:07:59 · 1377 阅读 · 0 评论 -
洛谷P1478 陶陶摘苹果(升级版) (详细注释 + C++)
又是一年秋季时,陶陶家的苹果树结了n个果子。陶陶又跑去摘苹果,这次他有一个a公分的椅子。当他手够不着时,他会站到椅子上再试试。这次与 NOIp2005 普及组第一题不同的是:陶陶之前搬凳子,力气只剩下s了。当然,每次摘苹果时都要用一定的力气。陶陶想知道在s<0之前最多能摘到多少个苹果。现在已知n个苹果到达地上的高度xi,椅子的高度a,陶陶手伸直的最大长度b...原创 2020-01-26 22:46:59 · 1226 阅读 · 2 评论 -
洛谷P1036 选数 【搜索】 (C语言 + 详细注释)
题目描述已知nn个整数x_1,x_2,…,x_nx1,x2,…,xn,以及11个整数kk(k<nk<n)。从nn个整数中任选kk个整数相加,可分别得到一系列的和。例如当n=4,k=3n=4,k=3,44个整数分别为3,7,12,193,7,12,19时,可得全部的组合与它们的和为:3+7+12=223+7+19=297+12+19=383+12+19=34...原创 2020-01-26 20:42:35 · 663 阅读 · 0 评论 -
洛谷P1149(NOIP2008) 火柴棒等式 (C语言 + 详细注释)
题目描述给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是00)。用火柴棍拼数字0-9的拼法如图所示:注意: 加号与等号各自需要两根火柴棍 如果A≠B,则A+B=C与B+A=C视为不同的等式(A,B,C>=0) n根火柴棍必须全部用上 输入格式一个整数n(n<=24)...原创 2020-01-23 15:36:02 · 2321 阅读 · 0 评论 -
【NOIP2008】洛谷P1055 ISBN号码(C语言 + 详细注释)
题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括99位数字、11位识别码和33位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如00代表英语;第一个分隔符-之后的三位数字代表出版社,例如670代表维京出版社;第二个分...原创 2020-01-21 11:22:25 · 2471 阅读 · 3 评论 -
洛谷P2089 烤鸡 --- (两种方法 + 详细注释 + C++实现 )
题目描述猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有10种配料(芥末、孜然等),每种配料可以放1—3克,任意烤鸡的美味程度为所有配料质量之和现在,Hanke想要知道,如果给你一个美味程度,请输出这10种配料的所有搭配方案输入格式一行,n<=5000输出格式第一行,方案总数第二行至结束,10个数,表示每种配料所...原创 2020-01-27 15:30:48 · 3676 阅读 · 5 评论 -
洛谷P1022 计算器的改良 ---- (C语言 + 超详细注释)
//这道题我做了好久,解题思路并不难,只是细节处理有些麻烦(可能是我技艺不精,哈哈哈!!),我的想法是:算出总的系数和总的常数,再相除即可,而判断一个数是常数还是系数的依据是看紧跟数字后面的是不是字母(即未知数)。我AC的代码如下:#include<stdio.h>#include<ctype.h>int main() { char s[30];...原创 2020-01-28 16:46:30 · 711 阅读 · 0 评论 -
洛谷P1217 [USACO1.5]回文质数 Prime Palindromes (C语言 + 详细注释 + 多优化)
//本题思路并不难想,如果区间内的数既是素数,也是回文数,那么就是回文素数,写两个函数判断素数和回文数即可。然鹅本题并不会让你那么轻松通过(毕竟难度是普及-呢),很有可能你过了样例,但是提交得到的结果是一片RE(超时),因为本题最大数据达到了一亿,一个个的遍历,必然会很浪费时间,所以需要一定的优化,把部分数据直接排除。具体优化如下:1:偶数必然不是素数,所以偶数不用考虑;2:由数...原创 2020-01-29 09:05:14 · 2192 阅读 · 2 评论 -
洛谷P1028 数的计算 (C语言 + 详细注释 + 两种方法实现)
//首先,自我认为题意有点模糊不清(qwq),第二个条件的原数指什么?我以为是输入的那个数,但是这样的话当输入6时不就有无数个解了吗?百思不得其解,所以这道题我就搁置了很久,后来看到大佬们的题解才知道这个“原数”指新加的那个数,那么就解释的通了,比如输入6时,2 < 6 / 2 = 3, 得到了26,新数是2,不超过2 / 2 = 1的自然数只能取1(虽然0也是自然数,但是十进制数...原创 2020-01-29 11:42:37 · 1289 阅读 · 3 评论 -
【NOIP2011】洛谷P1003 铺地毯 --- (C语言 + 详细注释)
//我的思路是建立一个结构体数组,结构体包含的信息有每个地毯的左下角坐标,x轴的长度,y轴的长度,以及右上角的坐标(由前面的信息求出),其实用结构体只是让每个地毯的信息更紧凑而已,更加明了,不用也行。确定了一个矩形的左下角坐标和右上角坐标就可以确定一个矩形了。通过这两个点即可确定另外某个点是否在矩形内部。由题意求最上面的一个地毯,所以一个小技巧是倒序遍历数组,找到了符和条件的矩形即停止,能...原创 2020-01-31 11:59:32 · 1432 阅读 · 1 评论 -
洛谷P1067 多项式输出 (C语言 + 详细注释)
//本题我采用的是分部输出法,即依次输出符号(难点在于+号),系数(难点在于1和-1),未知数,指数。在输出每一部分时分别讨论特殊情况。下面是我AC的代码:#include<stdio.h>int main() { int i, n, a[105], flag; //数组a存储系数 scanf("%d", &n); ...原创 2020-01-31 14:05:35 · 860 阅读 · 1 评论 -
洛谷P1540 机器翻译 (C语言 + 详细注释)
题目背景小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。题目描述这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。...原创 2020-01-31 14:51:50 · 1069 阅读 · 0 评论 -
洛谷P1219 八皇后 ----(C语言 + 详细注释)
//本题是典型的搜索题,每一行有n种情况,一行行的枚举即可。下面是我AC的代码:#include<stdio.h>#include<math.h>int n, cnt, a[15], flag, times; //数组a储存每一行棋子的列数times = 3;void dfs(int x) { //参数x为现在到了第...原创 2020-02-03 11:02:33 · 454 阅读 · 1 评论 -
洛谷P1019 单词接龙 【深搜,C++/C代码均有】 (详细注释 + 得分点分析)
//本题显然可以用深搜,有几个地方需要注意:1、重叠部分取最小长度,我花费了一次宝贵的下载机会得有一个测试点是2 abababab abababc a,那么第一个单词和第二个单词的重叠部分为ab,而不是ababab,其实想想也是,只有两个单词的重叠部分最小,得到的龙长才会最大;2、每个的单词最多用两次(提示要标记使用次数) ;3、本代码要开O2优化,否则最后一个测试点超时(可能是我的代...原创 2020-02-03 15:17:23 · 946 阅读 · 7 评论 -
洛谷P1101 单词方阵 (C语言 + 详细注释 + 五妙)
//首先声明一下,我的代码大部分是参照洛谷的一位博客:Way_How_Fri3nd。看完后我就觉得写的非常好,由于我不知道怎么转载洛谷的博客,所以干脆自己写一篇CSDN博客,因为写的实在是太好了,我迫不及待地想把其思想和代码分享给大家。//接下来说一下大体思路,遍历二维数组,每次找到 ‘y’,就从这个点开始,向八个方向搜索,如果哪个方向最终能按顺序到达 ‘g’,说明这条路可行,就把这条路上...原创 2020-02-03 18:26:51 · 1010 阅读 · 2 评论 -
洛谷P1563 玩具谜题 (C语言 + 详细注释 + 简单代码)
//本蒻蒻只会C语言,所以题解就用C语言了//其实思路并不难,只需要判断是顺时针还是逆时针转,掐指一算有四种情况,我就把四种情况打成了一个二维数组,横坐标表示朝向,纵坐标表示向左还是向右,大致如下:朝外(1),左(0):逆时针,+朝外(1),右(1):顺时针,-朝内(0),左(0):顺时针,-朝内(0),右(1):逆时针,+我开了个next数组 : int next[...原创 2020-02-04 11:14:45 · 959 阅读 · 1 评论 -
洛谷P1031 均分纸牌 (C语言 + 详细注释 + 简单代码)
//看此题的标签上有贪心,其实本题并不用贪心。本文的大体思路是这样的:既然第一堆牌只能由第二堆牌凑够,那么就倾尽第二堆牌所有把第一堆凑成平均数(第二堆变成负数也没有关系,因为后面的牌会补上来),当第一堆牌变成平均数后,我们就可以不管它了,因为它只能和第二堆进行“交流”,但是它已经够了,不需要再改动了。如此,第二堆牌“变成了第一堆牌”,然后找第三堆牌凑,依次类推即可。。。//下面是我AC的代...原创 2020-02-06 23:31:23 · 960 阅读 · 0 评论