03 2025 档案

摘要:pi数组存储着以i位置为结尾的最长匹配真前后缀的长度 模式串:s2 主串:s1 str = s2 + "#" + s1 kmp算法能够快速找到模式串在主串中的位置(当pi的大小与模式串长度一致时,说明匹配。匹配位置:i-2*m(因为还要减去模式串在str中的长度))和数量! 时间复杂度O(n) 这个 阅读全文
posted @ 2025-03-09 09:56 Marinaco 阅读(1) 评论(0) 推荐(0) 编辑
摘要:字符串哈希重点在于将字符串映射成一个P进制数字 P通常取131 ull p[maxn],h[maxn]; const int P=131; void init(){ p[0]=1,h[0]=0; for(int i=1;i<=n;i++){ p[i]=p[i-1]*P;// p[i] -> p^i 阅读全文
posted @ 2025-03-09 09:18 Marinaco 阅读(1) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P3952 题意: 模拟,求循环时间复杂度 思路: 首先读入是最重要的, 共有l行,所以循环l次 由于输入格式,所以先输出opt,如果是F,那说明后面还有3个,变量用char存,后面俩个用string存就可以 发现题目给的整 阅读全文
posted @ 2025-03-08 10:12 Marinaco 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/solution/UVA524 题意: 按1逆时针排列构成的环每个数+左边或右边的数构成素数,输出排列 题意: 经典大法师,思路是用静态数组A模拟,递归压栈cur,重点是不能取重以及回溯 #include<bits/stdc 阅读全文
posted @ 2025-03-07 17:17 Marinaco 阅读(5) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.acwing.com/problem/content/description/5543/ 题意: 给定c,t数组,和两个数s,v 问对于每个i能否使s+t[i] < c[i] ,并且这样的i是否大于等于v个 思路: 让dif=c[i]-t[i]-1 ,发现只要给的s 阅读全文
posted @ 2025-03-07 16:39 Marinaco 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P4933 题意: 给定数组,每次可以任选数组中的元素消除,求能构成等差数列的方案数 思路: 记 dp[i,j] 为以i作结尾,公差为j的等差数列数量 枚举i之前的那些数k j=a[i]-a[k] dp[i,j] <-- d 阅读全文
posted @ 2025-03-06 19:45 Marinaco 阅读(6) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P1725 题意: 从0开始 ,每次可以跳到 i+l~ i+r 范围上,求跳到大于n后格子的最大val 思路: 线性dp,考虑dp[i]为以i开头时的最大val,那么答案就是dp[0] 转移:res=max(res,dp[p 阅读全文
posted @ 2025-03-06 17:34 Marinaco 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P2285 题意: 略 思路: 记dp[i]为以i为开头时能打的鼹鼠数目 从后向前枚举 转移条件是后面-前面的时间大于等于二者曼哈顿距离 初始化都为1 #include<bits/stdc++.h> #define rep( 阅读全文
posted @ 2025-03-06 17:10 Marinaco 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.acwing.com/problem/content/description/5542/ 题意: 给定一排满的牛奶桶,根据字符串s每桶牛奶会往左边的桶倒或右倒1升(同时),求m分钟后这些桶里还剩多少牛奶 思路: 不难发现 当两个相邻的牛奶桶倾倒方向为 RL 时,恰好 阅读全文
posted @ 2025-03-06 15:51 Marinaco 阅读(7) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.acwing.com/problem/content/description/5541/ 题意: 给定一个字符串,每次可以取出回文整数级别的石子,问谁先赢 思路: 博弈猜猜题,容易知道s是回文或者小于10,先手必赢 等于10,先手必输 因此,如果当给的数是10的倍数 阅读全文
posted @ 2025-03-05 14:50 Marinaco 阅读(4) 评论(0) 推荐(0) 编辑
摘要:再来! 发现参数传数组时,时间复杂度暴涨 结构体要规定在全局变量 否则空间不允许 query要pushdown 先pushdown在pushup const int maxn=1e5+5; int arr[maxn]; struct SGT{ struct node{ int l,r,sum; in 阅读全文
posted @ 2025-03-04 21:44 Marinaco 阅读(5) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P3842 题意: 从上至下有n条线段,每条线段必须走完 求从( 1,1) - > (n,n) 最短路径长度 思路 : 可以认为每一行要把线段走完,那么一定会在其左右端点 因为多走不会使答案更优 记dp[i,0] ,dp[i 阅读全文
posted @ 2025-03-04 20:21 Marinaco 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P1077 题意: 有n种花,每种花最多摆ai个,总共需要摆m个,求摆花的方案数 思路: 记dp[i,j] 为 以i 作结尾 摆了 j 个花的方案数 dp[i,j] = dp[i,j] + dp[i-1,z] 其中z指的是前 阅读全文
posted @ 2025-03-04 19:29 Marinaco 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P4017 题意: 求有多少条最大食物链 思路: 记dp[i]是以第i种生物作为食物链末尾时,最大生物链的条数 所以通过拓补序,每次都转移,最后找到出度为0的点,累加dp即可 注意状态转移以及答案的累加都需要取模 #incl 阅读全文
posted @ 2025-03-04 18:59 Marinaco 阅读(2) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.lanqiao.cn/problems/1049/learning/?page=1&first_category_id=1&name=重复字符串 题意: 给定一个字符串s,一个整数k,询问s是否能由k个相同的小字符串拼接而成,若能输出改动s需要的最小次数,否则输出- 阅读全文
posted @ 2025-03-04 18:34 Marinaco 阅读(2) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.acwing.com/problem/content/description/5529/ 题意: 经过一定操作使数组全0 思路: 发现操作 是在二位差分数组上进行增减的,因此想要让原数组变为全0数组,即让二位差分数组变为全0,因此答案为二位差分数组元素绝对值之和 # 阅读全文
posted @ 2025-03-04 13:20 Marinaco 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://ac.nowcoder.com/acm/contest/102896/D 题意: 给定一螺旋矩阵,求给定数值的坐标 思路: 需要找规律,发现1,9,25 等奇数的平方在y=x这条直线上 4,16,36等偶数的平方在y=x-1这条直线上 于是对于任意一个数t,都有 (i-1) 阅读全文
posted @ 2025-03-03 16:17 Marinaco 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://ac.nowcoder.com/acm/contest/102896/E 题意: 给定一个长度为n的数值数组,每次可以走1~6步,询问走了k步后能获得的最大数值 思路: 规定状态dp[i,j]为走了j步走到第i个格子上获得的最大数值 转移方程:dp[i-step,j-1]+ 阅读全文
posted @ 2025-03-03 15:35 Marinaco 阅读(6) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P1017 题意: 将一个数转化为负进制数 思路: 被除数=商*除数+余数 为了将余数化为正数:被除数=(商+1)*除数+(余数-商)(余数一定比商大) 其他按十进制转化来做就行 #include<bits/stdc++.h 阅读全文
posted @ 2025-03-02 18:32 Marinaco 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://atcoder.jp/contests/abc395/tasks/abc395_d 题意: 三个操作:1.移动鸽子a到巢穴b 2.交换巢穴a和巢穴b的鸽子 3.查询鸽子a在哪个巢穴中 思路: 开三个数组,分别记录鸽子i的位置,巢穴i的位置,位置i的巢穴 #include<b 阅读全文
posted @ 2025-03-02 09:51 Marinaco 阅读(17) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.acwing.com/problem/content/description/5528/ 题意: 初始位置s,能量为1,方向为右,遇到跳板方向改变,能量增加,遇到炮击目标,如果能量足够大,cnt++,求最后的cnt 思路: 模拟,注意当重复经过跳板时,如果大小方向都 阅读全文
posted @ 2025-03-01 10:27 Marinaco 阅读(3) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示