OJ刷题(主要洛谷)
OJ集
中了beakhyun的毒
这个作者很懒,什么都没留下…
展开
-
洛谷: P1531 I Hate It(线段树)
创建线段树的时间复杂度为O(n),每次查找和修改的时间复杂度均为O(logn)记录一道线段树单点修改题目。原创 2024-03-05 17:13:06 · 434 阅读 · 0 评论 -
洛谷: P1754 球迷购票问题
纯暴力三个点超时,所以每次DFS完了,把当前找到的方式数量记录下来,不再重复的去DFS。思路: 记忆化搜索。和洛谷上那道括号匹配的题几乎是一样的。x是当前剩余50的数量,y是剩余100的数量。原创 2024-03-05 10:42:20 · 398 阅读 · 0 评论 -
洛谷: P1656 炸铁路(并查集)
思路: 枚举每一条铁路,假设去掉这条铁路,检测图中的n个地点是否还能连通。如果不能连通,说明需要炸掉这条路,如果能连通,说明去掉这条路并不影响连通性,就没必要把这条路炸了。注意Union方法,如果x和y的根节点是一样的,直接return,否则就成环了。今天记录一道并查集的题目。原创 2024-03-04 20:17:33 · 572 阅读 · 0 评论 -
洛谷: P1470 [USACO2.3] 最长前缀 Longest Prefix
DFS(pos)表示检索到了s的pos位,枚举下一个位置,len从pos开始能截取的长度。vis[pos]是否检索过这个位置,如果来过了,那就直接返回就好了,不要再重复的去枚举了。思路: 拒绝KMP,map+暴力+剪枝。原创 2024-03-03 11:22:09 · 480 阅读 · 0 评论 -
洛谷: P1581 A+B Problem(升级版)
其他就是细心问题了...(其实错了好几次,才发现ad函数少写了一个return,折磨疯了)flag: 当前是往a里面放还是b里面放,遇到+的时候flag改变,表明该装a了。不过这道题只有万位可能出现两个数字,所以开辟数组来解决这个问题(如题解)更简洁。hasNum:前面是否已经读到数字了。为了解决一位上出现多个数字的情况。注意事项: 万位可能有两位,所以在输入的时候要进行一些处理。原创 2024-02-21 13:48:48 · 484 阅读 · 0 评论 -
洛谷: P1616 疯狂的采药(多重背包)
多重背包和01背包区别是可以无限次拿取同一个物品,但是01每个物品只能拿一个。另外在代码书写上,多重是正序,01是倒序。思路:多重背包问题。原创 2024-02-21 10:53:14 · 183 阅读 · 1 评论 -
洛谷: P1611 循环的数字
另外注意去重,例如( 1212 , 2121 ) ( 1212 , 1212 ) ( 1212 , 2121 )。但是这道题给避开了,所以不去重也无所谓。思路: 核心就是找到n反转之后能产生的数字,如果这个数字比n大并且小于b那么是一个正确的数对。下面是代码,比较直观,缺点是时间不占优,因为较多的字符串拼接(但是AC没啥问题)。首先要注意一个事情,要求n和m是两个不同的整数,所以(1111,1111)不算。原创 2024-02-21 03:02:11 · 415 阅读 · 0 评论 -
洛谷: P1589 泥泞路
思路: 一道比较明显的贪心题目。覆盖路A的木板可能也会覆盖路B的部分长度,那在计算路B所需要的木板数量的时候,就不需要从起点开始铺。由此类推,在每次循环的时候,我们需要知道覆盖路A木板在右端延伸到的位置(变量rl),在下一次循环的时候,找到开始铺木板的起点..。原创 2024-02-20 02:28:11 · 496 阅读 · 0 评论 -
洛谷: P1553 数字反转(升级版)
第一次AC没过去,原因是没考虑到分数的分母前导0的情况,比如1234567890/1234567890这个样例,结果输出应该是987654321/987654321才对。所以如果是分数的话,相较于小数,需要多考虑这种情况。思路: 没想到什么好办法,一步一步来。整体就是反转,删除前导/后导0,反转,删除前导/后导0。代码看起来挺多,是因为重复的代码挺多的。原创 2024-02-19 03:20:59 · 525 阅读 · 0 评论 -
洛谷: P1498 南蛮图腾
【代码】洛谷: P1498 南蛮图腾。原创 2024-02-18 15:02:05 · 288 阅读 · 0 评论 -
洛谷: P1480 A/B Problem
输入两个整数ab,输出它们的商。原创 2024-02-17 13:04:40 · 729 阅读 · 0 评论 -
洛谷: P1479 宿舍里的故事之五子棋
这是一道搜索的题目,每个位置有选择/不选择两种情况。搜索的时候我们一行一行的搜索,直到使用的棋子达到n为止。b[i]为五子连线的数量,b[i] = 1表示五子连线的数量可以取i,在最后我们将可以取达到的数量累加在一起就是最终的结果。原创 2024-02-17 00:06:20 · 468 阅读 · 0 评论 -
洛谷: P7910 [CSP-J 2021] 插入排序
3.每次操作一执行完成数组重新排序一次。两个for循环的原因,这个位置上的数字可能变大可能变小。如果变大需要将其往后冒泡找到他应该在的位置。反之,往前冒泡(我看题解没写这个判断条件,很容易造成误导)。1.定义结构体,将输入数据和它是第几位绑定起来。增加一个数组f[x],记录原来序列中的第x个在新序列中的位置,每执行一次修改操作,我们需要对数组重新排序一次,意味着f[x]要更新一次。2.操作二的查询即是将f[x]输出出来。原创 2024-02-14 15:55:22 · 668 阅读 · 0 评论 -
洛谷: P9749 [CSP-J 2023] 公路
贪心思想指的是在对问题求解的时候,总是能做出在当前看来是最好的选择,也就是说,如果要得到整个问题的最优答案,那么要求每一步都能做出最好的选择(feihua)。dp[i] 表示前i站的最低油价(在站点2的时候莫得选,只能用站点1加的油)。然后遍历每个站点,计算来到每个站加多少油,花费多少钱。在这道题里面,我们希望在来到第i站的时候,使用的是前面i-1站当中油价最低的油。原创 2024-02-13 17:42:49 · 561 阅读 · 0 评论 -
洛谷: [CSP-J 2023] 小苹果
小 Y 的桌子上放着n个苹果从左到右排成一列,编号为从1到n。小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。每天在拿的时候,小苞都是从左侧第1个苹果开始、每隔2个苹果拿走1个苹果。随后小苞会将剩下的苹果按原先的顺序重新排成一列。小苞想知道,多少天能拿完所有的苹果,而编号为n的苹果是在第几天被拿走的?原创 2024-02-13 14:21:29 · 1479 阅读 · 0 评论 -
洛谷: [CSP-J2019] 公交换乘
tbus−tsubway≤45现在你得到了小轩最近的公共交通出行记录,你能帮他算算他的花费吗?原创 2024-02-13 13:19:20 · 866 阅读 · 0 评论 -
洛谷: P1177【模板】排序
题目描述将读入的 N 个数从小到大排序后输出。原创 2024-02-13 00:48:00 · 690 阅读 · 0 评论 -
洛谷: P1308 [NOIP2011 普及组] 统计单词数
这道题没理解清题目表达意思,我开始想的是用map来记录个数,然后一个变量记录一开始出现的单词位置,不挺简单的吗,然后....就AC了2个..从错误提示能看到个数没啥问题,但是第一个单词位置不对,看了新样例发现,输入文本前面可能是空格....输入s两端需要加上空格,因为题目要求是一个独立的单词完全适配,不加空格会部分适配。b加空格的原因是s加了空格(样例1那样目标出现在首部或者尾部)原创 2024-02-12 22:35:29 · 365 阅读 · 0 评论 -
洛谷: P1359 租用游艇(floyd)
长江游艇俱乐部在长江上设置了 nn 个游艇出租站 1,2,\cdots,n1,2,⋯,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站 ii 到游艇出租站 jj 之间的租金为 r(i,j)r(i,j)(1\le i\lt j\le n1≤i原创 2024-02-12 21:16:02 · 601 阅读 · 0 评论 -
洛谷:P1331 海战
本题唯一要考虑的点,就是“正方形”这个条件,船的形状组合起来必须是一个正方形,我们考虑增加几个变量来记录在一次DFS当中能够蔓延的上,下左右边界。cnt是蔓延的点的数量,如果最终正方形的面积和cnt不等说明,这个正方形中有位置空缺,也就是船只形状不是正方形,直接输出Bad placement.。在一个方形的盘上,放置了固定数量和形状的船只,每只船却不能碰到其它的船。在本题中,我们认为船是方形的,所有的船只都是由图形组成的方形。号上下相邻或左右相邻却分属两艘不同的船只,则称这两艘船相互接触了)。原创 2024-02-12 17:04:44 · 1002 阅读 · 0 评论