菜菜只能靠写简单字符串哈希维持生活. 题目传送门:LOJ #2484. 题意简述: 题面讲得很清楚了. 题解: 很显然从两边往中间推,能选的就选上这个贪心策略是对的. 如何判断能不能选上,直接字符串哈希吧. 有一个小细节:中间那块要不要选,即ans要不要加1?判一下串长即可. #include <cstdio> #include <cstring> typedef unsigned long long UL; const int B = 79; int T, N; char str…
[CEOI2017]Palindromic Partitions 题目大意: 给出一个长度为\(n(n\le10^6)\)的只包含小写字母字符串,要求你将它划分成尽可能多的小块,使得这些小块构成回文串. 思路: 哈希以后从两侧往里贪心,尽量取短的. 时间复杂度\(\mathcal O(n)\). 源代码: #include<cstdio> #include<cctype> #include<cstring> inline int getint() { register…
额... 首先,看到这道题,第一想法就是二分答案+线段树... 兴高采烈的认为我一定能AC,之后发现n是500000... nlog^2=80%,亲测可过... 由于答案是求满足题意的最大长度-最小长度最小,那么我们可以考虑将区间按长度排序 之后,因为我们是需要最大最小,所以,我们必定选择在排完序的区间上取连续的一段是最优情况(起码不会比别的差) 因此,考虑双指针扫一下就可以了... 是不是很水? 由于懒得写离散化,一开始写的动态开点线段树,我*****什么鬼?mle?!256mb开不下! lo…
原文链接http://www.cnblogs.com/zhouzhendong/p/9031130.html 题目传送门 - LOJ#2512 题目传送门 - 洛谷P4458 题目传送门 - BZOJ5291 推荐LOJ和洛谷,题面质量好,而且不卡常数. BZOJ题面烂,而且要卡那么一点点常数. 题意 有一条长度为$n$的链$\forall 1≤i<n$,点$i$与点$i+1$之间有一条边的无向图),每个点有一个整数权值,第$i$个点的权值是$a_i$​​.现在有$m$个操作,每个操作如下: 操…
题面 传送门(loj) 传送门(洛谷) 题解 我们对于每一个与宫殿相连的点,分别计算它会作为多少个点的最短路的起点 若该点为\(u\),对于某个点\(p\)来说,如果\(d=|p-u|\),且在\([p-d,p+d]\)中不存在点到\(p\)的距离小于\(u\)到\(p\)的距离,那么\(u\)就可以作为\(p\)的最短路的起点 易知可行的\(p\)肯定是连续的一段区间,所以我们可以二分左右端点 设\(sum_i\)表示点\(i\)到点\(1\)的距离,我们维护关键点的区间中\((sum_i-l…
题面 传送门(loj) 传送门(洛谷) 题解 所以博弈论的本质就是爆搜么-- 题解 //minamoto #include<bits/stdc++.h> #define R register #define pi pair<int,int> #define fi first #define se second #define IT vector<int>::iterator #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i…
题面 传送门(loj) 传送门(洛谷) 题解 我果然是人傻常数大的典型啊-- 题解在这儿 //minamoto #include<bits/stdc++.h> #define R register #define ls (p<<1) #define rs (p<<1|1) #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i) #define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)…
题面 传送门(loj) 传送门(洛谷) 题解 模拟赛的时候只想出了高斯消元然后死活不知道怎么继续--结果正解居然就是高斯消元卡常? 首先有个比较难受的地方是它一个回合可能不止扣一滴血--我们得算出\(P_i\)表示一回合扣\(i\)滴血的概率,为 \[P_i={{k\choose i}m^{k-i}\over (m+1)^k}\] 所以这个柿子啥意思? 我们可以把\(k\)次扣血看成一个长度为\(k\)的序列,每个序列有\(m+1\)种选择方法,于是总的选法就是\((m+1)^k\).我们要钦定…
题目大意:一个长度为$n$的字符串,要求把它分成尽可能多的小块,使得这些块构成回文串 题解:贪心,从两边从找尽可能小的块使得左右的块相等,判断相等可以用$hash$ 卡点:无 C++ Code: #include <cstdio> #include <cstring> #define maxn 1000010 const long long base = 233, mod = 1000000007; int Tim; int n, mid; long long pw[maxn],…
题目传送门:LOJ #2146. 题意简述: 有 \(n\) 种寿司,第 \(i\) 种寿司的类型为 \(a_i\). 如果你吃了第 \(i\) 种到第 \(j\) 种寿司,你会得到 \(d_{i,j}\)(\(i\le j\))的收益. 如果你吃了 \(c\)(\(c>0\))种类型为 \(x\) 的寿司,你会付出 \(mx^2+cx\) 的代价(\(m\in\{0,1\}\)). 最大化收益与代价的差. 题解: 一种经典的模型:最大权闭合子图. 模型:有若干个物品,每种物品有一个可正可负的价…
推导过程存在漏洞+exCRT板子没打熟于是期望得分÷实际得分=∞? 题目描述 小 D 最近在网上发现了一款小游戏.游戏的规则如下: 游戏的目标是按照编号 \(1\sim n​\) 顺序杀掉 \(n​\) 条巨龙,每条巨龙拥有一个初始的生命值 \(a_i​\).同时每条巨龙拥有恢复能力,当其使用恢复能力时,它的生命值就会每次增加 \(p_i​\),直至生命值非负.只有在攻击结束后且当生命值恰好为 \(0​\) 时它才会死去. 游戏开始时玩家拥有 \(m\) 把攻击力已知的剑,每次面对巨龙时,玩家只…
可能是一个 SAM 常用技巧?感觉 SAM 的基础题好多啊.. 题目描述 给定一个长度为 \(n\) 的字符串 \(S\) ,令 \(T_i\) 表示它从第 \(i\) 个字符开始的后缀,求: \[ \sum_{1\le i<j\le n}len(T_i)+len(T_j)-2\times lcp(T_i,T_j) \] 其中,\(len(a)\) 表示字符串 \(a\) 的长度,\(lcp(a,b)\) 表示字符串 \(a\) 和字符串 \(b\) 的最长公共前缀. 输入输出格式 输入格式:…
后缀自动机入门. 题目描述 为了提高智商,ZJY 开始学习弦论. 这一天,她在<String theory>中看到了这样一道问题:对于一个给定的长度为 \(n\) 的字符串,求出它的第 \(k\) 小子串是什么.你能帮帮她吗? 输入输出格式 输入格式: 第一行是一个仅由小写英文字母构成的字符串 \(s\). 第二行为两个整数 \(t\) 和 \(k\),\(t\) 为 \(0\) 则表示不同位置的相同子串算作一个.\(t\) 为 \(1\) 则表示不同位置的相同子串算作多个.\(k\) 的意义…
平衡树分裂钛好玩辣! 题目描述 方伯伯正在做他的 OJ.现在他在处理 OJ 上的用户排名问题. OJ 上注册了 \(n\) 个用户,编号为 \(1\sim n\),一开始他们按照编号排名.方伯伯会按照心情对这些用户做以下四种操作,修改用户的排名和编号: 操作格式为 1 x y,意味着将编号为 \(x\) 的用户编号改为 \(y\),而排名不变,执行完该操作后需要输出该用户在排名中的位置,数据保证 \(x\) 必然出现在排名中,同时 \(y\) 是一个当前不在排名中的编号. 操作格式为 2 x,意…
组合计数的一道好题.什么非主流题目 题目背景 (背景冗长请到题目页面查看) 题目描述 不妨假设枫叶上有 \(n​\) 个穴位,穴位的编号为 \(1\sim n​\).有若干条有向的脉络连接着这些穴位.穴位和脉络组成一个有向无环图--称之为脉络图(例如图 1),穴位的编号使得穴位 \(1​\) 没有从其他穴位连向它的脉络,即穴位 1 只有连出去的脉络:由上面的故事可知,这个有向无环图存在一个树形子图,它是以穴位 \(1​\) 为根的包含全部 \(n​\) 个穴位的一棵树--称之为脉络树(例如图 2…
???看不懂的期望DP 题目描述 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟王是一个看脸的游戏,技能的发动都是看概率的.作为一个非洲人,同时作为一个前 OIer,小 K 自然是希望最大化造成伤害的期望值.但他已经多年没写过代码,连 Spaly 都敲不对了,因此,希望你能帮帮小 K,让他感受一下当欧洲人是怎样的体验. 本题中我们将考虑游戏的一个简化版模型. 玩家有一套卡牌,…
看样子分块题应该做的还不够. 题目描述 设计一个数据结构. 给定一个正整数数列 \(a_0, a_1, \ldots , a_{n-1}\),你需要支持以下两种操作: MODIFY id x: 将 \(a_{\mathrm{id}}\) 修改为 \(x\). QUERY x: 求最小的整数 \(p(0 \leq p < n)\),使得 \(\gcd(a_0, a_1, ..., a_p) \cdot \operatorname{XOR}(a_0, a_1, ..., a_p) = x\). 其中…
树上游戏..二合一? 题目描述 曾经发明了零件组装机的发明家 SHTSC 又公开了他的新发明:聚变反应炉--一种可以产生大量清洁能量的神秘装置. 众所周知,利用核聚变产生的能量有两个难点:一是控制核聚变反应的反应强度,二是使用较少的能量激发聚变反应.而 SHTSC 已经完美解决了第一个问题.一个聚变反应炉由若干个相连的聚变块组成,为了能够使得聚变反应可控,SHTSC 保证任意两个聚能块都可以通过相互之间的链接到达,并且没有一个聚能块可以不重复经过一个链接回到它自己. 但是第二个问题 SHTSC…
好玩的模拟题. 以后要经常写模拟题鸭 题目描述 游戏背景 <猪国杀>是一种多猪牌类回合制游戏,一共有\(3\)种角色:主猪,忠猪,反猪.每局游戏主猪有且只有\(1\)只,忠猪和反猪可以有多只,每只猪扮演\(1\)种角色. 游戏目的 主猪 / MP:自己存活的情况下消灭所有的反猪. 忠猪 / ZP:不惜一切保护主猪,胜利条件与主猪相同. 反猪 / AP:杀死主猪. 游戏过程 游戏开始时,每个玩家手里都会有\(4\)张牌,且体力上限和初始体力都是\(4\). 开始游戏时,从主猪开始,按照逆时针方向…
[题解] 本题有多种做法,例如可持久化并查集.kruskal重构树等. kruskal重构树的做法是这样的:先把边按照海拔h从大到小的顺序排序,然后跑kruskal建立海拔的最大生成树,顺便建kruskal重构树. 这样建出来的重构树是一个小根堆,也就是说,如果某个节点没有被淹,它的子树内的点都不会被淹,它们可以互相开车到达. 我们建重构树的时候维护每个节点的子树内的点到1号点的最小距离mn,mn先用dijkstra处理好. #include<cstdio> #include<cstri…
传送门 当我打开Luogu题解发现这道题可以Hash+贪心的时候我的内心是崩溃的-- 但是看到这道题不都应该认为这是一道PAM的练手好题么-- 首先把原字符串重排为\(s_1s_ks_2s_{k-1}s_3s_{k-2}...\)之后,我们不难发现:在一种对原串的回文划分中,对应的一对字符串在新的字符串上对应了一个长度为偶数的回文串. 那么设\(dp_i\)表示将新字符串的长度为\(i\)的前缀划分为若干个长度为偶数的回文串,最多划分多少份.在回文树上可以进行转移.使用"一个长度为\(n\)串的…
洛谷传送门 loj传送门 一道蛮基础的最小生成树的题 题意也没绕什么圈子 只是叙述的有点累赘而已(loj上是这样的 也就读入加建边需要稍稍稍多想一下下 对于我这么一个蒟蒻 这是一道很好的板子题 (洛谷和loj上有一点点小不同,主要按loj的题面) -------------------------------------------------------------------------------- (今日份懒得整题面qwq) -------------------------------…
题目链接:洛谷.LOJ. FFT相关:快速傅里叶变换(FFT)详解.FFT总结.从多项式乘法到快速傅里叶变换. 5.4 又看了一遍,这个也不错. 2019.3.7 叕看了一遍,推荐这个. #include <cmath> #include <cctype> #include <cstdio> #include <algorithm> #define gc() getchar() const int N=1e6+5; const double PI=acos(…
题目链接: 洛谷 BZOJ LOJ 题目大意:这么长的题面,就饶了我吧emmm 这题第一眼看上去没法列出同余方程组.为什么?好像不知道用哪把剑杀哪条龙…… 仔细一看,要按顺序杀龙,所以获得的剑出现的顺序也是固定的. 那么如果能把所有龙杀死,就能模拟出哪把剑杀那条龙了. (以下设所有除 $n,m$ 外的数的最大值为 $v$) $O(nm)$? 不,发现这里用剑的限制实际上是给出一个上界,来用lower_bound的. 插入也不要太暴力.我们想到什么?手写平衡树multiset! 这一部分复杂度是…
题目链接:洛谷.LOJ. 为什么和那些差那么多啊.. 在这里记一下原根 Definition 阶 若\(a,p\)互质,且\(p>1\),我们称使\(a^n\equiv 1\ (mod\ p)\)成立的最小正整数\(n\)为\(a\)模\(p\)的阶,记作\(\delta_p(a)\). 例:\(\delta_7(2)=3\). 原根 设\(p\)是正整数,\(a\)是整数,若\(\delta_p(a)=\varphi(m)\),则称\(a\)为模\(p\)的一个原根. 从另一方面来说,若\(g…
题目: 洛谷 2304 LOJ 2134 (LOJ 上每个测试点有部分分) 写了快一天 -- 好菜啊 分析: 毒瘤二合一题 -- 注意本题(及本文)使用 \(x\) 向右,\(y\) 向上的「数学坐标系」,而不是 \(x\) 向下,\(y\) 向右的所谓「OI 坐标系」.「同一行」指 \(y\) 相同,「同一列」指 \(x\) 相同. 老司机 注意,只能在 没有经过的 树下转向,并且每棵树只能访问一次. 第一反应是 \(f_{u}\) 表示从点 \(u\) (树 \(u\) )出发能走到的最多的…
LOJ 洛谷 \(f_i=s_{i-1}+h_i^2+\min\{f_j-s_j+h_j^2-2h_i2h_j\}\),显然可以斜率优化. \(f_i-s_{i-1}-h_i^2+2h_ih_j=f_j-s_j+h_j^2\),横坐标不单调可以\(CDQ\)分治或\(Splay\).具体见这里. 然后差不多就是个模板了. 注意算斜率乘1.0啊mmp. //645ms 8.14MB #include <cstdio> #include <cctype> #include <cs…
题目:https://loj.ac/problem/2473 https://www.luogu.org/problemnew/show/P4365 参考:https://blog.csdn.net/xyz32768/article/details/82952313 https://zhang-rq.github.io/2018/05/04/%E4%B9%9D%E7%9C%81%E8%81%94%E8%80%832018-%E7%A7%98%E5%AF%86%E8%A2%AD%E5%87%BBC…
LOJ 题目链接 & 洛谷题目链接 题意:商店里有 \(n\) 杯果汁,第 \(i\) 杯果汁有美味度 \(d_i\),单价为 \(p_i\) 元/升.最多可以添加 \(l_i\) 升.有 \(m\) 次询问,每次给出两个数 \(G,L\),你可以将商店里的一些果汁混合起来,使得他们的总体积不小于 \(L\) 升,总价格不超过 \(G\) 元,问:选择的果汁中美味度最小值的最大值是多少. \(1 \leq n,m \leq 10^5\),\(1 \leq d_i,p_i,l_i \leq 10^…
LOJ 题面传送门 / 洛谷题面传送门 题意: 求 \(\sum\limits_{i=1}^n\sum\limits_{j=1}^md(ij)\),\(d(x)\) 为 \(x\) 的约数个数. \(n,m \leq 5 \times 10^4\). 抛出一个引理:\(d(ij)=\sum\limits_{x|i}\sum\limits_{y|j}[\gcd(x,y)=1]\),该定理将在这篇博客结束证明. 知道这个定理之后,就可以按照套路开始推式子了: \[\begin{aligned}&an…