洛谷刷题
文章平均质量分 62
本专栏记录博主在洛谷的刷题的部分记录以及当题题解,有题目链接,具体分析和可读性较强的代码。欢迎大家围观~
欢迎提供较好的背景图片(请私信博主)!
PS:博主一般在洛谷刷绿题及以上题目必写一篇题解加以巩固,当然有时遇到较经典的题目也会总结,敬请关注~
ShineEternal
这个作者很懒,什么都没留下…
展开
-
[COCI2020-2021#2] Euklid
定义如上一个函数 RRR。给定两个正整数 g,hg,hg,h,你需要找到两个正整数 a,ba,ba,b,使得 aaa 与 bbb 的最大公约数为 ggg,且 R(a,b)=hR(a,b)=hR(a,b)=h。输入第一行一个整数 ttt,表示数据组数。接下来的 ttt 行,每行两个正整数 g,hg,hg,h。输出共 ttt 行,为对于每组数据合法的 a,ba,ba,b。输出结果不得超过 101810^{18}1018,可以证明,答案一定存在。如果有多种可能的解,输出任意一种即可,本题使用 SPJ.原创 2021-01-15 14:56:09 · 501 阅读 · 0 评论 -
洛谷P3147 [USACO16OPEN]262144 P 题解
https://www.luogu.com.cn/problem/P3147description:有 nnn 个正整数,范围在 1∼401\sim 401∼40。在一步中,Bessie 可以选相邻的两个相同的数,然后合并成一个比原来的大一的数(例如两个 777 合并成一个 888),目标是使得最大的数最大,请帮助 Bessie 来求最大值。2<=n<=2621442<=n<=2621442<=n<=262144。solution:第一眼就想直接用朴原创 2020-11-27 21:45:00 · 623 阅读 · 0 评论 -
2020清北学堂NOIP刷题营day3Bdierti&&洛谷P4310绝世好题
https://www.luogu.com.cn/problem/P4310http://csp.ac/contest/51/problem/322description:求相邻两个元素按位与均不为 000 的最长的子序列长度。solution:不妨设 f[i][j]f[i][j]f[i][j] 表示以 iii 结尾,第 jjj 位为 111 的最大长度。可以滚动掉一维,把以 iii 结尾去掉。code:#include<cstdio>#include<algorithm原创 2020-11-25 17:29:30 · 329 阅读 · 0 评论 -
洛谷P4766 [CERC2014]Outer space invaders题解
https://www.luogu.com.cn/problem/P4766这道题我们可以考虑区间dp。原创 2020-11-24 22:23:45 · 467 阅读 · 0 评论 -
AT5158 [AGC037A] Dividing a String 题解
description给定一个字符串 SSS,请你找出一个最大的 kkk,使得将这个字符串划分成 kkk 段后能够保证相邻的两段不相同。1≤∣S∣≤2×1051\le |S| \le 2\times 10^51≤∣S∣≤2×105,且保证 SSS 串内均为小写字母。translate by @ShineEternal。solution我们贪心的进行划分,每次遇到一个和上一...原创 2020-04-17 21:24:39 · 398 阅读 · 0 评论 -
洛谷CF1337B Kana and Dragon Quest game 题解
description一条龙的血量是 xxx,技能 111 是使得 x=[x2]+10x=[\dfrac{x}{2}]+10x=[2x]+10,能使用 nnn 次;技能 222 使得 x=x−10x=x-10x=x−10,能使用 mmm 次。给定 x,n,mx,n,mx,n,m,求出能不能使得 x≤0x\le 0x≤0。solution我们经过观察,发现大部分情况下使用技能 111 的效果...原创 2020-04-16 11:14:39 · 512 阅读 · 0 评论 -
洛谷CF1337A Ichihime and Triangle 题解
description给定四个整数 a,b,c,da,b,c,da,b,c,d,你需要求出一组 a≤x≤ba\le x\le ba≤x≤b,b≤y≤cb\le y\le cb≤y≤c,c≤z≤dc\le z\le dc≤z≤d,使得以 x,y,zx,y,zx,y,z 为三条边的长度能够组成一个三角形。如果有多种方案,输出任意一种。输入包含多组数据,数据组数不超过 10001000100...原创 2020-04-16 09:05:35 · 577 阅读 · 0 评论 -
洛谷P3146 [USACO16OPEN]248 G 题解
description在一个长度为 nnn 的序列中,每次可以合并相邻两个相等的数。问能合并出的最大数。solution涉及到了合并的问题,我们应当想到可以使用区间 dp。那么我们就设 f[l][r]f[l][r]f[l][r] 表示区间 [l,r][l,r][l,r] 里的数经过合并可以得到的最大的一个数。我们设想两个区间能够合并,就必须满足两个区间各自合并出的最大的数字相等,即 f[...原创 2020-04-15 22:08:15 · 703 阅读 · 1 评论 -
洛谷P3842 [TJOI2007]线段 题解
description在一个 n×nn\times nn×n 矩阵中每一行都有一条线段,找出从 (1,1)(1,1)(1,1) 出发不重不漏地遍历每一条线段并走到 (n,n)(n,n)(n,n) 结束所需的步数。solution使用 dp。考虑设 f[i][0/1]f[i][0/1]f[i][0/1] 表示当前以及遍历完了第 iii 行的线段,在左(000)/ 右(111)端点结束遍历(即...原创 2020-04-15 21:04:27 · 403 阅读 · 0 评论 -
洛谷P6065 [USACO05JAN]Sumsets S 题解
上一篇题解貌似没有 code?那窝来补一篇。description:给出一个整数 NNN,求将 NNN 分解为若干个 222 的次幂的和的方案数。‘’solution:这道题可以使用递推。我们由小向大推,分情况讨论:iii 为奇数:那么只能是 i−1i-1i−1 这个数加上一个 202^020 得来的。iii 为偶数:可能和上述过程一样,也可能是 i2\dfrac{i}{2}...原创 2020-02-10 16:40:38 · 469 阅读 · 0 评论 -
洛谷P5990 [PA2015]Kieszonkowe 题解
作为贡题人提供一篇题解solution:考虑先把所有数都相加,如果是偶数就输出了,如果是奇数要减去最小的奇数。当只有一个奇数的时候是无解的。这道题我评分是橙到黄,不过其实这题红也不为过。如果有对评分的意见请私信。code:#include<cstdio>#include<algorithm>using namespace std;int a[10000...原创 2020-02-06 16:28:20 · 267 阅读 · 0 评论 -
洛谷P2458 [SDOI2006]保安站岗 题解(树上dp,巧妙,动态规划,较难)
solution:dp[u][0 2]dp[u][0~2]dp[u][0 2]0:点u处站了一个保安0:点u处站了一个保安0:点u处站了一个保安dp[u][0]=a[u]dp[u][0]=a[u]dp[u][0]=a[u]dp[u][0]+=min(dp[v][0 2])dp[u][0]+=min(dp[v][0~2])dp[u][0]+=min(dp[v][...原创 2020-01-17 20:43:32 · 323 阅读 · 0 评论 -
洛谷P5908 猫猫和企鹅 题解(水题,模板,dijkstra,bfs)
solution:发现其实就是求1号节点到其他节点最短距离小于等于d单源最短路dij求即可。#include<cstdio>#include<queue>#include<vector>using namespace std;priority_queue<pair<int,int>,vector<pair<int,i...原创 2020-01-17 18:33:53 · 530 阅读 · 0 评论 -
洛谷1927 防护伞 题解(贪心,遍历,水题,细节)
solution:这道题其实以每个点为圆心遍历,找到和它距离最大的就行。要注意:不要把外层循环的min写成max,详见注释两个点互相覆盖不同,详见注释#include<cstdio>#include<algorithm>using namespace std;struct ben{ int x,y;}a[1005];int main()...原创 2020-01-17 18:17:40 · 553 阅读 · 0 评论 -
洛谷P2694 接金币 题解(排序,贪心)
solution:排序,相当于贪心的思路,因为题目是问能不能都接完,所以从快到慢考虑。每次别忘了计算接A的同时B已经下落的时间#include<cstdio>#include<algorithm>using namespace std;struct ben{ int x,y;}a[105];int cmp(const ben &a,const b...原创 2020-01-16 20:11:06 · 2997 阅读 · 0 评论 -
洛谷P1130 红牌 题解(简单dp,类似数字三角形)
description:矩阵型,从左到右,上下相连的数字三角形。solution:大体的思路与数字三角形相似。但是这题矩形的长宽颠倒不太方便,读入的时候可以scanf:a[j][i]来巧妙的转换一下。(相当于把矩形给竖起来?)这就导致(拿样例为例):2 6 1 83 6 2 64 2 3 6在转换之后变成了:2 3 46 6 21 2 38 6 6这样的话,原...原创 2020-01-13 20:34:06 · 487 阅读 · 0 评论 -
洛谷P1373 小a和uim之大逃离 题解(简单递推,基础dp)
description:瞬间,地面上出现了一个n*m的巨幅矩阵,矩阵的每个格子上有一坨0~k不等量的魔液。怪物各给了小a和uim一个魔瓶,说道,你们可以从矩阵的任一个格子开始,每次向右或向下走一步,从任一个格子结束。开始时小a用魔瓶吸收地面上的魔液,下一步由uim吸收,如此交替下去,并且要求最后一步必须由uim吸收。魔瓶只有k的容量,也就是说,如果装了k+1那么魔瓶会被清空成零,如果装了k+2就...原创 2020-01-13 17:49:58 · 288 阅读 · 0 评论 -
题解 P5662 【纪念品】洛谷,2019CSP-JT3,重题P2938 [USACO09FEB]股票市场Stock Market
题意简述:给定⼀个DDD天的SSS只股票价格矩阵,以及初始资⾦ MMM;每次买股票只能买某个股票价格的整数倍,可以不花钱,约定获利不超过500000500000500000。最⼤化你的 总获利。题目分析:首先我们要知道此题的详细意图:每天都可以用你手中有的钱买入股票,数量不限,也可以卖出你自己的股票,所得的收益或价值已经在D∗SD*SD∗S的矩阵中给出。要求在最后一天结束后得到的钱最多。题...原创 2019-11-23 09:02:25 · 416 阅读 · 0 评论 -
P5660 数字游戏 题解
https://www.luogu.org/problem/P5660听说考前写题解能增加RPday2 RP++;description:求一个长度为8的01字符串中数字1的个数solution:第一年CSP-J的题目感觉还是比较良心(虽然还是有原题)我们只需要从1~8循环一下,然后判断每次读入的是否是1即可新手注意事项考场上要加freopen因此不要忘记加cstdi...原创 2019-11-16 21:02:55 · 1537 阅读 · 0 评论 -
P5638 【CSGRound2】光骓者的荣耀 题解
solution:因为仅仅能传送一次,所以我们只需要枚举传送点,然后通过前缀和判断就行了。出题人良心的数据范围开long long可过code:#include<cstdio>using namespace std;long long max(long long x,long long y){ if(x>y)return x; return y;}long ...原创 2019-11-10 08:22:14 · 730 阅读 · 0 评论 -
P5639 【CSGRound2】守序者的尊严 题解
solution:这道题也许比T1还简单?因为监控开一次关一次,所以我们完全可以遇到一段0变成1,或者1变成0就记录一下。然后特殊处理一下开头因为开头一定需要花费一段时间code:#include<cstdio>using namespace std;int a[1000005];int main(){ int n; scanf("%d",&n);...原创 2019-11-10 08:21:01 · 415 阅读 · 0 评论 -
P5602 小E与美食 题解
刚开始以为比较难,其实发现还挺简单的。。。首先:吃下一个美味值这句话不要理解成吃第二个美味值为ai的才增加满足感。解决了这个问题就发现题目变得简单了,吃同样多的食物肯定优先吃满足感大的。所以只需要先排个序,然后从大往小吃就行了code:#include<cstdio>#include<algorithm>using namespace std;dou...原创 2019-10-28 12:25:20 · 605 阅读 · 0 评论 -
P5601 小D与笔试 题解
这道题用string应该是比较好的(可以直接比较)然后就是输入的四个选项可以一一判断,如果不想那么麻烦的就存在数组里就好了code:#include<cstdio>#include<iostream>#include<string>using namespace std;string t[105],ans[105],tm,a[5];int mai...原创 2019-10-28 12:17:45 · 459 阅读 · 0 评论 -
洛谷P5497 [LnOI2019SP]龟速单项式变换(SMT) 题解
题目链接:https://www.luogu.org/problem/P5497分析:我们如果看一眼题面却没有头绪不妨看一眼数据,一看到101810^{18}1018,我们就大概能猜到这是一道重在思维的规律题。首先此题不要误认为是1~n的正整数序列(也就只有我这么想?)然后我们就只能被逼的走投无路寻找内在的关系此时我们连前缀和数组也根本无法使用,但在模拟小数据时可以发现以下性质:如...原创 2019-10-27 21:11:31 · 468 阅读 · 1 评论 -
洛谷P3027 [USACO10OCT]赚钱Making Money 题解
My blogMy\ blogMy blogsolution:完全背包的好题。每次的价值是利润(r-c),花费是c然后套板子就行了#include<cstdio>#include<algorithm>using namespace std;int f[100005],a[105],c[105];int main(){ int n,m...原创 2019-10-26 19:48:04 · 1601 阅读 · 0 评论 -
洛谷P1850 换教室 题解
天哪这道题真的是神仙。。。orz出题人能出这种dp转移都写吐血的题目真的tqldescription:给出n个时间段,可申请m次换课,每次换课可申请从c[i]c[i]c[i]换到d[i]d[i]d[i],并有k[i]k[i]k[i]的概率换课成功,每个教室有间距,问路程期望的最小值。solution:首先这就是一道期望dp题。说到期望,https://45475.blog.luog...原创 2019-10-25 19:14:06 · 249 阅读 · 0 评论 -
洛谷P2009 跑步 题解
My blogMy\ blogMy blog看到题解少,来补充一篇。。。description(notes):变相给出一个图求最短路,对特殊情况有特殊要求solution:这道题观察到数据范围小的可怜,便可以使用Floyd算法解决。在刚刚处理的时候,要注意一句话如果两点之间有多条道路直接连接,他会选择最长的那条。所以如果这一条边中已经记录了数据,就取个max...原创 2019-10-24 22:17:46 · 274 阅读 · 0 评论 -
洛谷P2916 [USACO08NOV]安慰奶牛Cheering up the Cow 题解
description:求一个既有点权又有边权的无向图中的最小生成树。solution:这道题因为一句话:约翰打算在保持各牧场连通的情况下去掉尽量多的道路。显然就可以看出是用最小生产树。仔细读读题,发现唯一的瓶颈就是在处理权值上。如何将点权和边权都处理呢?首先,这条路要被来回走两遍(因为是树),所以在总权值里要有它×2\times2×2其次,每头奶牛会被安慰两次,...原创 2019-10-22 19:17:13 · 364 阅读 · 0 评论 -
P2872 [USACO07DEC]道路建设Building Roads 题解
My blogMy\ blogMy blogdescription:在一个准备连边的图中已经连好一些边,问使图联通所需的最小价值。solution:这道题和正常的最小生成树一样,只不过已经给出了一些边了。但是如果直接把两个点连起来不怎么方便,怎么办呢?突然发现了一个比较好的方法:把已经给出的边权值算做0就行了涨姿势了个人认为代码写的不算太乱(虽然我是大括号换行...原创 2019-10-21 19:58:08 · 513 阅读 · 0 评论 -
洛谷P4310 绝世好题 题解
description:给定一个长度为n的数列ai,求ai的子序列bi的最长长度len,满足bi给定一个长度为n的数列ai,求ai的子序列bi的最长长 度len,满足b_i给定一个长度为n的数列ai,求ai的子序列bi的最长长度len,满足bi andandand bi−1!=0(2≤i≤len)b_{i−1} != 0(2 ≤ i ≤ len)bi−1!=0(2≤i≤len)n≤105n...原创 2019-10-13 15:45:21 · 353 阅读 · 0 评论 -
洛谷P3372 【模板】线段树 1重写错误记录
note:10.11:if(tr[x].mark&&tr[x].l<tr[x].r)不要写成≤\leq≤bt(lch,l,mid);bt(rch,mid+1,r);这两句不要加括号code:#include<cstdio>#define lch ((x)*2)#define rch ((x)*2+1)using namespace std;...原创 2019-10-11 21:44:45 · 194 阅读 · 0 评论 -
NOIP2018普及T4暨洛谷P5018 对称二叉树题解
题目链接:https://www.luogu.org/problemnew/show/P5018花絮:这道题真的比历年的t4都简单的多呀,而且本蒟蒻做得出t4做不出t3呜呜呜。。。这道题可以是一只披着狼皮的羊了,全篇字字不离树,二叉树,然鹅却只需要会搜索就能解决。在前些日子复习的时候并没有考虑的普及组会出于数据结构有关的题目,于是大多数时间只是放在搜索,模拟,简单dp上,只为了以防不测练了个...原创 2018-11-17 08:22:30 · 1060 阅读 · 0 评论 -
NOIP2018&2013提高组T1暨洛谷P5019 铺设道路
题目链接:https://www.luogu.org/problemnew/show/P5019花絮:普及蒟蒻终于A了一道提高的题目?emm,写一篇题解纪念一下吧。求过!分析:这道题我们可以采用一种略带数学&贪心的思想来解决,其实也可以使用差分,但并没有必要了。因为任何一个点都可以单独减1。我们可以遍历每个点,然后发现当后一个点b的值大于前一个点的值时,我们需要把b减去前面的那个值...原创 2018-11-14 19:09:23 · 356 阅读 · 0 评论 -
NOIP2018普及T2暨洛谷P5016 龙虎斗
题目链接:https://www.luogu.org/problemnew/show/P5016分析:这是一道模拟题。看到题目,我们首先要把它细致的读明白,模拟题特别考察细节,往往会有想不到的坑点(好吧,这题貌似没有)。然后我们还要看一看数据范围,可以注意到会出现10^9级别的数字。稍有信息学常识的人都知道,int型存储的最大数字是2147483647(再加就爆富负了),实在背不过这个数字也...原创 2018-11-12 20:20:18 · 484 阅读 · 0 评论 -
NOIP2018普及T1暨洛谷P5015 标题统计 题解
题目链接:https://www.luogu.org/problemnew/show/P5015分析:这道题大概是给个签到分吧。很显然的字符串操作。本篇题解主要帮助初学者,请大佬略过。首先给大家介绍一个叫gets(s)gets(s)gets(s)的东东。s☞字符串的名称他有什么作用呢?将一行字符从文件或屏幕中读入,可以读空格,遇到换行跳出。—— by 本人此题也明显告诉是读...原创 2018-11-11 18:35:22 · 4891 阅读 · 7 评论 -
洛谷P1690 贪婪的Copy 题解
题目:https://www.luogu.org/problemnew/show/P1690分析:这道题就是一道最短路的题目,因为看到数据范围:n≤100n\leq100n≤100所以考虑使用FloydFloydFloyd我们先用O(n3)O(n^3)O(n3)的时间复杂度来跑一遍FloydFloydFloyd,然后考虑每个藏宝点,发现藏宝点p的范围:p≤10p\leq10p≤10我...原创 2018-11-04 20:32:42 · 356 阅读 · 1 评论 -
小埋的Dancing Line之旅:比赛题解&热身题题解
T1题意:给出一个长度为nnn字符环,求回文串长度为lll的回文中心个数。Solution 0我们可以有信仰!输出0,期望得分10;输出nnn,期望得分10。Solution 1我们可以暴力!枚举所有子串,期望得分30;Solution 2枚举所有回文中心,根据处理环的方式不同(开环枚举断点或补成字符串),时间复杂度也有不同,期望得分50~80(为了照顾不会Manacher的同学);...原创 2018-10-27 18:54:18 · 797 阅读 · 1 评论 -
洛谷P2384 最短路 题解
题目简叙:请你求出从1到n的最短路径,其中最短路径☞这条路经过的边的权值的乘积。题目分析:很显然,这也是一道经典的单元最短路问题,首先我们可以考虑使用Floyd,显然,这是一个比较无脑简单的最短路算法,而且包治负边权等等。但是时间复杂度太高,可达O(n3)O(n^3)O(n3).这道题目看起来可能是刚刚好,但据说会被卡常数呀。再就是可以用dijkstra,但此题不保证边权不为负,但dijk...原创 2018-10-29 20:26:01 · 350 阅读 · 3 评论 -
洛谷P3905 道路重建
题目:https://www.luogu.org/problemnew/show/P3905分析:此题是显然的最短路算法,只是看到一起删掉的一堆边感到十分棘手,而且还要求出的是最短添加边的总长度但如果仔细观察就可以发现,我们其实并不用一个一个的全部枚举,只需要把添加的边做最短路就行了。我们可以首先把数组初始化为一个较大的数,然后每读入一条边,就把此边的权值记录,但还要把它清零。为什么呢?...原创 2018-10-31 19:31:16 · 438 阅读 · 4 评论 -
洛谷P1396 营救 题解
题目:https://www.luogu.org/problemnew/show/P1396分析:这其实一看就是一个最短路的近似模板的题目,但我们要注意到两个区之间可能会有多条道路,所以说我们只需要在最短路模板的基础上把加和改为最大值即可,因为题目还说了要求出最后的结果是最大值的最小,所以我们可能会自然而然的想到二分,然而此题跑个dijkstra或spfa甚至是克鲁斯卡尔最小生成树都行。然...原创 2018-11-01 19:48:14 · 822 阅读 · 1 评论