07 2016 档案
摘要:A - Abandoned country 两个问题的组合,一个是求最小生成树,第二个是树形dp // // main.cpp // multi2016.1.A // // Created by New_Life on 16/7/25. // Copyright © 2016年 chenhuan00
阅读全文
摘要://组合数打表模板,适用于N<=3000 //c[i][j]表示从i个中选j个的选法。 long long C[N][N]; void get_C(int maxn) { C[0][0] = 1; for(int i=1;i<=maxn;i++) { C[i][0] = 1; for(int j=1;j<=i;j++) ...
阅读全文
摘要:亚里士多德错觉是最古老的错觉,而且也很容易实现。 将食指和中指交叉,然后触摸一个小的圆形物体,比如晒干的豌豆,人们会感觉自己好像触摸了两颗豌豆。 这个例子就是所谓的“感知分离”。当人们交叉手指时,这两个手指平时不接触的两个侧面便“相会”了,然后触感觉从这两个侧面分别传向大脑。由于正常状况下两个手指的
阅读全文
摘要:1.费马小定理 假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p) 证明:为欧拉定理的特殊情况。 2.欧拉定理 若n,a为正整数,且n,a互质,则(其中φ(n)为欧拉函数): 证明: 将1~n中与n互质的数按顺序排布:x1,x2……xφ(n) (显然,共有φ(n)个数) 我
阅读全文
摘要:在你以为理解mobus的时候,苦苦想通过化简公式来降低复杂度时,这题又打了我一巴掌。 看来我并没有理解到acmicpc比赛的宗旨啊。 这么多次查询可以考虑离线操作,使用树状数组单点更新。
阅读全文
摘要:又是一道经典题. 1.学习了下O(n) 的做法。 2.O(n)预处理,每次查询n^0.5 因为bzoj2693题目找不到了,所以直接用了这题来测试。 这题首先是一个经典的公式变形。 交换连加时变量的位置。 而根据第二个重要的性质,乘性函数的乘除之后还是乘性函数。(加减并不是) 所以后面的连加部分也是
阅读全文
摘要:一直就没彻底搞清楚这个问题。 在这里总结下。 一、1+2+3+4+...+n 这个公式还是记得住的:n*(n+1)/2 (编程的时候顺序不能变) 二、起始项为a1,终止项为an,总共有n项 这时候分情况讨论 1. n%2 == 0 则输出 (a1+an)*(n/2) 2. n%2 == 1 定理:当
阅读全文
摘要:这题的关键在于推公式。 推出公式并化简后,中等和困难都可以做了。 之前推了一个公式: 然后做中等难度的时候用容斥来了一发。 妹的,为了n^2维护前缀花了接近一天。。。 int sum[N]; memset(sum,0,sizeof(sum)); for(int n=2;n<N;n++) { for(
阅读全文
摘要:经典题。首先得知道最基本的莫比乌斯求1-n和1-m之间有多少互质对 然后根据下面论文 http://wenku.baidu.com/view/fbe263d384254b35eefd34eb.html 将每次查询的时间优化为n^(0.5) 妙啊 妙啊 还有要注意的一点,a,b,c,d不能在最开始的时
阅读全文
摘要:代码量超少的求一些特别情况的mobus,复杂度O( nlog(n) )
阅读全文
摘要:题目链接 比赛时用dp想了两个小时。。 看了题解说是网络流,感觉被打脸。 知道了这个模型之后,这题就是套个模板直接水过的了。 先拆点限流,把mid当源点,然后把a做汇点跑一次网络流,再把b做汇点跑一次网络流。 mdwzszz (第一次网络流,分两次跑) code:
阅读全文
摘要:概念: 给出一棵树. 每次询问选择一些点,求一些东西.这些东西的特点是,许多未选择的点可以通过某种方式剔除而不影响最终结果. 于是就有了建虚树这个技巧..... 我们可以用log级别的时间求出点对间的lca.... 那么,对于每个询问我们根据原树的信息重新建树,这棵树中要尽量少地包含未选择节点. 这
阅读全文
摘要:题目链接 1.对于简单的版本n<=500, ai<=50 直接暴力枚举两个点x,y,dfs求x与y的距离。 2.对于普通难度n<=10000,ai<=500 普通难度解法挺多 第一种,树形dp+LCA 比赛的时候,我猜测对于不为1的n个数,其中两两互质的对数不会很多,肯定达不到n^2 然后找出所有互
阅读全文
摘要:2.LCA 在线建立rmq(nlog(n)) 查询(log(n))
阅读全文