摘要: (持续更新) NIKKEI Programming Contest 2019-2 A: 送分。 #include<cstdio> int main(){ int n; scanf("%d",&n); printf("%d\n",n-1>>1); return 0; } View Code B: 想象 阅读全文
posted @ 2019-08-19 15:17 wangyuchen 阅读(225) 评论(0) 推荐(0) 编辑
摘要: (持续更新) Hello 2020 A: 为什么不是天干地支 #include<cstdio> #define For(i,A,B) for(i=A;i<=(B);++i) char s[25][15],t[25][15]; int main(){ int n,m,q,x,i; scanf("%d% 阅读全文
posted @ 2019-08-12 15:40 wangyuchen 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 废话:本来想写“NOIP游记”的,现在看来只能写“NOIP教训”了。 Day 0 NOIP不是重点,能翘掉语文考试才是重点。 于是他晚上写完了生物作业以后就睡觉了。躺在床上想到自己KMP好像忘记怎么写了,但转念一想NOIP没考过字符串就安心睡觉了。 Day 1 进场,打开题目文件夹,看见string 阅读全文
posted @ 2020-12-20 12:52 wangyuchen 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 口胡一发。 把 $s,t$ 扔一起建后缀数组,扫描线一下得出 $s$ 的每一个后缀和 $t$ 的 LCP 长度(以第 $i$ 个字符开始的记为 $lcp_i$),然后答案就是 $\max\limits^r_{i=l}\min(lcp_i,r-i+1)$,显然离线一下,根据 $i+lcp_i$ 和 $ 阅读全文
posted @ 2020-07-08 16:10 wangyuchen 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 首先,每个结点都是独立的,所以不妨分开计算贡献。 按照去年的套路,我们定义 $P_o$ 为 $o$ 上有标记的概率,$P_f$ 为 $o$ 及其祖先上有标记的概率,同时记 $o$ 控制的区间为 $[L,R]$,$o$ 的父亲的为 $[l,r]$(可以避免对左/右儿子的分类讨论),修改区间为 $[x, 阅读全文
posted @ 2020-07-08 15:54 wangyuchen 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 不得不说,ZJOI 的可做题都是数据结构题 这个东西显然不能在线,所以考虑离线以后从左往右扫过去。同时询问可以把整棵树处理好再处理。 那么我们要处理的就是修改生长结点引发的孩子关系变化。 考虑对每个修改开一个虚点,然后每次生长出的点挂在最近的修改下,相邻修改前后相连,不难发现这种连法像多叉转二叉一样 阅读全文
posted @ 2020-04-21 10:44 wangyuchen 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 为什么你们都用并查集啊qwq 首先,可以发现每一块的状态都是独立的,所以可以逐块操作,就可以做到 $O(n+m)$ 空间。 对于每一块,对每个 $a_i$ 开一个链表,记录值为 $a_i$ 的数的位置。对于块内修改,把 $a_i$ 还原后暴力重构;对于全局修改,考虑记录 $a_i$ 的最大值 $ma 阅读全文
posted @ 2020-04-11 10:02 wangyuchen 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 考虑以时间为下标,数组下标从 $n$ 至 $1$ 扫描,那么 $a_i$ 在 $t_1-t_2$ 时刻的值为 $val$ 对应的修改应为对 $t_1-t_2$ 区间取 $\min$。而查询操作对应的就是查询 $t$ 这个位置被更新了多少次。 考虑势能线段树维护。因为不同的 $val$ 不超过 $n+ 阅读全文
posted @ 2020-04-07 10:13 wangyuchen 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 首先转化一波: 对于1操作,我们求原图的生成树,然后对于每条非树边记下它和树边形成的环,这样的操作共有 $m-n+1$ 个; 对于2操作,我们考虑对于 $n$ 个结点,把和这个结点相连的边状态反转。 不难发现任何操作序列都可以拆成这 $m+1$ 个操作,且显然每个操作最多进行一次,所以只用考虑这 $ 阅读全文
posted @ 2020-04-06 10:36 wangyuchen 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 考虑多边形最外侧的三角形,可以发现与外侧的点相邻的两条边中必定恰好删除一条。 所以,我们把两条都删掉,然后在三角形内侧的边上打一个标记,表示要恢复一条边。 接下来的处理三角形需要考虑标记,不妨设这个三角形为 $(u,w,v)$($w$ 为外侧点),分类讨论: $(u,w)$ 与 $(w,v)$ 都有 阅读全文
posted @ 2020-04-06 10:09 wangyuchen 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 长链剖分模板?在每个链顶开一个 vector 记录,合并链的时候每加一次更新一下这条链的答案就可以了。 不得不说 vector 的空间常数好大啊 #include<cstdio> #include<vector> #define For(i,A,B) for(i=(A);i<=(B);++i) #d 阅读全文
posted @ 2020-03-30 12:33 wangyuchen 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 求一个联通图的独立集个数(包括空集) 对于树的情况,记 $dp_{u,0/1}$ 为以 $u$ 为根的子树在不选/选 $u$ 时的独立集数量,转移方程是显然的: $$dp_{u,0}=\prod\limits_{v\in son_u}(dp_{v,0}+dp_{v,1})$$ $$dp_{u,1}= 阅读全文
posted @ 2020-03-29 21:33 wangyuchen 阅读(206) 评论(0) 推荐(0) 编辑