qwq

随笔分类 -  Codeforces

摘要:A. Strong Password 注意到最大效果是在两个相同字符之间插入一个不同的,贡献为 3。 否则在一开始插入一个和首位不同的,贡献为 2。 #include<bits/stdc++.h> using namespace std; typedef long long ll; void sol 阅读全文
posted @ 2024-07-31 12:00 adam01 阅读(89) 评论(0) 推荐(0) 编辑
摘要:\(O(mk\alpha(n))\) 暴力,考虑对于每个询问 \(l,r\),枚举 \(1\sim l-1,r+1\sim m\),并查集连边即可。 1154 ms。 \(O(n(m+k\alpha(n)))\) 我们发现枚举 \(i\in [1,l),j\in (r,m]\) 太慢了。 考虑先预处 阅读全文
posted @ 2024-07-28 18:19 adam01 阅读(8) 评论(0) 推荐(0) 编辑
摘要:题面 注意到边权只有 \(1,-1\),所以有结论:存在值为 \(v\) 的子段当且仅当 \(v\in[\) 最小子段和,最大子段和 \(]\)。 证明:因为移动区间端点,区间和变化连续(+1/-1),从最小子段移动到最大子段,子段和一定经过 \(v\),所以得证。 于是只要树剖维护最小最大子段和即 阅读全文
posted @ 2024-07-25 21:54 adam01 阅读(5) 评论(0) 推荐(0) 编辑
摘要:题面 看起来线段树之类的不好维护,但是移动区间的增量很好求,数据范围也能过,那么直接莫队就行了。 设加入或删除了值 \(x\),设原来区间内有 \(cnt_x\) 个,现在有 \(cnt'_x\) 个,那么增量就是 \(x((cnt'_x)^2-(cnt_x)^2)\),直接求就好了。 复杂度 \( 阅读全文
posted @ 2024-07-25 21:37 adam01 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题面 考虑如何一条边是必经之路:设 \(cntl_i\) 为从 \(s\) 到 \(i\) 走最短路的方案数,\(cntr_i\) 为从 \(i\) 到 \(t\) 最短路方案数。 由乘法原理,如果对于边 \(e_i=(u,v)\),\(cnt_t=cnt_u\times cntr_v\),则 \( 阅读全文
posted @ 2024-07-25 21:37 adam01 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题面 注意到划分完这棵树以后,每条连通块之间的边的一端一定相同,且是大小为 \(k\) 的连通块。 于是考虑这个连通块的最高点,设 \(f(i,j)\) 为 \(i\) 点所在连通块大小为 \(j\) 时所需的最小边数。 令 \(f'(i)\) 为原来的 \(f(i)\)。 对于 \(i\) 的每个 阅读全文
posted @ 2024-07-25 21:36 adam01 阅读(11) 评论(0) 推荐(0) 编辑
摘要:题面 考虑骨牌 \(i\) 倒下之后会比上一块多压倒哪些骨牌。 一种是压不到上一块,答案为 1。 否则答案一定是上一块的答案加上 上一块没有压倒的一些骨牌。 注意到骨牌倒下的影响可以分成许多段,段内骨牌倒下会一直影响到段尾,但不会跨过该段。 这可以用栈维护骨牌互不影响的段的左端点。 具体地,加入新骨 阅读全文
posted @ 2024-07-25 21:36 adam01 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题面 为方便起见,把数叫做颜色。把 \(a_i,a_j,a_k,a_w(a_i=a_k,a_j=a_w,i<j<k<w)\) 加入 \(b\) 中叫做一次加入。 注意到如果从左到右扫描时,某四个数符合要求,就可以直接加入,这样一定比把某种颜色留到后面用更优。 因为这四个数留到后面最多只能贡献给另外一 阅读全文
posted @ 2024-07-25 17:41 adam01 阅读(21) 评论(0) 推荐(0) 编辑
摘要:题面 来个不一样的证明。 根据样例,我们可以有一个直觉:两点之间一定距离 \(\frac n2\),答案为这样的点对之间 \(\Delta x\) 的最小值。 直接交上去,发现这是对的。为什么呢? 先证明上界:先手可以让答案小于等于 两点距离 \(\frac n2\) 点对的 \(\Delta x\ 阅读全文
posted @ 2024-07-25 17:05 adam01 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题面 注意到题目给的图为基环树森林。 因为一个(\(n>1\))的强连通图每个点都要有出度和入度,所以: 对于每个基环树,叶子结点是没有入度的,所以一定要有一条从环上出发的路径经过这个点。 对于基环树的环,注意到它缩点后没有出度,所以一定要有一条出边。 注意到叶子结点的需求和根节点相反,所以可以从根 阅读全文
posted @ 2024-07-25 16:36 adam01 阅读(9) 评论(0) 推荐(0) 编辑
摘要:题面 考虑这样的匹配问题,可以想如何确定第一次匹配,这样可以不重不漏地计数。 考虑 dp 的时候同时维护有几个括号没有匹配,匹配到 \(s\) 的第几位,所以令 \(f(i,j,k)\) 表示 dp 到(要计数的序列的)第 \(i\) 个字符,有 \(j\) 个左括号没有匹配,匹配到 \(s\) 的 阅读全文
posted @ 2024-07-25 16:13 adam01 阅读(15) 评论(0) 推荐(0) 编辑
摘要:题面 令 \(sz\) 为字符集大小。 注意到字符集大小不超过为 20,这意味着最多有 \(2^{20}\) 种由不同字母组成的字符串(两个字符串由同样的字符构成算一种,例如 ab 和 ba 算同一种)。 翻转操作不太好想,但是我们注意到选择 \(S_{[l1,r1]}\) 和 \(S_{[l2,r 阅读全文
posted @ 2024-07-25 15:52 adam01 阅读(18) 评论(0) 推荐(0) 编辑
摘要:我是小丑 阅读全文
posted @ 2023-09-25 12:04 adam01 阅读(20) 评论(0) 推荐(0) 编辑
摘要:很好的 毒瘤 题。 阅读全文
posted @ 2023-08-22 18:01 adam01 阅读(29) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up light_mode palette
选择主题