上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要: 虽然很久以前就听说过PR算法,但前几天第一次打。 首先miller rabin判断素数,不在复杂度瓶颈。 pollard rho倍增环长,复杂度是$O(n^{\frac{1}{4}} log n)$的。 然而这样复杂度较高,比较难过加强后的数据。 可以考虑每次倍增时把乘积存下来,然后在增加环长时一次 阅读全文
posted @ 2019-04-01 07:52 Yuhuger 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 这题挺恶心的。 首先一颗树的时候点分加卷积统计答案,注意合并子树时按深度从小到大合并,否则复杂度就爆了。 我偷懒用size从小到大合并,复杂度应该还是两个log. 然后考虑万恶的环。 先随便删掉环上一条边,按照树统计一下答案。 然后考虑 必须经过环上该条边的答案但又不经过整个环的答案。 考虑再钦定一 阅读全文
posted @ 2019-03-29 16:04 Yuhuger 阅读(232) 评论(0) 推荐(0) 编辑
摘要: ```c++ include using namespace std; string Get(){ return string(200000000,'a'); } int main(){ int t=clock(); const string &s0=Get(); cerr 阅读全文
posted @ 2019-03-27 21:05 Yuhuger 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 别的也不想多说,就讲考试吧。 进场前状态应该还是比较好的,人也没有昏昏欲睡。 进考场之后先打了数据生成器。 又打了配置文件。(顺序好像反了) 然后终于公布了解压密码。 看题,麻将, 果然有麻将。 九条可怜, 又是九条可怜。 T1看完没有什么思路。 看T2,一脸不可做的样子。 看T3,哇,这个50分好 阅读全文
posted @ 2019-03-27 18:38 Yuhuger 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 好久以前开的坑. 到今天才填上. 首先考虑队第一颗树边分,然后分成两个集合$L,R$,在第二棵树上建出虚树,在每个路径$lca$处统计答案,维护点集的直径只有正权很好维护. c++ include using namespace std; typedef long long ll; typedef 阅读全文
posted @ 2019-03-21 22:33 Yuhuger 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 这题很明显是lct,我们只要可以维护黑色点深度和即可。 但是lct维护子树信息好难写啊。 首先边权比较难处理,所以偷懒加虚点表示边。 然后考虑维护子树距离和,需要维护splay上的边权和。 为了可以reverse,还必须维护一个反的距离和。 虚子树的答案更新在access和link连虚边的时候。 好 阅读全文
posted @ 2019-03-19 19:23 Yuhuger 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 超级结论题。。。 首先建出原图的补图,再考虑缩点。 缩完点后是一个有向无环图。 这个图的每个点代表一个强联通分量。 考虑一个大小大于$1$的强联通分量中的一个点$i$,那么$i$永远不可能开枪。 因为$i$开枪需要假设自己的狗没病,然后枚举自己看不到的狗的状态,然而由于有他的转移依赖的状态 依赖他, 阅读全文
posted @ 2019-03-19 18:37 Yuhuger 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 这题做法真多。 做法一:直接圆上撒点,跑最小圆覆盖$O(n B)$,其中B为撒点数。 做法二:先对所有圆心跑最小圆覆盖,然后将最小圆的圆心与输入圆的靠外的交点作为点,跑最小圆覆盖,多迭代几次。复杂度玄学。 做法三:观察到x,y都是可以三分的,三分套三分,$O(n log^2 C)$,C为值域。可能可 阅读全文
posted @ 2019-03-17 15:41 Yuhuger 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 手写了一个动态申请内存的数组,更准确的说是一个本来应该是块链,最后由于太耗时间了变成数组的东西。 由于太懒了,编译需要用c++11或以上。 两个参数分别是元素类型和块大小S。申请内存以块为单位,很明显如果块大小是$O(n)$那么就是数组,如果块大小是$O(1)$那么就是链表。 各种操作的复杂度跟数组 阅读全文
posted @ 2019-03-17 13:48 Yuhuger 阅读(301) 评论(1) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-17 13:36 Yuhuger 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 这题并不难想,但是很难写。 首先先转化为开区间,然后一个就是挂左链,一个是挂右链。 然后变成了一个点与左链上挂的点的距离的问题。 然后就分讨吧! 此处省略一万字。 写完之后,编译了一下程序,电脑死机了。 然后发现自己CMLE了。(CMLE,即编译器内存超限) 原因是在c++11标准下struct内二 阅读全文
posted @ 2019-03-10 16:43 Yuhuger 阅读(185) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-10 16:31 Yuhuger 阅读(7) 评论(0) 推荐(0) 编辑
摘要: https://codeforces.com/problemset/problem/1129/E 这题就是一个主要的想法是变成有根树,然后自下而上确定点,每次二分未确定父亲的集合找出父亲。 已写。 https://codeforces.com/problemset/problem/1129/D 考虑 阅读全文
posted @ 2019-03-06 17:24 Yuhuger 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 问题是你有p个数,他们的和是n 现在输入q,让你输出q的$p_i$次方。 如果询问次数很多,p比较小,值域比较大,怎么快速做。 法一 直接快速幂 O(p log C) 法二 考虑将这p个数排序,然后差分,然后对差分数组排序,以此类推。 不断排序差分。 这样加上一定长度的预处理。 假设排序是O(p)的 阅读全文
posted @ 2019-03-04 21:51 Yuhuger 阅读(146) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-04 21:26 Yuhuger 阅读(6) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 10 下一页