
luogu
文章平均质量分 60
liusu201601
这个作者很懒,什么都没留下…
展开
-
luoguP7912 小熊的果篮 [CSP-J2 2021]
题目连接该题是CSP-J2 2021 T4 小熊的果篮题目大意给出一个绿球和红球的交叉分布序列,每轮取走所有同色区间最左边的一个,要求将每一轮的取数打印( $ n \leq 2 \times 10^5$)。样例操作如下图:解法分析作为普及组的压轴题,很容易让人浮想联翩,但是仔细分析,可以发现其实也不用高大上的算法或者数据结构(什么分块、排序树,先放一放)。普遍的做法是队列或者链表完成,O(n)O(n)O(n) 即可解决问题。以下是将每一块打包,然后压进队列,直接模拟扫描即可。原创 2022-03-20 18:59:45 · 1136 阅读 · 0 评论 -
luoguP7911 网络连接 [CSP-J2 2021]
题目连接该题是CSP-J2 2021 T3 网络连接题目大意给出两种计算机的一些网络属性,对字符串的特定属性判重与差错。解法分析考察 模拟+STL1、细节较多,需要将所有情况分析清楚;2、考察 STL 的基础用法: map 和 string;实践步骤1、首先考虑查重:用 map 可以轻松解决,以地址字符串作为下标存储服务机编号即可;2、模拟的细节:(1)字符格式是否符合类似 1.1.1.1 的分布模式;(2)数字是否符合范围;(3)数据是否有多余前导零。参考代码//T原创 2022-03-20 16:37:50 · 614 阅读 · 0 评论 -
luoguP710 插入排序 [CSP-J2 2021]
题目连接该题是CSP-J2 2021 T2 插入排序题目大意给定长度为 nnn 的序列 aia_iai,要做 qqq 次操作,类别有两种:操作类别1:修改,将第 xxx 个位置的值更改为 kkk (最多有 500050005000 次);操作类别2:查询,将原下标为 xxx 的数的排名。解法分析考核排序的基础理解,因为数据较小,不需要用任何高大上的数据结构和算法,直接暴力模拟即可。参考代码//T2-插入排序 //CSP-J2 2021#include<bits/std原创 2022-03-20 16:10:42 · 1329 阅读 · 0 评论 -
luoguP7909分糖果 [CSP-J2 2021]
题目连接该题是CSP-J2 2021 T1 分糖果题目大意给出三个数 n,l,rn,l,rn,l,r,要求在 [l,r][l,r][l,r] 中找到一个整数 kkk,设 d=k%nd=k \% nd=k%n ,输出这个最大的 ddd 。解法分析考察取余的基础性质:1、因为 d=k%nd=k \% nd=k%n ,所以 ddd 的值在 [0,n−1][0,n-1][0,n−1] 之间;2、因为 kkk 的值在 [l,r][l,r][l,r] 之间,所以讨论清楚 r−l+1r-l+1r−原创 2022-03-20 15:29:58 · 482 阅读 · 0 评论 -
luogu-P7071-优秀的拆分
题目连接该题是CSP-J2-2020-T1题目大意输入一个整数,求他的二进制是否为优秀,优秀的原则是:二进制的第一位(2^0)不能有值。题目分析考核的是二进制基础,方法有很多,如果会倍增数组的话,相对简单,也可以用位运算来处理。参考代码1//T1-优秀的拆分 //CSP-J2-2020//二进制基础 #include<bits/stdc++.h>using namespace std;int a[110],n;int main(){ cin>>n原创 2020-12-01 11:34:01 · 400 阅读 · 0 评论 -
luogu-P5660 数字游戏
题目连接该题是CSP-J2-2019-T1题目大意输入一个定长为8的 01 串,统计1的个数。题目分析无脑签到题,只要学过字符数组或者字符串的同学,秒切。参考代码//CSP-J2-1-数字游戏 //字符分析 #include<bits/stdc++.h>using namespace std;char s[10];int ans;int main()...原创 2019-12-02 10:58:02 · 448 阅读 · 0 评论 -
luogu1739:表达式括号匹配:模拟
题目连接该题是luogu试炼场的2-13:T3题目大意一个长度不超过255的串,求左右括号的匹配情况。题目分析字符串入门题:解题思路1直接模拟代码//luogu1739:表达式括号匹配 //队列与匹配问题 #include<bits/stdc++.h>using namespace std; const int mx=2e3+5...原创 2019-05-07 15:45:10 · 302 阅读 · 0 评论 -
luogu1449:后缀表达式:栈的基础思维
题目连接该题是luogu试炼场的2-13:T5题目大意一个数学表达式,按照就近原则运算;对于一个串,从左到右,只要遇到运算符,则马上用该运算符对左边的两个数进行运算;求这样的运算终值。题目分析看题目第一反应是栈;还有字符转数字的简单操作解题思路1用串来读入;遇到连续的数字,则进行整理;数字终端则将其进栈;遇到符号,则取栈顶的两个数字进行运算。...原创 2019-05-07 17:05:08 · 168 阅读 · 0 评论 -
luogu1115:最大子段和:贪心/二分+递归
题目连接该题是luogu试炼场的2-13:T2题目大意n个数字,求子段中,最大的连续和;题目分析看题目第一反应是队列:但因为不知道子段的长度,所以很难判断何时出队列; 思路1:贪心 思路2:线段树式的递归解题思路1:贪心设当前是 i ,则前面的“段”的和不能是负数;所以只要前面的“段”的和不是负数, i 就可能加进去;如果前面的“段”的...原创 2019-05-07 15:30:38 · 736 阅读 · 0 评论 -
luogu5018:对称二叉树:noip2018普及组T4
题目连接该题是luogu试炼场的2-14:T4题目大意给出一棵树;求最大的对称子树的规模题目分析对称树:以某个节点为根,一直延伸到叶子,完全对称我的读题最大误解,因为下面的样例:上图的样例给了我一个极大的误导,以为是蓝色框和绿色框两个子树对称,所以“对称子树的单边值”是3。正解应该是:上图红框中的子树内部对称,所以对称的子树节点总数是3。解题思路:...原创 2019-05-09 10:49:17 · 394 阅读 · 0 评论 -
luogu1305:新二叉树:建树与前序遍历
题目连接该题是luogu试炼场的2-14:T4题目大意给出n组父子关系,要求构成一棵树;输出这棵树的前序遍历。题目分析构树用结构体,前序遍历则是:先根,再左右。解题思路:结构体记录一个点的左儿子 s1,右儿子 s2;直接将关系连接起来;递归输出就好:先根,再左右。代码://luogu1305:新二叉树//建树//输出前序遍历 #includ...原创 2019-05-09 08:26:15 · 189 阅读 · 0 评论 -
luogu1996:约瑟夫问题:循环队列:模拟/链表
题目连接该题是luogu试炼场的2-13:T1题目大意给出一个环的规模n,第一次从1开始,踢走第m个人;每次踢人之后,从下一个人开始操作,直到队列为空;按顺序输出被踢出的人的编号。题目分析循环队列的元问题,队列是什么?但题目涉及到,有人会被踢出,所以是一个中间断开的数组,不能用固定的队列来做。解题思路1:暴力模拟因为是元问题,数据只有100;用bool数...原创 2019-05-06 12:06:13 · 432 阅读 · 0 评论 -
luogu1030:求先序排列:树的遍历问题
题目连接该题是luogu试炼场的2-14:T2题目大意知道一个大写字母串的中序和后序遍历求这个串的前序遍历。题目分析遍历的元问题知道一个串的中序遍历,并知道另外任意一种,就可以推算出第三种遍历情况。解题思路:后序遍历中,最后一个就是根k;在中序遍历中,k左边的就是左子树,k右边的就是右子树;先输出当前根,然后左右进行分治就好代码://luogu10...原创 2019-05-08 17:01:41 · 276 阅读 · 0 评论 -
luogu1087:FBI树:树的后序遍历
题目连接该题是luogu试炼场的2-14:T1题目大意知道一个01串,作为一棵树的叶子要求建立一棵FBI树,输出这棵树的后续遍历(左->右->根);题目分析题目样例画出来的树如下图:主要考察后序遍历问题:解题思路:用结构体作为节点的存储工具;叶子作为搜索的边界;先搜左边,再搜右边,回溯的时候输出根节点的信息。代码://luogu1...原创 2019-05-08 14:45:49 · 329 阅读 · 0 评论 -
luogu1029:最大公约数和最小公倍数问题
题目连接该题是luogu试炼场的2-11:T6题目大意给出 a 和 b,求以 a为最大公约数,以 b 为最小公倍数 的数对题目分析纯粹小学数学概念分析要求掌握:辗转相除法解题思路:用辗转相除法,大公约数 a;设数对(x,y),则 a * b= x * y对称解也算哦,ans * 2代码1://luogu1029:最大公约数和最小公倍数问题//1...原创 2019-04-19 14:53:38 · 336 阅读 · 0 评论 -
luogu1147:连续自然数和:队列的使用
题目连接该题是luogu试炼场的2-11:T3题目大意给出n,求1-n的数字中,那些段的连续和 是 n题目分析2000000 的数据,应该没什么坑解题思路:队列的介绍 代码解题思路:队列的介绍一般指连续的数字:小火车这里车头是y,车尾是x,车头一直往前开,如果s>n,则车尾缩短:代码1://luogu1147:连续自然数和 /...原创 2019-04-19 12:01:58 · 327 阅读 · 0 评论 -
luogu1017:进制转换:负数取模问题
题目连接该题是luogu试炼场的2-11:T4题目大意给出 n 和 k,求实进制 n 的 k 进制表现方式;短除法!可以解决正数部分的问题,但是有负数参取模运算,过程会出现问题;浅显易懂的分析非常详细的讲解题目分析题目要求需要解决负数取模的问题,最终答案是正数;解题思路:设当前是k进制;当余数y是负数的时候,y+=k;转换为正数;同时 让 商 减少 ...原创 2019-04-22 17:24:37 · 236 阅读 · 0 评论 -
luogu1434:滑雪:记忆化搜索
题目连接该题是luogu试炼场的2-9:T2题目大意给出一个n*m的矩阵,求最长的链;要求1:方向只有4个:上/下/左右;要求2:值只能从高到低;题目分析因为是100*100,要考虑记忆化;解题思路每个点都尝试做起点;简单记忆化;PS:本题用DP也很容易理解,以后有需要再上代码;上代码//luogu1434:滑雪 //每个点都尝试做开头,记忆化处...原创 2019-04-15 15:04:18 · 266 阅读 · 0 评论 -
luogu1088:火星人:深搜/STL大法
题目连接该题是luogu试炼场的2-11:T1全排列类型的问题:全排列入门题题目大意给出一个n,表示关于n 的全排列事件;给出一个m,表示经过m次后,排列的值是多少?给出初始的排列状态;题目分析看题目会大意会晕,但题目本身不难理解:== 给出关于 n 的当前的排列状态,求后面第m个状态。==解题思路1第一感觉,n是10000,深搜没戏;但仔细分析一下,会...原创 2019-04-18 11:16:27 · 269 阅读 · 0 评论 -
luogu1135:奇怪的电梯:经典宽搜
题目连接该题是luogu试炼场的2-12:T3题目大意一栋楼有 n 层,要求从 A 层去 B 层;知道每一层都有一个数字 x,表示能向上或向下移动 x 的间距;求从 A 层 去 B 层的最短路。题目分析每层都有一个固定的数字 x ,其实就是步长,而且只能在(0,n ]的楼层内移动经典的宽搜题目解题思路:用一个队列存储“下一次能到达的楼层”;题目有个坑点,...原创 2019-04-23 09:38:34 · 423 阅读 · 0 评论 -
luogu1216:数字三角形:递推元问题
题目连接该题是luogu试炼场的2-12:T5题目大意给出 n, 给出一个 n 层的 正整数三角形,从上往下,找一条线,要求和最大;必须只能直接向下走,或者走右下角。题目分析递推的元问题,可以从上往下顺推也可以从下往上,逆推解题思路:a数组存原始数据,直接逆推,保证每个格子都是当前最优解因为没有后效性,所以a [ 1 ] [ 1 ]就是答案代码1:...原创 2019-04-23 09:56:00 · 211 阅读 · 0 评论 -
luogu1057:传球游戏:记忆化搜索 / DP
题目连接该题是luogu试炼场的2-12:T3题目大意有n 个小朋友,玩击鼓传花的游戏,小球只能传给左边或者右边的同学;要求第m次传回给出发者,问方案数量;题目分析看题目第一反应当然是DFS,但显然是需要优化的: 思路1:50分:暴力DFS思维 思路2:dfs+记忆化 思路3:DP传统分析 思路4:神仙:很好地诠释了比赛的时候该有的做题步骤...原创 2019-04-23 12:04:40 · 439 阅读 · 1 评论 -
luogu1182:数列分段:二分答案+贪心查找
题目连接该题是luogu试炼场的2-12:T6题目大意给出 n 个数字,分成 m 段;每一段的和 s,要求 s 的最大值尽可能小。题目分析经典二分题目,有一道异曲同工的:愤怒的牛二分的精髓不在过程,而在最终对于L和R的处理!noi题库有一个二分专题,10题让你愉快入场!解题思路:初始的左边界L:一定是数组的最大值,因为最小的值,也必须有一个数字在里面;初...原创 2019-04-23 14:57:46 · 419 阅读 · 0 评论 -
luogu1316:丢瓶盖:排序+二分答案
题目连接该题是luogu试炼场的2-12:T7题目大意给出 n 个数字,表示数轴上的刻度;找出其中的 m 个,数字之间的跨度是 d ;要求 d 的最小值 ,尽可能大。题目分析经典二分题目,有一道异曲同工的:愤怒的牛二分的精髓不在过程,而在最终对于L和R的处理!noi题库有一个二分专题,10题让你愉快入场!解题思路:因为要选点,又是在数轴上,先排序比较稳当...原创 2019-04-23 16:50:01 · 311 阅读 · 0 评论 -
luogu1045麦森数:高精度乘法+快速幂
题目连接该题是luogu试炼场的2-11:T2参考1:高精度*高精度(稍后更新)参考2:快速幂题目大意输入n,求 2n-1 的值;输出有要求1:输出数位;输出有要求2:后500位,分10行输出;题目分析n的范围是(1000,3100000),还给出了极值的长度有90W+位: 朴素思维1:高精度*低精度,暴力拿50分soeasy! 正派思路2:数学计算+快速幂...原创 2019-04-19 11:15:50 · 294 阅读 · 0 评论 -
luogu1160:队列安排:双向链表/树的中序遍历
题目连接该题是luogu试炼场的2-13:T4题目大意n个数字组成的队列,多次的插入;再删除其中m个元素;要求输出最后的队列状态题目分析看题目第一反应是队列:但因为多次的间隔插入和条空删除,应该要用链表来做,链表的思想请参考 思路1:双向链表 思路2:用树来存储,中序遍历输出解题思路1:双向链表最开始的时候队伍里只有1号同学;接下来的...原创 2019-05-08 09:16:00 · 232 阅读 · 0 评论 -
luogu1020:导弹拦截:最长上升子序列+单调队列
题目连接该题是luogu试炼场的2-16:T1题目大意有一个 n 个元素的序列,求其中的“最长不上升子序列” 和“最长上升子序列”200分的数据是:n=100000;题目分析DP的起手题,最长上升子序列问题:题意分析:问题1:一个系统,攻击的高度只能持平或者衰减,所以用暴力的思维理解,当前是 x 个导弹,如果(x -> n )个导弹中,希望尽可能多的导...原创 2019-05-16 11:10:32 · 897 阅读 · 2 评论 -
luogu1855:榨取kkksc03:二维01背包
题目连接该题是luogu试炼场的2-17:T5题目大意知道n个队伍的金钱消耗w[i],金钱消耗t[i];知道金钱的最大值是m,时间的最大值是t;求最多的队伍次数。题目分析经典的二维01背包问题;和“潜水员”基本是重合的。思路:二维背包看他写就好参考代码//luogu1855:榨取kkksc03:二维背包 #include<bits/stdc++...原创 2019-06-13 09:42:24 · 220 阅读 · 0 评论 -
luogu1880:石子合并:区间DP元问题
题目连接该题是luogu试炼场的2-16:T4题目大意有n堆石子,围成一圈;(成环)单次只能合并相邻的两堆石子,消耗与“两堆石子”等重的能量;要求把所有石子合并完成,消耗的能量最小。题目分析区间DP的概念:要知道从i->j区间内的最优解,则需要枚举区间内的所有情况;本题成环,所以需要用两倍的长度作为过程,最后只需要扫一遍n长度就可以了。 解题思路...原创 2019-06-11 08:34:59 · 314 阅读 · 0 评论 -
luogu1006:传纸条:棋盘DP
题目连接该题是luogu试炼场的2-17:T2题目大意n*m的棋盘,每个格子有一个0-100的数值;从左上角出发,只能向右和向下走,到达右下角;从右下角出发,只能向左和向上走,到达左上角;要求2次的路线不能重复,求经过格子的取值和尽可能大。题目分析体面非常直观,第一感觉用深搜就可以做,而且只有50的数据,感觉随便搞一搞还能暴力AC;本题是在DP模块,所以还是用DP的...原创 2019-06-11 09:40:16 · 234 阅读 · 0 评论 -
luogu1541:乌龟棋:带技巧的背包
题目连接该题是luogu试炼场的2-18:T2题目大意一个n格的跑道,每个格子上有得分;要求乌龟从第一格走到第n格,有4种共m张牌可以用;1号牌可以移动1格,2号派可以移动2格。。。计算落脚点的得分;数据保证刚好卡牌用完,落在终点,问如何调整牌的顺序,得到最大得分。题目分析第一个感觉就是背包,而且隐藏了很多信息:1 而且数据保证,用完m张牌,刚好到达终点;2 从1...原创 2019-06-25 14:27:57 · 242 阅读 · 0 评论 -
luogu1736:创意吃鱼法:棋盘DP
题目连接该题是luogu试炼场的2-17:T6题目大意n*m的0,1棋盘中;找最大的正方形,要求:(左或者右)对角线上全是1,其他位置全是0。题目分析和1387最大子正方形十分类似,但要增加预处理。因为左右对角线都有可能是最值,所以分开两次DP:一次左斜,一次右斜,再取最值。解题思路:左斜问什么设什么: f[i][j]表示以(i,j)为右下角的正方形,符合条件...原创 2019-06-18 09:38:53 · 219 阅读 · 0 评论 -
luogu1417:烹调方案:01背包ex
题目连接该题是luogu试炼场的2-17:T4题目大意01背包问题+了难度。题目分析因为价值与次序有关,所以在普通的01背包基础上,假如了次序的概念,需要先进行特殊排序,再跑背包。解题思路用结构体来表述每样物品:k[i]物品的属性包括:a,b,c;区别于传统的背包,题目中设定了价值:a-t*b,所以一个物品先枚举和后枚举,价值是会发生变化的;设定k...原创 2019-06-18 11:05:27 · 211 阅读 · 0 评论 -
luogu1063:能量项链:区间DP
题目连接该题是luogu试炼场的2-18:T4类似luogu1880 的石子合并题目大意n颗珠子串成一圈,可以头尾合并;只能相邻的合并,合并后原地变成一颗新的珠子,头尾不变;求用什么顺序合并,得到的能量最大。题目分析这题和石子合并,堪称区间DP的模板级:1 处理成环的问题;2 搞清楚每颗珠子的前后关系;思路:问什么设什么:f[i][j]表示从i合并到j...原创 2019-06-26 09:12:29 · 247 阅读 · 1 评论 -
luogu1052:过河:线性DP+路径压缩
题目连接该题是luogu试炼场的2-18:T6题目大意在一个长度是n的数轴上,有m个格子有石头;从0出发,跳出数轴,每次可以跳 s-t 的距离;问:要求踩到尽可能少石头的情况下,踩了多少石头。n是109 ,m的范围是100(最多100个石头);题目分析在没看到n的范围之前,这是一道非常直观的线性DP,30%的分数稳了。100%的数据,显然要想优化才行。3...原创 2019-06-28 11:14:43 · 594 阅读 · 1 评论 -
luogu1508:吃吃吃:递推水题(略)
题目连接该题是luogu试炼场的2-17:T1题目大意n*m的棋盘,每个格子有一个整数;要求从第n+1行往上,每次只能选左上/上/右上这三个格子中的一个推进;求累加到第一行的路线中,值最大。题目分析~~ 吐槽一波:题目写得好凌乱,完全不认真写题面!!~~典型的三角形取数问题,应该放在递推模块才对的,放在这里纯粹浪费题目数量!!思路:倒推直接出答案从上往下过...原创 2019-06-13 09:20:47 · 286 阅读 · 0 评论 -
luogu1387:最大正方形:子矩阵问题
题目连接该题是luogu试炼场的2-17:T3题目大意n*m的棋盘,每个格子有一个0/1的数值;求一个最大的正方形子矩阵,要求矩阵内都是1;输出这个最大子矩阵的边长;题目分析经典的子矩阵问题,问什么设什么:f[i][j]表示以(i,j)为右下角的子矩阵,能构成正方形的边长的最大值;如果a[i][j]的值是0,f[i][j]不存在子矩阵;如果a[i][j]的值是1...原创 2019-06-13 08:49:25 · 3351 阅读 · 2 评论 -
luogu1049:装箱问题:背包元问题
题目连接该题是luogu试炼场的2-15:T5题目大意知道一个体积是v的箱子,有n件备选物品,知道每件物品的体积x;求箱子能放入的最大体积的物品的体积;题目分析这是一道组合的问题:分析样例:24格的箱子,如果有6个物品,暴力的做法应该是:用 i 表示当前可以放进箱子的物品总数量(1-6)这是一个 6选x 的组合问题。但是因为体积和物体种类都会远远超过可承受...原创 2019-05-13 12:18:02 · 250 阅读 · 0 评论 -
luogu1048:采药:元问题
题目连接该题是luogu试炼场的2-15:T4题目大意知道时间 t ,有n 株备选药品,知道每件物品需要 v,价值 w;求 t 时间内,能采摘的最大价值的药;题目分析这还是一道组合的问题:分析样例:70秒的时间,有3株药可选,暴力的做法应该是:用 i 表示当前可以放进箱子的物品总数量(1-3)这是一个 6选x 的组合问题。但是因为体积和物体种类都会远远超过...原创 2019-05-13 14:35:15 · 188 阅读 · 0 评论 -
luogu1616:疯狂的采药:完全背包
题目连接该题是luogu试炼场的2-15:T6题目大意知道时间 t ,有n 株备选药品,知道每件药品的数量是无限的,采摘一株需要用时 v,价值 w;求 t 时间内,能采摘的最大价值的药;题目分析这还是一道组合的问题:分析样例:70秒的时间,有3株药可选,暴力的做法应该是:用 i 表示当前可以放进箱子的物品总数量不等,因为每种药可以拿多株,这是一个似乎比3选x 更...原创 2019-05-13 14:47:18 · 212 阅读 · 0 评论