03 2019 档案
日记
摘要:序 我昨天做了一个梦。 梦见,我还活着。 今天,已是二零一九年九月二十四日,这就意味着,我在地球上已经存在了六千一百四十二天。同时这也意味着,我在过去的六千一百四十二天中,没有从我的思想中挖出任何有意义有价值的东西。因为它们从来没跃动于纸上。它们从来没穿梭于人来人往之中。这是我的罪恶。 信仰是什么?
阅读全文
一类子树问题的总结
摘要:以下问题均允许离线,根节点都为1。 prob1 : 一棵有根树,要求线性时间求出任意子树的权值和。 prob2 : 一颗有根树,要求O(nlogn)求出与u距离不超过x且在u子树中的节点的权值和。 prob3 : 一颗有根树,要求O(nlogn)求出与u距离不超过x且在u子树中的不同颜色种类个数,颜
阅读全文
19_03_28校内训练[相似字符串]
摘要:题意 给出一个长度为n的序列,有m次询问,每次询问[l1,r1],[l2,r2]的区间,问排序后相同位置的不同数字个数是否小于等于1。如[1,3,2,2],[1,3,2,3]排序后为[1,2,2,3]和[1,2,3,3],不同的有2个,不符合。n,m≤1,000,000,数的大小≤50,000。 思
阅读全文
洛谷 P3899 [谈笑风生]
摘要:简化题意 m次询问,每次询问x的子树中,与x节点距离不超过y的节点的子树和。n,m≤300,000。 思路 按照dfs序排序,每次将一个点的答案塞到第depu的位置,这样得到一个前缀和,每次询问作减法即可。 可持久化线段树。 代码 1 #include<bits/stdc++.h> 2 using
阅读全文
CF727F [Polycarp's problems] & [EX_Polycarp's problems]
摘要:原题题意 给出长度为n的有序数组,m次询问,每次给出一个正整数x。你要删除数组中最少的元素,使得数组中的前缀和+x都为非负整数。允许离线,n≤750,m≤200,000。 原题思路 首先注意到,x能成功通过测试当且仅当前缀和中最小的数≥x。 将询问从大到小排个序,对于一个新的询问,每次尝试从数组中删
阅读全文
19_03_26校内训练[魔法卡片]
摘要:题意 有n张有序的卡片,每张卡片上恰有[1,m]中的每一个数,数字写在正面或反面。每次询问区间[l,r],你可以将卡片上下颠倒,问区间中数字在卡片上方的并的平方和最大是多少。q,n*m≤1,000,000。 思考 一个很重要的性质,若区间长度≥log m+1,则答案为12+22+33+...+m2。
阅读全文
代码实现中卡了很久的问题
摘要:1.内存过大而无法编译。 2.使用sort函数没有重载赋值符。 3.神志不清,浑身躁动。 4.优先级。 5.hash是关键字。被坑于2019_03_28。100pts-->0pts。 6.调试输出endl,不然不会刷新。 7.永远不要用stl传参,你会T的很惨。 8.快递幂写挂。 9.没想好就写。(
阅读全文
FFT与一些冷门问题
摘要:FFT也能用于一些特殊的字符串匹配与最小化问题。 Prob 1 : 给出模式串A与文本串B,两个串中只有26个大写字母与通配符'?'(即可以任意匹配一个字符),求A在B中的匹配数。要求以FFT为例给出上限为O(nlogn)的算法。 Prob 2 : 给出模式串A与文本串B,字符集很小,求A在B中的匹
阅读全文
CF1093E [Intersection of Permutations]
摘要:题意 给定整数n两个1-n的排列a,b,有m次操作:若opt==1,则有 l1 r1 l2 r2,求出a:[l1,r1]与b:[l2,r2]中相同元素的交的大小。若opt==2,则有 x y,交换b排列中的 第x位与第y位。 n,m≤200,000 思考 只改变b排序中元素位置,考虑每次询问a中l1
阅读全文
平面图转对偶图&19_03_21校内训练 [Everfeel]
摘要:对于每个平面图,都有唯一一个对偶图与之对应。若G‘是平面图G的对偶图,则满足: G'中每一条边的两个节点对应着G中有公共边的面,包括最外部无限大的面。 直观地讲,红色标出来的图就是蓝色标出的图的对偶图。 求出一个平面图的对偶图(而且不是特殊的结构),可以贪心地找出所有最小的面。但如何描述最小?我们要
阅读全文
洛谷 P4515 [COCI2009-2010#6] XOR
摘要:题意 平面直角坐标系中有一些等腰直角三角形,且直角边平行于坐标轴,直角顶点在右下方,求奇数次被覆盖的面积。N<=10。输入为x,y,r,分别表示三角形顶点的坐标与三角形的边长。 如: 总面积为0.5+2+4.5-0.5-0.5=6 思考 看到数据范围,就肯定是优美的暴力。 这题思路很清奇。首先我们要
阅读全文
CF1093G [Multidimensional Queries]
摘要:题意 给出n(n<=2E5)个k(k<=5)维空间中的点,每次询问[l,r]中两个点曼哈顿距离的最大值(可以类比二维) 思考 根据初中数学,我们知道。 而每个维度上的曼哈顿距离是独立的。 k又很小,因此我们可以一股脑地分类讨论,把所有可能的结果算出来。 设f[S]表示k位二进制下k个维度的正负情况,
阅读全文
NTT模板(无讲解)
摘要:1 #include<bits/stdc++.h>//只是在虚数部分改了一下 2 using namespace std; 3 typedef long long int ll; 4 const ll maxn=1E6+5; 5 const ll mod=998244353; 6 const ll
阅读全文
FFT模板(无讲解)
摘要:1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1E6+5; 4 const double pi=3.1415926535898; 5 int n,m,limit,r[maxn*4],len; 6 struct co
阅读全文
CF712E [Memort and Casinos]
摘要:题意 每次询问一段区间[l,r],求从最左边走到最右边(r+1)的概率(若走到l-1,则GG了),每个点上写有向右走的概率。支持单点修改。 思考 若只查询一次,那只要知道每个点在不走到l-1的情况下,向右移动一格的概率就行了,最后乘起来就是答案。 但我们忽略了一件事情,若从一个区间的某一点出发,从左
阅读全文
浙公网安备 33010602011771号