KMP 学习笔记 什么是 KMP? Kill Me Please Knuth Morris Pratt 算法简称 KMP 算法,可以 O(n+m)O(n+m)O(n+m) 的复杂度高效地解决字符串匹配问题。 概念 ∣S∣|S|∣S∣ 表示字符串 SSS 的长度。 前缀:包含第一个字符的子串。例如 a\texttt {a}a,ab\texttt {ab}ab,abd\texttt{abd}abd 都是 abdabc 2025-10-29 算法·理论
区间 dp 笔记 P1775 石子合并(弱化版) 定义 dpi,jdp_{i,j}dpi,j 表示合并区间 [i,j][i,j][i,j] 的石子的最小花费。 我们枚举中间的断点 kkk,i≤k<ji\le k < ji≤k<j,转移方程为 dpi,j=min(dpi,k,dpk+1,j)+sumj−sumi−1dp_{i,j}=\min(dp_{i,k},dp_{k+1,j})+sum_j- 2025-08-09 算法·理论
zorr 1AAAAAXM2VDNTDHGqsXiUBT+MWlu40WFQchdjayYlNdlVo0VDgvt+qSGkCglVAFRrHioh0Prbi1tK8IlbUIWkB43CQ42+t27GnGFH3zfFwDE3Q4jXevTswRa6vZEz0kF0gjObcqFn2xzPLt+6ux8Vwxj+g2DMAHaHA7MLwvtkz+iGZBZsFikWswXUmavA/G96UToYr2G 2025-12-07 #Game
题解:P13414 [COCI 2012/2013 #4] ESEJ 我们可以用栈做。 首先如果字母 AAA 的数量或字母 BBB 的数量为奇数,那么不可能匹配。 维护一个栈,如果栈顶元素与当前元素相同那么弹出,否则就将这个元素扔进去,如果到最后栈是空的那么可以匹配。 结合样例 3 理解。 栈 stkstkstk 现在是空的(左边栈底,右边栈顶)。 第一个字符 AAA,扔进去,stk=Astk= \texttt{A}stk=A。 第二个字符 BBB,扔进去,stk= 2025-10-30 题解
题解:P13419 [COCI 2012/2013 #6] BAKA 模拟。 首先,我们要将字母转换为数字,我用的 map,然后根据数字计算拨的时间。 字母转数字,可以看图片。 注意字母是从数字 222 开始标的,所以 A\texttt AA 要花 333 秒。 12345678910111213141516#include<bits/stdc++.h>using namespace std;int ans;map<char,int> mp; 2025-10-30 题解
题解:P13413 [COCI 2012/2013 #4] OREHNJACA 抢一波题解。 Solution 首先求期望拿到的核桃卷段数量,由于是期望,所以不存在什么核桃卷在这之前已经被拿走的情况,所以拿走的段数就是 K−P+1K-P+1K−P+1。 12345//求期望拿到的 for(int i=1;i<=n;i++) if(r[ans]-l[ans]+1<r[i]-l[i]+1) ans=i;cout<<ans<< 2025-10-30 题解
题解:P13416 [COCI 2012/2013 #4] RAZLIKA 滑动窗口。 首先我们将数组排序。 然后剩下有 N−KN-KN−K 个数。 我们需要在长度为 N−KN-KN−K 的滑动窗口中找到最小的相邻差值。 可以使用双端队列来维护滑动窗口中的最小差值,最大差值会等于窗口首尾元素的差值。 12345678910111213141516171819202122232425#include<bits/stdc++.h>using namespace s 2025-10-29 题解
题解:CF2139B Cake Collection 好久没有写题解了。 从烤箱中收集到的蛋糕数量取决于最后一次访问烤箱的时间。 最优策略是在 min(n,m)\min(n,m)min(n,m) 秒内访问不同的烤箱。 假设顺序为 p1,p2,p3,…p_1,p_2,p_3,\dotsp1,p2,p3,…,那么在第 iii 秒时,可以收集 api×max(0,m−i+1)a_{p_i}\times \max(0,m-i+1)api×max 2025-10-29 题解
题解:P11919 [PA 2025] 水族馆 / Akwarium 题意 给你一个正整数 nnn。 让你求出 a2+b2+h2≤n\sqrt {a^2+b^2+h^2}\le na2+b2+h2≤n,的解的数量(aaa,bbb,hhh 都是正整数。) 90 pts 暴力枚举。 第一层循环枚举 nnn,第二层枚举 aaa,第三层枚举 bbb,然后就可以计算出 hhh,判断是否满足条件即可。 123456789101112131415161718#include&l 2025-10-28 题解