摘要:题意说人话就是给出一个长度为$n$的数列$a_1,a_2,...,a_n$,求$\prod\limits_{i=1}^n (1+x^{a_i})$,其中卷积的下标加法定义为$k$进制不进位加法。 $k$进制不进位加法不难想到$k$进制FWT,所以我们需要快速求出$\prod\limits_{i=1} 阅读全文
posted @ 2020-01-21 15:13 cjoier_Itst 阅读 (11) 评论 (1) 编辑
摘要:Day 0 长沙南 北京西 五道口 西直门超长换乘通道再放送 晚上看了一晚上OI Wiki Day 1 进去定睛一看:T1好难啊T2好难啊T3好难啊我AFO了(雾 为什么账号是 但狗牌上写的是 ??? T1想了想维护一下每一个状态之后变成哪个状态就行了。 最开始直接20个set暴力搞,TLE70(重 阅读全文
posted @ 2019-12-23 11:31 cjoier_Itst 阅读 (189) 评论 (9) 编辑
摘要:"传送门" 之前一直咕着的,因为一些~~特殊的~~原因把这道题更掉算了…… 有一个对值域莫队+线段树的做法,复杂度$O(n\sqrt{n} \log n)$然而牛客机子实在太慢了没有希望(Luogu上精细实现似乎可以过)。 考虑对序列进行块大小为$B=\sqrt{n}$的分块。对于某一个块来说,如果 阅读全文
posted @ 2019-12-18 21:32 cjoier_Itst 阅读 (81) 评论 (2) 编辑
摘要:再不更就成鸽子了= = Day INF to Day 0 不记得发生了什么 Day 1 今年HN用网上提交的方式收题?~~再也不怕因为交代码太晚增加省队名额了~~ 开考看了一眼T1好像是模拟题,特地注意了$k \leq 2^{63} 1$的部分分所以 一步到位。 T2栈优化DP,写了一会儿发现栈弹空 阅读全文
posted @ 2019-12-05 12:46 cjoier_Itst 阅读 (284) 评论 (10) 编辑
摘要:"LOJ" 感觉这个题十分好玩于是诈尸更博。一年之前的做题心得只有这道题还记得清楚…… 设输入为$n,m$时的答案为$f(n,m)$,首先$f(n,m)=f(m,n)$所以接下来默认$n \leq m$。一件重要的事情是~~打表~~得到当$m n+1$时$f(n,m) = f(n,m 1) 3$,证 阅读全文
posted @ 2019-11-13 22:12 cjoier_Itst 阅读 (142) 评论 (4) 编辑
摘要:"Contest Page" A 唯一会做的题/kk 题目相当于要求相邻三个的异或和为$0$。 当我们放入了三个数$a,b,c$时,接下来的放入顺序显然一定是$a,b,c,a,b,c,...$。所以当数可以分成三份,每份大小$\frac{n}{3}$且其中的数全部相等,从三份中各取一个数的异或和为$ 阅读全文
posted @ 2019-10-21 21:31 cjoier_Itst 阅读 (250) 评论 (4) 编辑
摘要:"Contest Page" A 对于一个长度为$L$的相同字符段,显然要花费$\frac{L}{2}$次操作才能使得相邻不相同。于是只需要分类讨论一下首尾字符是否相同,算出每种字符、每种长度的连续字符段出现了多少次即可。 B 首先当图不是二分图的时候肯定无解,否则可以发现答案的上界是图上两点的最短 阅读全文
posted @ 2019-10-20 09:21 cjoier_Itst 阅读 (148) 评论 (2) 编辑
摘要:代码自己去LOJ看 JOI2013 彩灯 把序列划分成若干极长交替列,那么最优的方案一定是将一个极长交替列翻转使得连续的三个极长交替列合成一个。计算相邻三个极长交替列长度的最大值即可。 搭乘IOI火车 DP:$f_{i,j}$表示两个串的起点分别在$i,j$位置最长的拼接长度,转移就先放一个'I', 阅读全文
posted @ 2019-10-12 16:35 cjoier_Itst 阅读 (285) 评论 (7) 编辑
摘要:"传送门" 最小值最大考虑二分答案,不难发现当最小值$mid$确定之后,原点到所有直线的距离一定都是$mid$时才是最优的,也就是说这些直线一定都是$x^2+y^2=mid^2$的切线。 接下来考虑一个点会被哪些切线所保护。作出这个点到圆的公切线,得到两个切点,那么在这两个切点之间的优弧上选择一个点 阅读全文
posted @ 2019-10-05 11:19 cjoier_Itst 阅读 (136) 评论 (12) 编辑
摘要:"Contest Page" 因为一些特殊的原因所以更得不是很及时…… A sol 不难发现当某个人diss其他所有人的时候就一定要被删掉。 维护一下每个人会diss多少个人,当diss的人数等于剩余人数$ 1$的时候放队列里,每一次取队头更新其他人diss的人数。 "code" B sol 一个结 阅读全文
posted @ 2019-10-03 22:58 cjoier_Itst 阅读 (120) 评论 (0) 编辑
摘要:"传送门" ~~题解搬运工++~~ 先证明一个贪心做法的正确性:做以下操作若干次,每一次考虑选择没有被选到答案序列中的数加入到答案序列中对答案的贡献,设第$i$个位置的贡献为$V_i$,如果最大的贡献小于0则退出,否则选择其中贡献最大的加入答案序列中。 首先一个引理:在上述贪心策略下,如果$a_i$ 阅读全文
posted @ 2019-09-28 21:04 cjoier_Itst 阅读 (96) 评论 (0) 编辑
摘要:"Contest Page" 开题开错翻车场.jpg A sol $A \frac{W}{2}$或者$B \frac{H}{2}$的时候无解,否则构造方法长下面这样 c++ include using namespace std; int main(){ static int arr[200003] 阅读全文
posted @ 2019-09-22 17:27 cjoier_Itst 阅读 (225) 评论 (0) 编辑
摘要:"Contest Page" "A" sol 真的有人不会做这道题? include using namespace std; define int unsigned long long const int _ = 229029 , tar[] = {2,31,1847}; signed main( 阅读全文
posted @ 2019-09-20 22:43 cjoier_Itst 阅读 (182) 评论 (0) 编辑
摘要:"传送门" 数字最小公倍数为$L$的充分条件是所有数都是$L$的约数,而$10^8$内最多约数的数的约数也只有$768$个。所以我们先暴力找到所有满足是$L$的约数、$G$的倍数的数。 接下来注意到题目的$\gcd$和$lcm$的限制等价于对于每一个质数限制所有数在该质数指数上的$\min$和$\m 阅读全文
posted @ 2019-09-20 16:47 cjoier_Itst 阅读 (105) 评论 (0) 编辑
摘要:"传送门" 首先显然的是可以一开始先染好再做、每个点只会被染一次、最后只剩下两种颜色。 接下来是结论时间:序列可以反转的充要条件是除了首尾的极大颜色连通块以外其他极大颜色连通块长度为偶数。 证明充分性:考虑归纳。 如果序列中有$3$个极大颜色连通块且中间的连通块长度为偶数,那么先将两端的颜色块折成$ 阅读全文
posted @ 2019-09-19 22:40 cjoier_Itst 阅读 (97) 评论 (0) 编辑
摘要:"传送门" 先二分一个最大速度$v$。 分析移动的性质。很显然的事情是在火焰两边的所有人都会往火焰的方向以最快的速度运动,这样可以使当前位置更早获得火焰,同时当前拥有火焰的若干个人为了传递火焰自然也会以最快的速度移动。 接下来考虑某个没有火的人碰上了有火的人之后决策如何。假设有火的人$A$碰上了无火 阅读全文
posted @ 2019-09-19 22:26 cjoier_Itst 阅读 (95) 评论 (5) 编辑
摘要:"Contest Page" A sol 每次选最小的,然后把它的所有倍数都删掉。 include using namespace std; int num[1003] , N , A[1003] , B[1003]; int main(){ cin N; for(int i = 1 ; i A[i 阅读全文
posted @ 2019-09-18 22:56 cjoier_Itst 阅读 (111) 评论 (1) 编辑
摘要:"传送门——BZOJCH" 考虑两种情况: 1、答案由一个最长公共子串+可能的一个模糊匹配位置组成。这个用SAM求一下最长公共子串,但是需要注意只出现在$S$的开头和$T$的结尾的子串是不能够通过额外的一个模糊匹配得到更长的子串的,而对于其他的子串来说都可以。 2、答案由模糊位置两遍的子串构成。暴力 阅读全文
posted @ 2019-09-15 19:23 cjoier_Itst 阅读 (71) 评论 (0) 编辑
摘要:"LOJ" 看到离线区间操作仍然考虑莫队,然后可以发现:我们对于原来的凸包集合按照极角序维护一个链表,那么删除一个位置可以$O(1)$,撤回删除操作也可以$O(1)$(因为原来的链表结构中当前节点就记录着其之前的前驱后继),但是动态加入操作至少要一个二分的$log$的复杂度。所以我们要尽可能避免动态 阅读全文
posted @ 2019-09-14 22:50 cjoier_Itst 阅读 (48) 评论 (0) 编辑
摘要:"传送门" 看到出现次数自然地考虑莫队。 但是发现如果需要删除并动态维护答案的话,则要用一个堆来维护答案,增加了一个$log$。但是加入操作却没有这个$log$,所以我们考虑避免删除操作。 分块,设$l_i,r_i$表示第$i$个块的左右端点,设$f_{i,j}$表示区间$[l_i,r_j]$的答案 阅读全文
posted @ 2019-09-14 22:35 cjoier_Itst 阅读 (39) 评论 (0) 编辑