随笔分类 -  题解

摘要:把操作离线下来。 把每个修改操作差分拆成两个操作,然后类似于扫描线,在位置序列上扫描,维护该位置上的历史数组,一共有 $O(q)$ 次修改,$O(q)$ 次查询。 每次操作形如给 $[pos,n] += v$,每次查询形如查询 $[1,pos]$ 中 $\geq v$ 的个数。 这个是典中典分块,显 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(23) 评论(0) 推荐(0)
摘要:先考虑如果修改操作是对整个序列进行的应该怎么做。 我们发现这个时候相当于对一个可重集合做这些操作,不妨认为有一个数组 $ar[i]$ 表示 $i$ 出现的次数。 这时询问是简单的,考虑怎么修改。发现倘若当前的值域是 $[0,mx]$,执行一次参数为 $x$ 的操作后,我们可以分类讨论: 若 $x > 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(19) 评论(0) 推荐(0)
摘要:首先,我们发现这个有贡献的数对可以有 $O(n^2)$。(显然你构造一个升序就行了) 然后,这就说明我们肯定不能把这些贡献一个个算出来丢到平面上。考虑到贡献只有 $p_1,p_2$ 两种,考虑把相同的丢到一起去算。 对于数对 $(l,r)$,我们去考虑区间 $[l+1,r-1]$ 的最大值所在位置为 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(28) 评论(0) 推荐(0)
摘要:一眼 dfs 序,转变成每个询问 $(u,v,k)$ 询问 $l[u] \leq a \leq r[u],l[v] \leq b \leq r[v]$ 的 $(a,b,v)$ 中值第 $k$ 小的。 这个一眼是个数点对吧,但显然不能直接数。 我们可以二分答案,变成询问矩形内有多少个点,这个可以直接树 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(29) 评论(0) 推荐(0)
摘要:考虑我们关心什么信息:每个寿司被谁选了。这个是 $O(3^n)$ 的。 但我们其实只关心一个信息:当前状态是否合法。这个是 $O(1)$ 的。 显然后者过于简单以至于我们无法转移状态,考虑折中一点,我们想知道是否合法,想在新加入一个寿司的时候判断是否合法,那么我们需要知道每一个质因子被谁选了,这是 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(19) 评论(0) 推荐(0)
摘要:先考虑两个包含的区间能否转化,发现并不可以。 有一个显然的想法是我们可以暴力求出每个位置的上界 $up_i$。 现在问题变成 $v_i \leq mx_i$,同时要求 $\forall i \in[1,Q],\exist j\in[L_i,R_i] ,v_j=x_i$。 这个问题好像不是很好做,我想 阅读全文
posted @ 2023-02-21 16:53 PYD1 阅读(28) 评论(0) 推荐(0)
摘要:首先显然是个 dp。 然后我们来考虑设计状态。一个比较自然的想法是设 $f_u,g_u$ 分别表示 $u$ 子树内满足 牵扯到其子树 / 完全在其子树内 的限制的答案。但是 $g_u$ 由 $v$ 合并来时,倘若不选 $(u,v)$ 这条边,按理说应该是 $f_v$ ,但这时多考虑了一些限制,无法转 阅读全文
posted @ 2023-02-21 16:53 PYD1 阅读(29) 评论(1) 推荐(0)
摘要:考虑什么时候 $\binom{n}{m}\equiv 1(\bmod 2)$,由 Lucas 定理,我们知道 $$ \binom{n}{m}\equiv \binom{\lfloor\frac{n}{2}\rfloor}{\lfloor\frac{m}{2}\rfloor}\binom{n % 2} 阅读全文
posted @ 2023-02-21 16:52 PYD1 阅读(18) 评论(0) 推荐(0)
摘要:我们考虑到,行与行之间的交互只可能通过一个 $1\times2$ 的竖着的小长方形来实现,可以把这一部分先丢出去不考虑,先考虑如下子问题:$i$ 列用 $k$个,只能横着放,有多少种方案。 显然我们可以枚举第一行用了几个,有 $$ g_{i,k}=\sum_{j=1}^{k-1}\binom{i-1 阅读全文
posted @ 2023-02-21 16:51 PYD1 阅读(55) 评论(0) 推荐(0)
摘要:显然整除关系构成一张 DAG,我们每次选择一个点之后可以覆盖所有它能到达的点,在这个情况下再询问这个题的问题。 显然所有点都被覆盖等价于所有入度为 $0$ 的点被选择,我们可以简单求出入度为 $0$ 的有几个,这个可以 $O(n \log\log n)$ 或者线性处理最小不妨设为 $p$,接下来就是 阅读全文
posted @ 2023-02-21 16:51 PYD1 阅读(31) 评论(0) 推荐(0)
摘要:记 $a_i$ 前缀和为 $t_i$,$t_n=S$,$b_i$ 前缀和为 $s_i$。 $$ ans=\sum_{\sum b_i=S}\sum_{i=1}^nw_i|s_i-t_i| $$ 套路地拆贡献,我们有[^1] $$ \begin{aligned}ans&=\sum_{i=1}^nw_i 阅读全文
posted @ 2023-02-21 16:51 PYD1 阅读(30) 评论(0) 推荐(0)
摘要:显然我们可以解出 $a_i>b_i,a_i<b_i$ 的分别有 $x,y$ 组。 首先,我们把这个东西当成一个配对,可以考虑一下把所有的数合并到一起排序。 然后显然可以有一个 dp,记 $dp_{i,cnt,p_1,p_2}$ 表示我们目前考虑到了第 $i$ 个数,当前满足 $a_i>b_i$ 的数 阅读全文
posted @ 2023-02-21 16:47 PYD1 阅读(35) 评论(0) 推荐(0)
摘要:题目链接 小A在刷题 前置知识 分组背包 题意 本来,这是一道非常普通的完全背包问题。但题目中有一个奇怪的条件: 现在小X第 \(i\) 次刷题时,所获得的经验值会乘上一个系数 \(f_i\)。具体地说,当小X第 \(i\) 次刷题选择刷第 \(j\) 道题时,他消耗 \(w_j\) 点精力,获得$ 阅读全文
posted @ 2021-01-10 22:45 PYD1 阅读(111) 评论(0) 推荐(0)
摘要:Trips and Universities 前置知识 图的基础知识(只看前一部分就行) SPFA 分析题目 有向图,边有边权。不考虑学院的话其实就是一道普通的最短路问题。 那么,现在考虑进学院。我们注意到,题目中学院的条件很奇怪: 必须上一次在 $p_i$ 城市的学院学习才能在该学院学习。每个学院 阅读全文
posted @ 2020-10-28 22:01 PYD1 阅读(88) 评论(0) 推荐(0)
摘要:Candies and Shops 写在前面 很抱歉 T3 赛时出锅了。这个悲惨的故事告诉我们一定要验题!!! 因为std出锅了,所以博客和视频讲解也出了一些问题。我会在下文中用加粗的括号来注明更改。给大家带来不便深表歉意。 题目分析 Part 1 首先,它告诉你要选择三家糖果店 \((x,y,z) 阅读全文
posted @ 2020-10-28 21:58 PYD1 阅读(110) 评论(0) 推荐(0)
摘要:题目 T135995【第一站】Minecraft 分析 输入$x,y,z$输出$x + y - z$即可 代码 #include <bits/stdc++.h> using namespace std; int x,y,z; int main(){ scanf("%d %d %d",&x,&y,&z 阅读全文
posted @ 2020-08-19 12:55 PYD1 阅读(64) 评论(0) 推荐(0)
摘要:题目链接 T141708 果园一日游 前置知识 背包问题: (配合这篇博客食用效果更佳) 现有 \(n\) 种物品,第 \(i\) 种物品的重量为 \(w_i\),价值为 \(v_i\),数量为 \(num_i\)。 有一个容量为 \(g\) 的背包,求背包能装下物品的最大价值和。 背包问题大致上可 阅读全文
posted @ 2020-08-19 12:51 PYD1 阅读(101) 评论(0) 推荐(0)
摘要:题目 T136006【第二站】《三体》 题意 输入$n$和$m$以及接下来的$n$个数,求出这$n$个数的平均值以及平均值$\times m$的结果 解题步骤 先读入$n$和$m$: cin >> n >> m; 由于题目中的输入数据的数量是不固定的(由$n$来决定),所以我们输入的时候需要使用到循 阅读全文
posted @ 2020-08-19 12:50 PYD1 阅读(91) 评论(0) 推荐(0)
摘要:审题 P6475 略 分析 题目中给了我们如下的条件 楼的编号为$1-2n$ 高度均为正整数且不超过$m$ 前n座楼高度不下降,后n座楼高度不上升(即像一座山的形状) $x,y$两楼高度相等 我们发现只有最后一个条件比较特殊,所以尝试从最后一个条件入手。 经过简单的思考,不难得到,这道题目有两种情况 阅读全文
posted @ 2020-08-19 12:48 PYD1 阅读(74) 评论(0) 推荐(0)