qwq

07 2024 档案

摘要: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) 编辑
摘要:D 先对 \(a\) 从小到大排序。 将题目转化成找到最小的 \(d\),使得恰好有 \(k\) 个 \(a_i\in [b-d,b+d]\)。 对于每个询问 \(b,k\),考虑二分答案。 设待检查的答案为 \(d\),二分找到最小的 \(p1\) 使得 \(a_{p1}\geq b-d\) 和最 阅读全文
posted @ 2024-07-27 23:04 adam01 阅读(67) 评论(0) 推荐(0) 编辑
摘要:题面 \(O(nd^2)\) 考虑 \(f(i,j,k)\) 表示 dp 到第 \(i\) 维,距离 \(p,q\) 曼哈顿距离 \(j,k\) 的方案数。 考虑朴素转移: 设 \(dis=|p_{i+1}-q_{i+1}|\)。 \[\begin{aligned} f(i+1,j+t,k+dis- 阅读全文
posted @ 2024-07-27 16:46 adam01 阅读(9) 评论(0) 推荐(0) 编辑
摘要:题面 注意到操作只对当前行/列有效,所以只要记录当前所在行和列是否有被操作。 设 \(f(i,j,x,y)\) 表示到了位置 \((i,j)\),第 \(i\) 行是否被操作,第 \(j\) 列是否被操作的最小代价。 转移: 设 \(col = c(i,j) \oplus x \oplus y\)。 阅读全文
posted @ 2024-07-27 16:44 adam01 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题面 注意到把对局在图上表示出来是一颗满二叉树(叶节点为选手,其他点为对局),可以考虑树形 dp。 设 \(x\) 为 \([l_x,r_x]\) 之间选手的比赛,且该节点到叶子结点距离 \(d_x\)。 设 \(f(x,p)\) 表示胜者为 \(p\) 的最大钱数,有转移: \[\begin{al 阅读全文
posted @ 2024-07-27 16:44 adam01 阅读(6) 评论(0) 推荐(0) 编辑
摘要:题面 把“移动 \(a_n\) 至数列头”称为 rotate,删除一项称为 erase。 因为要求字典序最小,所以可以逐位贪心。 考虑一个数 \(a_i\) 怎么变成第一个数: 使用 \(n-i\) 次 rotate/erase,再 rotate 一次。删除或移动原来的 \(a_{i+1}\sim 阅读全文
posted @ 2024-07-27 16:44 adam01 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题面 注意到如果两个球 \(i,j\) 有 \(i<j,x_i>x_j\),那么这两个球一定会交换。 所以要交换 \(x\) 的逆序对数 次。 但是相同颜色交换没有代价,所以答案是 \(x\) 的逆序对数减去满足 \(c_i=c_j,i<j,x_i>x_j\) 的 \((i,j)\) 对的数量。 可 阅读全文
posted @ 2024-07-27 16:43 adam01 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题面 根据题目描述,原图为二分图,设两侧点集为 \(S,T\),大小为 \(s,t(s\le 3\times 10^5,t\le 3\times 10^3)\)。 注意到有四元环当且仅当 \(T\) 中存在一个点对 \((a,b)\) 同时和 \(S\) 中的某两个点连边。 可以先考虑暴力,一种想法 阅读全文
posted @ 2024-07-27 16:43 adam01 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题面 \(O(nk^2)\) 我们考虑如果确定了 \(ans\),如何判断是否合法? 考虑从高到低逐位确定 \(x\)。 设 \(ans\) 和 \(x\) 的第 \(i\) 位为 \(ans_i,x_i\)。 分类讨论一波: 如果 \(ans_i\) 为: 0:无论 \(x_i\) 取什么,总有一 阅读全文
posted @ 2024-07-26 18:27 adam01 阅读(5) 评论(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) 编辑
摘要:题面 我们先考虑如何让连续的不在房子中的时间尽量短: 我们考虑两个有房子的点 \(x,y\),如果 \(x\rightsquigarrow u\xrightarrow{w} v\rightsquigarrow y\) 这条路径上除了 \(x,y\) 不存在有房子的点,那么我们可以找到这样一条路径,一 阅读全文
posted @ 2024-07-24 14:27 adam01 阅读(5) 评论(0) 推荐(0) 编辑

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