03 2018 档案

摘要:【题目链接】 点击打开链接 【算法】 二维树状数组 【代码】 阅读全文
posted @ 2018-03-31 18:35 evenbao 阅读(163) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 线性筛出不大于N的所有素数,枚举gcd(x,y)(设为p),问题转化为求(x,y)=p的个数 设x=x'p, y=y'p,那么有(x,y)=1且1≤x,y≤N/p 转化为求(x,y)=1且1≤x,y≤n的个数 求(x,y)=1且1≤x,y≤N的个数: 若x≥y, 阅读全文
posted @ 2018-03-30 19:08 evenbao 阅读(119) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 px + qy不能表示的最大整数为 pq - p - q 证明见这篇博客,过程很详细,推荐阅读 : https://blog.csdn.net/qwerty1125/article/details/78661916 【代码】 阅读全文
posted @ 2018-03-28 21:44 evenbao 阅读(88) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 按x轴排序,将相邻点连边 按y轴排序,将相邻点连边 然后对这个图跑最短路就可以了,笔者用的是dijkstra算法 【代码】 阅读全文
posted @ 2018-03-24 22:25 evenbao 阅读(109) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 最短路 【代码】 阅读全文
posted @ 2018-03-24 09:58 evenbao 阅读(141) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 最短路,注意不能用dijkstra,要用SPFA 【代码】 阅读全文
posted @ 2018-03-24 09:55 evenbao 阅读(102) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 gcd(i,n)是n的约数 不妨设gcd(i,n) = d 考虑枚举d和gcd(i,n) = d有多少个 gcd(i,n) = d gcd(i/d,n/d) = 1 因为i<=n,所以i/d<=n/d 因此满足gcd(i,n) = d一共有phi(n/d)个 【 阅读全文
posted @ 2018-03-20 21:30 evenbao 阅读(123) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 1.关于求最大公约数的算法 若使用辗转相除法,那么显然会超时 不妨这样思考 : 要求gcd(a,b), 若a为偶数,b为偶数,则gcd(a,b) = 2 * gcd(a/2,b/2) 若a为偶数,b为奇数,则gcd(a,b) = gcd(a/2,b) 若a为奇数 阅读全文
posted @ 2018-03-18 20:47 evenbao 阅读(160) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 其实这就是一道模拟题啦! 在判error和计算时间复杂度时,我们需要用栈这种数据结构 【代码】 这题的代码还是有些难写的,写的时候一定要有条理! 阅读全文
posted @ 2018-03-16 19:14 evenbao 阅读(212) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 前缀和 + 堆 【代码】 阅读全文
posted @ 2018-03-15 21:43 evenbao 阅读(158) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 不难看出,x1的范围是[x2-P(x2)+1,x2],x0的范围是[x1-P(x1)+1,x1] 我们可以先做一遍线性筛,然后暴力就可以了 【代码】 阅读全文
posted @ 2018-03-14 22:17 evenbao 阅读(237) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 G中最大的数一定也是a中最大的数。 G中次大的数一定也是a中次大的数。 第三、第四可能是由最大和次大的gcd产生的 那么就不难想到下面的算法: 1. 令p为G中最大的数。在G中删除p,a中加入p。 2 . 对于a中的所有其他数(设为q),在G中删除2个gcd(p 阅读全文
posted @ 2018-03-13 20:24 evenbao 阅读(136) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 设取的所有数都是k的约数,则这些数的lcm必然不大于k。 对于[1, m]中的每个数,统计a中有多少个数是它的约数即可。 【代码】 阅读全文
posted @ 2018-03-11 20:57 evenbao 阅读(184) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 若gcd(s1,s2,s3....sk) > 1, 则说明 : 一定存在一个整数d满足d|s1,d|s2,d|s3....,d|sk 因为我们要使|s|尽可能大,所以d是一个质数 对每个数进行质因数分解即可 【代码】 阅读全文
posted @ 2018-03-11 19:52 evenbao 阅读(154) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 gcd(a,a+1) = 1 所以当a = b时,答案为a,否则为1 【代码】 阅读全文
posted @ 2018-03-11 19:24 evenbao 阅读(173) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 将所有质数染成1,合数染成2即可 【代码】 阅读全文
posted @ 2018-03-11 19:13 evenbao 阅读(190) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 我们知道,一个数的因子是成对出现的,一半小于等于sqrt(N),一半大于sqrt(N),因此,我们可以从 2..sqrt(N)枚举因子 【代码】 阅读全文
posted @ 2018-03-11 18:32 evenbao 阅读(240) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 本题所运用的也是Splay的区间操作,但是实现较为困难 INSERT操作 将pos splay至根节点,pos+1 splay至根节点的右节点,然后对根节点的右节点的左节点建树即可 DELETE操作 将l-1 splay至根节点, r+1 splay至根节点的右 阅读全文
posted @ 2018-03-09 22:14 evenbao 阅读(156) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 本题也是Splay区间操作的模板题,不过要比BZOJ 3223要稍微复杂一些,做完此题后,我终于对Splay有了更深入的理解,有“拨开云雾见青天”的感觉 本题还是有许多细节的,笔者花了5h才通过了此题 【代码】 阅读全文
posted @ 2018-03-04 20:36 evenbao 阅读(211) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 线段树 注意标记下传 【代码】 阅读全文
posted @ 2018-03-03 18:47 evenbao 阅读(213) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 将T2从小到大排序,当决策当前建筑修或不修时,若当前花费时间 + T1 <= T2,则修,否则判断T1是否小于之前修的 T1最大的建筑,若小于,则修,我们可以用一个大根堆来维护T1的最大值 这题用的其实就是贪心的思想 : 从局部最优到全局最优 【代码】 阅读全文
posted @ 2018-03-03 14:20 evenbao 阅读(162) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 本题是splay区间操作的模板题 我们每个点的权值设为”当前在序列中的排名“,根据二叉排序树的性质,这棵树的中序遍历就是当前序列 如果我们要获得一段区间[l,r],那么我们将l-1splay到根节点,将r+1splay到根节点的右子树的根,我们发现,根节点 的右 阅读全文
posted @ 2018-03-03 10:50 evenbao 阅读(155) 评论(0) 推荐(0)