随笔分类 - 题库—洛谷
摘要:题意 "题目链接" Sol 不会正解 写了发暴力过了,貌似跑的还挺快?。。 cpp // luogu judger enable o2 // luogu judger enable o2 include define MP(x, y) make_pair(x, y) define fi first
阅读全文
摘要:题意 "题目链接" Sol 题目中的两个限制条件相当于是 $$A_i \geqslant (K_i T)B_i$$ $$A_i(K_i + T) \geq B_i$$ 我们需要让这两个至少有一个不满足 直接差分约束建边即可 这里要用到两个trick 1. 若某个变量有固定取值的时候我们可以构造两个等
阅读全文
摘要:题意 "题目链接" Sol 这个题可能是TJOI2018唯一的非模板题了吧。。 考虑LCS的转移方程, $$f[i][j] = max(f[i 1][j], f[i][j 1], f[i 1][j 1] + (A_i = B_j))$$ 也就是说我们如果知道了前一个列向量$f[i 1]$以及$A_i
阅读全文
摘要:题意 "题目链接" Sol ~~TJOI怎么全是板子题~~ 对时间开个线段树,然后就随便做了。。。。 cpp include using namespace std; const int MAXN = 1e6 + 10; int mod; template inline A mul(A x, B y
阅读全文
摘要:题意 "题目链接" 可持久化01Trie板子题 对于两个操作分别开就行了 cpp include using namespace std; const int MAXN = 4e5 + 10, SS = MAXN 42 + 10; const int B = 31; inline int read(
阅读全文
摘要:题意 "题目链接" 给出一个带权有向图,选出n + 1n+1条链,问能否全部点覆盖,如果不能,问不能覆盖的点权最小值最大是多少 Sol ~~TJOI怎么净出板子题~~ 二分答案之后直接二分图匹配check一下。 多读读题就会发现题目要求的就是可相交的最小路径覆盖,那么按照套路先floyd一遍,如果能
阅读全文
摘要:题意 "题目链接" Sol $f[i][j]$表示匹配到第$i$个串,当前在主串的第$j$个位置 转移的时候判断一下是否可行就行了。随便一个能搞字符串匹配的算法都能过 复杂度$O(|S| K a_i)$ cpp include define Pair pair define MP(x, y) mak
阅读全文
摘要:题意 "题目链接" Sol 有点自闭,。我好像对组合数一窍不通(~~~~) "Orz shadowice" cpp // luogu judger enable o2 include define LL long long int mod; template inline bool chmax(A
阅读全文
摘要:题意 "题目链接" Sol 首先不难想到一个dp,设$f[i][j]$表示$i$的子树内选择的最小值至少为$j$的最大个数 转移的时候维护一个后缀$mx$然后直接加 因为后缀max是单调不升的,那么我们可以维护他的差分数组(两个差分数组相加再求和 与 对两个原数组直接求和是一样的) 向上合并的过程中
阅读全文
摘要:题意 "题目链接" Sol 对于每个询问$x, y, c$ 从在$(x, y)$之间连一条边权为$c$的双向边,然后就是解$K$个二元方程。 随便带个数进去找找环就行了 cpp include define LL long long define fi first define se second
阅读全文
摘要:题意 "题目链接" Sol 好像搞出了一个和题解不一样的做法(然而我考场上没写出来还是爆零0) 一个很显然的思路是考虑每个最小值的贡献。 预处理出每个数左边第一个比他小的数,右边第一个比他大的数。 那么$[L_i + 1, i]$对$[i, R_i]$中的每个数都会有$a[i]$的贡献。 我们可以抽
阅读全文
摘要:题意 "题目链接" Sol 线段树板子题都做不出来,真是越来越菜了。。 根据题目描述,一个合法区间等价于在区间内的颜色没有在区间外出现过。 所以我们可以对于每个右端点,统计最长的左端点在哪里,刚开始以为这个东西有单调性,但事实并不是这样。。 我们统计出对于每个颜色最优的位置$r_i$和最左的位置$l
阅读全文
摘要:题意 "题目链接" Sol 这题就是一个很显然的贪心。。。 首先二分一个答案,然后check是否可行。check的时候我们需要对每个位置$i$,维护出所有左端点在$i$左侧,右端点在$i$右侧的所有区间。最优策略一定是加右端点最远的。 然后就做完了, 复杂度$O(nlogn)$ cpp includ
阅读全文
摘要:题意 "题目链接" Sol 这题想还是不难想的,就是写起来很麻烦,然后去看了一下loj的最短代码表示只能Orz 首先不难发现一条性质:能够选择的区间一定是不断收缩的,而且新的可选区间一定是旧区间的某个位置划分而来的。 比如$A_{i 1} = x$,此时小于$x$的最大数为$l_{i 1}$,大于$
阅读全文
摘要:题意 "题目链接" Sol 可以把题目转化为从$[1, 2n + 1]$中选$k$个数,使其和为$(n+1)k$。 再转化一下:把$(n+1)k$划分为$k$个数,满足每个数在范围在$[1, 2n + 1]$ 这时候就可以用整数划分的思路dp了(然鹅我还是想不出来。。) 因为每个数互不相同,因此我们
阅读全文
摘要:题意 "题目链接" Sol 首先一种方案的期望等于它一次排好的概率的倒数。 一次排好的概率是个数数题,他等于一次排好的方案除以总方案,也就是$\frac{\prod cnt_{a_i}!}{(n+m)!}$。因为最终的序列是一定的,两个序列不同当且仅当权值相同的数排列方式不同。 他的期望为$\fra
阅读全文
摘要:题意 "题目链接" Sol 这个题就比较休闲了。 $t(p)$显然等于最后一个没有约数的数的位置,那么我们可以去枚举一下。 设没有约数的数的个数有$cnt$个 因此总的方案为$\sum_{i=cnt}^{r l+1} C_{i 1}^{cnt 1} cnt! (r l + 1 cnt)!$ 稍微有点
阅读全文
摘要:题意 "题目链接" Sol 非常有意思的题目。 我们设$f[l][r]$表示区间$[l,r]$的答案。 显然$r$位置一定有一个保镖 同时不难观察到一个性质:拿$[1, n]$来说,设其观察不到的某个区间为$[l_k, r_k]$,那么$r_k$与$r_k + 1$一定有一个保镖,而且每段区间的贡献
阅读全文
摘要:题意 "题目链接" Sol 题解好神仙啊qwq。 一般看到这种考虑最大值的贡献的题目不难想到单调数据结构 对于本题而言,我们可以预处理出每个位置左边第一个比他大的位置$l_i$以及右边第一个比他大的位置$r_i$ 那么$(l_i, r_i)$会产生$p1$的贡献 $[l_i + 1, i 1]$和$
阅读全文
摘要:题意 "题目链接" Sol 这题好毒瘤啊。。 首先要观察到几个性质: 1. 将最小值旋转到根相当于把右子树变为祖先的左子树,然后将原来的根变为当前最小值 2. 上述操作对深度的影响相当于右子树不变,其他的位置 1 然后就可以做了,把询问离线之后离散化一下,建一棵权值线段树表示每个值对应的深度 同时用
阅读全文

浙公网安备 33010602011771号