随笔分类 -  数论

摘要:这个题是对刚才线性基的一个补充,就是中间有一些小贪心,贪心就很有意思,先按权值排序,然后就瞎搞就行了. 题干: 代码: 阅读全文
posted @ 2018-09-21 11:30 DukeLv 阅读(190) 评论(0) 推荐(0)
摘要:线性基就是一种可以维护异或和的东西,我还没太懂它到底有什么用,但是很好写,而且思路也很清晰,所以板子还是很简单的。 题干: 代码: 阅读全文
posted @ 2018-09-20 23:01 DukeLv 阅读(192) 评论(0) 推荐(0)
摘要:这个题貌似特别奇怪,根本什么算法都想不出来,然而。。。看完题解之后,竟然用了能量守恒?惊了! 这里有一个题解: https://blog.csdn.net/Mima_Reincarnation/article/details/53965251 膜一下自己写出来的大佬,太强了! 题干: 代码: 阅读全文
posted @ 2018-09-19 15:45 DukeLv 阅读(87) 评论(0) 推荐(0)
摘要:这个题一开始看着没什么思路,但是一看题解就明白了不少,主要是数学证明,代码很好写。 贴个网址: hzwer 题干: 代码: 阅读全文
posted @ 2018-09-18 16:10 DukeLv 阅读(169) 评论(0) 推荐(0)
摘要:想明白算法之后特别水,因为b只有可能出现一次,所以直接在b的左右找就行了,比他大的为1,比他小的为-1,然后维护前缀和就行了。 假如b有可能出现多次呢?按照这种方法好像也很好办,就是枚举每个点就行了,复杂度有点大,所以直接求一遍前缀和就行了。 题干: 代码: 阅读全文
posted @ 2018-09-13 19:21 DukeLv 阅读(203) 评论(0) 推荐(0)
摘要:竟然模拟退火能做!我就直接抄代码了,我加了点注释。 题干: 代码: 阅读全文
posted @ 2018-09-06 17:34 DukeLv 阅读(300) 评论(0) 推荐(0)
摘要:这个题的规律很好找,就是奇数直接除二,偶数除二加n/2.把这个规律整理一下就是(x * 2) % (n + 1),然后就直接求逆元就行了。一直30分的原因是qpow函数传参的时候用的int,然而变量是long long,然后就gg了。 题干: Description 为了表彰小联为Samuel星球的 阅读全文
posted @ 2018-08-29 21:01 DukeLv 阅读(314) 评论(0) 推荐(0)
摘要:大水题,一分钟就做完了。。。直接枚举1~n就行了,然后在n中判断出现多少次。 题干: Description Input 只有一行一个整数 N(0 < N < 1000000)。 Output 只有一行输出,为整数M,即f(1)到f(N)的累加和。 Sample Input 3 Sample Out 阅读全文
posted @ 2018-08-29 19:03 DukeLv 阅读(136) 评论(0) 推荐(0)
摘要:我刚开始,我打眼一看:哇!网络流大水题,直接费用流板子,建边跟zz一样。结果看了一眼数据范围。。。gg,luogu上只能得30,直接建边就是n^2,1e5根本过不了。咋办,只能另谋出路。想不出来,看题解之后恍然大悟!!!woc,还有这样一句话: 惊了,但是还是不会,然后就有这样一个显而易见的东西:a 阅读全文
posted @ 2018-08-28 21:44 DukeLv 阅读(218) 评论(0) 推荐(0)
摘要:啊啊啊,这题有毒。我想了各种花式数据结构,最后告诉我贪心???受不了。。。 题干: 代码: 阅读全文
posted @ 2018-08-27 21:32 DukeLv 阅读(135) 评论(0) 推荐(0)
摘要:今天净做水题了,这个题还不到十五分钟就搞定了,思路特别简单,就是直接按照线性求因子个数的思路就行了。 题干: 代码: 阅读全文
posted @ 2018-08-25 22:28 DukeLv 阅读(234) 评论(0) 推荐(0)
摘要:这个题想明白之后很好做,但是不好想。我根本没想出来,上网看了一下才知道怎么做。。。 这个题其实得数是一个等差数列,然后一点点求和就行了。 上次NOIP就是没看出来规律,这次又是,下次先打表找规律!!! 题干: 代码: 阅读全文
posted @ 2018-08-25 20:54 DukeLv 阅读(225) 评论(0) 推荐(0)
摘要:20分钟一遍AC,大水题,我的算法比较复杂,但是好理解,就是找可以凑出来一半周长的点来暴力枚举就行了。 题干: 代码: 阅读全文
posted @ 2018-08-23 19:33 DukeLv 阅读(211) 评论(0) 推荐(0)
摘要:看到一道很有意思的题,这个题简直有毒,是一道物理题。。。好像得用模拟退火。。。但显然我太弱了不会模拟退火,只能用正交分解暴力。。。 每次沿着力的方向走一定的距离,假如转头了,则走的步长就减小一点。 不过这里有一个坑,就是假如每次二分,就会错。。。0.7或0.9就可以。有可能走过了回不来了吧。 题面: 阅读全文
posted @ 2018-08-17 22:59 DukeLv 阅读(272) 评论(0) 推荐(0)
摘要:糖果传递,一开始就想到了n^2的模拟贪心算法,但是一看,数据范围太大,好像只有O(N)能过。。。没啥方法,只好看题解,之后发现,woc,还有这种操作? 这个题直接可以用数学证明。。。 证明如下: 偷来的证明。。。 题目: 代码: 阅读全文
posted @ 2018-08-17 21:03 DukeLv 阅读(205) 评论(0) 推荐(0)
摘要:今天学习了一下上次集训讲的置换,当时没懂,这个东西确实难理解。。。我看了《算法竞赛入门经典训练指南》,才勉强明白一点基础。。。 学习置换之前先要理解群论: 了解群论之后才进行初步置换。 先举个例子: 表示1被1到n中的某一个数a1取代,2被1到n中的某一个数a2取代,直到n被1到n中的某一个数an取 阅读全文
posted @ 2018-08-02 22:53 DukeLv 阅读(1211) 评论(0) 推荐(0)
摘要:这个题比较狗,一开始没有啥思路,但是看完题解觉得还是比较好理解的。主要思路就是需要把每个数是几个数的最大公约数求出来,然后求和就行了。蓝书P124例九 设f(n) = gcd(1,n) + gcd(2,n) + ... + gcd(n - 1, n),则本题主要求f(n),然后一点点递推。满足i为最 阅读全文
posted @ 2018-07-03 23:26 DukeLv 阅读(382) 评论(1) 推荐(1)
摘要:lucas是求组合数C(m,n)%p,有一个公式:C(m,n) = C(m/p,n/p)*C(m%p,n%p)。 (a*b)%c==a%c*b%c,但是(a/b)%c!=a%c/b%c,所以我们要算b在c意义下的乘法逆元。 一个线性求乘法逆元。a[i] = (p - p / i) * a[p % i 阅读全文
posted @ 2018-06-01 20:07 DukeLv 阅读(324) 评论(0) 推荐(0)
摘要:定义和简单性质 欧拉函数在OI中是个非常重要的东西,不知道的话会吃大亏的. 欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数. 对φ(N)的值,我们可以通俗地理解为小于N且与N互质的数的个数(包含1). 欧拉函数的一些性质: 1.对于素数p, φ(p)=p-1,对于对两个素数p,q φ(pq)=p 阅读全文
posted @ 2018-02-02 22:24 DukeLv 阅读(806) 评论(0) 推荐(0)
摘要:gcd就是求a和b最大公约数,一般方法就是递推。不多说,上代码。 一.迭代法 二.递归法 但exgcd是个什么玩意??? 百度了一下,百科这么讲的: 对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然 存在整数对 x,y ,使得 gcd(a,b)=ax+by。 好 阅读全文
posted @ 2018-02-02 20:03 DukeLv 阅读(330) 评论(0) 推荐(0)