01 2019 档案
摘要:分块神题。 看了一会儿题解,看懂了思路,然后写了两个小时,调了一个多小时,好多地方写错了。 我们考虑对序列和值域都分块。$sum1[i][j]$ 表示前 $i$ 个块,第 $j$ 块值域有几个数,$sum2[i][j]$ 表示前 $i$ 个块,值为 $j$ 有几个数,$id[i][j]$ 表示第 $
阅读全文
摘要:动态点分治就这么写了一天。。。 首先,动态点分治跟普通点分治几乎一模一样。所以点分治不会的可以右转模板区了。 我们发现处理树上路径不好处理,所以我们考虑点分治。但点分治带修改呢? 那动态点分治啊! 动态点分治就是建出原树的点分树,然后在点分树上暴力跳。因为点分树的高度是 $\log n$ 的,所以一
阅读全文
摘要:考场只打了 $52$ 分暴力。。。$ljc$ 跟我说了一下大致思路,我回去敲了敲。 $f[i]$ 表示状态为 $i$ 时的方案数。我们用二进制 $0/1$ 表示不选/选点 $i$。 我们设 $j\in i$ 且拓扑序最小。 $$f[i]=\sum f[i\text{^}2^j]\times 2^{i
阅读全文
摘要:后缀数组解法: 先二分最长前缀长度 $len$,然后从 $rnk[c]$ 向左右二分 $l$ 和 $r$ 使 $[l,r]$ 的 $height\geq len$,然后在主席树上查 $sa[l..r]$ 是否有 $a..b$ 中的任意一个数。时间复杂度 $O(n\log^2 n)$ $Code\ B
阅读全文
摘要:倍增好题啊! 我们我们预处理 $f[x][i]$ 表示 $x$ 点最左到达的端点,$sum[x][i]$ 表示 $x$ 点最左到达的端点时 $f[x][i]\sim x$ 的答案,然后倍增的时候记录一个 $tot$ 转移即可 $Code\ Below:$ cpp include using name
阅读全文
摘要:这道斗地主比 $PKUWC$ 那道可做多了。。。 我们用 $NOIP$ 那道斗地主的思路:暴搜出三代和四代,贪心出散牌。 ~~还有jry为什么要出xx网友而不出他的另一个老婆~~ 我们发现两个人的每回合出的牌型是一样的。我们先暴力生成牌组,然后暴力将三代和四代情况搜出来,然后 $check$ 因为九
阅读全文
摘要:一道不错的组合数问题! 分两类讨论: 1、$a_i$ 没有翻倍,那些 $\geq a_i$ 和 $a_j\times 2 define ll long long using namespace std; const int maxn=100000+10; const int mod=99824435
阅读全文
摘要:补充一篇详细得不能再详细的题解,比如让我自己看懂。 可能与前面的题解有些相同,我想补充一下自己的想法。 显然,最多 $K$ 最大为 $N=min(\lfloor \frac nS\rfloor,m)$ 首先,我们看到出现 $S$ 次的颜色 恰好 $K$ 种的话,我们就可以考虑容斥,将其化为出现 $S
阅读全文
摘要:我的倍增解法吊打动态 $dp$ ~~全局平衡二叉树没学过~~ 先讲 $NOIP$ 范围内的倍增解法。 我们先考虑只有一个点取/不取怎么做。 $f[x][0/1]$ 表示取/不取 $x$ 后,$x$ 子树内的最小权覆盖集,$g[x][0/1]$ 表示取/不取 $x$ 后,除 $x$ 子树的最小权覆盖集
阅读全文
摘要:神佬yyb 神佬zsy 想不到花了两个小时的时间看 \(min\_25\) 筛就看懂了 实际去追了一下魔禁3 我们先举个例子。如求 \(\sum_{i=1}^{n}f(i)\) 其中 \(f(i)\) 是积性函数,而且要满足 \(i\in prime\) 时 \(f(i)\) 是一个简单多项式,\(
阅读全文
摘要:神仙题啊! 早上开了两个多小时,终于肝出来了,~~真香~~ 我们考虑从第 $10^5$ 天开始递推,先生成 $p=10^5$ 的解,然后逐步推出 $p 1,...,2,1$ 的解。 那怎么推出 $p=10^5$ 的解呢? 现在将题目转化成不停进货然后取 $m$ 个最大的问题,然后删除最大并 $pus
阅读全文
摘要:$x=p_1^{\alpha_1}p_2^{\alpha_2}...p_c^{\alpha_c}$ $f(x)=\max(\alpha_1,\alpha_2,...,\alpha_c)$ $assume\ n\leq m$ $\sum_{i=1}^{n}\sum_{j=1}^{m}f(\gcd(i,
阅读全文
摘要:坑待填。 $Code\ Below:$
阅读全文
摘要:跟上次那道列队不一样,但都是九条可怜。。。(吉老师太强了) 在主席树上统计答案,因为值域只有 $10^6$ 甚至不用离散化。。。 $Code\ Below:$ cpp include define int long long using namespace std; const int maxn=5
阅读全文
摘要:线段树+并查集维护连通性。 好像 $700ms$ 的时限把我的常数超级大的做法卡掉了, 必须要开 $O_2$ 才行。 对于线段树的每一个结点都开左边的并查集,右边的并查集,然后合并。 $Code\ Below:$ cpp include define lson (rt 1; build(l,mid,
阅读全文
摘要:$\%\%\% Fading$ 早就会了,我最近才理解,~~当时颓废太多忘学了~~ 1、[SDOI2013]随机数生成器 当天正好在学数列,回来发现用必修五的知识就没了…… 不过特判好烦啊。 $Code\ Below:$ 2、[CQOI2018]破解D H协议 裸题。 $Code\ Below:$
阅读全文
摘要:好题啊! 调了一个中午,发现有一条语句 $RE$ 了。在 $windows$ 下没关系,$linux$ 下有问题,大大的问题。 算是拓展欧拉定理的题吧。线段树只是一个工具,最主要还是暴力修改。因为 $\varphi$ 不断套下去最多会有 $\lfloor \log n\rfloor$ 层,所以我们对
阅读全文
摘要:~~看到题目名字去补番是种怎么样的体验~~ 我只会 $68$ 分,打了个暴力。正解看了一会儿,发现跟 $[HEOI2016/TJOI2016]$ 字符串很像,用线段树合并维护 $endpos$ 集合,然后一边匹配一边记录答案。 $$ans=\sum_{i=1}^{cnt}max(0,len_i ma
阅读全文
摘要:听说正解点分树?~~我不会就对了~~ 此题是 $[LNOI2014]LCA$ 强化版,也是差分一下,转化为区间加区间和 不过权值有大小要求,那么我们按照权值排序,依次加入主席树,询问的时候 $lower\_bound$ 一下找到区间 $[l,r]$ 在主席树上实现区间加,肯定要标记永久化。每次最多修
阅读全文
摘要:$\%\%\% Fading$ 此题是他第一道黑题(我的第一道黑题是蒲公英) 一直不敢开,后来发现是差分一下,将询问离线,树剖+线段树维护即可 $Code\ Below:$ cpp include define pii pair define mp make_pair define F first
阅读全文
摘要:四个半小时做下来感觉超级爽!!!最后一题暴力 $85$,开个 $O_2$ 就过了 实际得分:$100+100+85$ 1、[九省联考2018]一双木棋chess 考完才知道这叫 $min max$ 对抗搜索……~~不是一个暴搜就解决的东西吗~~ 暴力有 $80$,出题人还是很良心的 我来讲一下我的做
阅读全文
摘要:状压好题啊。 一眼看出时间复杂度 $O(n2^n)$,然后开始想正解。 然后设 $dp_i$ 为前缀状态为 $i$ 时的方案数,所以这时候 $sum_i$ 一定是单峰的。 可以推导出: $$(1\leq j0$。每一个状态对于答案的贡献为 $g_i\times f_{lim\ xor\ i}\tim
阅读全文