codechef
L_0_Forever_LF
一个热爱OI的OIer
展开
-
codechef Chef and Churu
传送门 将n个函数分块,预处理出每个位置在每个函数里用到多少次,修改时维护每个块内所有函数的和,询问时被完整覆盖的块直接累加和,被部分覆盖的块用树状数组暴力求和 要用unsigned long longcode:#include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<cmath> #原创 2016-10-27 09:32:58 · 499 阅读 · 0 评论 -
codechef minxor
分块,每个块开一棵字典树,暴力询问,修改时没有被完整覆盖的块暴力重构code:#include<cmath> #include<cstdio> #include<cstdlib> #include<cstring> #include<climits> #include<iostream> #include<algorithm> #define ll long long using namespace原创 2016-10-27 20:24:13 · 445 阅读 · 0 评论 -
Codechef October Challenge 2017 Chef and Horcrux
将原序列排个序,从小到大枚举mex,可以算出选出mex为i的子序列概率为f[i] 要算选X个子序列,这些mex值在K进制下异或和为i的概率 其实就是对f做K进制下的FWT,每个位置求个快速幂在DFWT回来 考虑FWT本身就是m维的循环卷积,K进制和二进制不同的无非就是每一维大小由2变成K 做一个长度不为2的整数幂的循环卷积不能直接FFT(NTT),但是因为K很小,而FFT的本质又是插点值,...原创 2018-03-05 20:32:44 · 326 阅读 · 0 评论 -
CodeChef LEBOXES
有n个箱子,每个箱子打开有Pi的概率获得Vi的金币,1-Pi的概率获得1个钻石 这个人开完箱子后,会拿这些金币和钻石去买东西,m个东西,第i个东西需要Ci金币,Di钻石购买,问购买的东西数量的最大值的期望 Vi很大,但是注意到钻石数量很小,我们先做一个dp,f[i][j]表示我要买i个东西,用了不超过j个钻石,所需要的最少金币数 然后对n折半,搜出开出i个钻石的所有情况,然后枚举分别开了x,...原创 2018-04-20 21:26:09 · 255 阅读 · 0 评论 -
Codechef TANDEM
定义形如XXX的串是好的串,在好的串的前提下,若这个串后面的第一个字符和这个串的第一个字符不同,这个串就是有趣的串,否则是无聊的串,求S的所有子串中,有趣的串和无聊的串的个数 枚举XXX中X的长度L,每L个位置设一个关键点,那么一个好的串一定会且仅会经过3个关键点,枚举第一个,计算他和第二个关键点的LCP,LCS,可以得到好的串合法的左端点区间,注意到若一个好的串将他右移后仍然是好的串,那么他一...原创 2018-04-20 21:32:17 · 394 阅读 · 0 评论