自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

taotao 的大学墓志

keep thinking! keep learning!

  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 求n个数中与某一个元素互质的整数个数

对于求取小于nn的数里面与nn互素的整数个数,euler已经给出了ϕ(n)\phi(n),这里简单总结一下对于连续区间与离散区间的求法连续区间[a,b]求这个区间中与nn互素的整数个数 分解因子 n=∏ki=0priin = \prod_{i = 0}^kp_i^{r_i}用容斥原理求解出与他不互素的元素个数例题参见我的另一篇blog HDU 1695 GCD(phi函数+容斥)离散区间求

2016-11-30 19:15:25 2670

原创 二项式系数

因为在组合数学里面的重要应用,这里简单总结一下二项式系数的性质。 (1)   Ckn=Ckn−1+Ck−1n−1(1) \ \ \ C_n^k = C_{n-1}^k+C_{n-1}^{k-1} (2)   Ckn=Ck−1n∗n−k+1k(2) \ \ \ C_n^k = C_{n}^{k-1}*\frac{n-k+1}{k} 这个式子在组合数取模运算的时候可以将时间复杂度降到O

2016-11-30 18:49:39 1886

原创 HDU 5072 coprime (同色三角形 + 容斥)

Problem Link5702 Coprime 大意:给你n个整数,ai≤1e5a_i\le 1e5,求三元组(a,b,c)(a,b,c)任意两两互素或者任意两两都不互素的个数。Analysis还记得Ramsey 定理中的那两个蓝色或红色三角形吗。在这nn个点中如果量两互素则连一条蓝色的边否则连红边,最终问同色三角形个数,总的三角形数为C3nC_n^3,反向考虑,对于每一个点不满足条件的三角形数

2016-11-29 23:55:32 576

原创 UVALive 7040 color(容斥原理)

Problem Link传送门 大意:给nn朵花上色,从mm种颜色里面选择恰好kk种颜色,求总数MOD 1e9+71e9+7Analysis首先如果用kk种颜色给花上色的话,肯定是k∗(k−1)n−1k*(k-1)^{n-1}种方案,但是要求的是恰好kk种,很容易想到用容斥原理解决这个问题。 设AiA_i表示没选第ii种颜色的种类数目,则结果为 |A1¯¯¯¯∩A2¯¯¯¯∩...∩Ak¯¯

2016-11-29 21:07:55 758

原创 Codeforce 735C Tennis Championship(斐波那契数列)

Problem LinkC Tennis Championship 大意,N位选手,实行淘汰制比赛,只有比赛场数相差不超过1的才可以互相比赛,问冠军最多进行多少场比赛。Analyse我们反过来考虑这个问题,冠军打n+1场比赛需要最少多少人记做f(n),冠军打n+1场比赛,显然他和亚军打的那场比赛之前就已经打了n场了,因为实行的是淘汰制,所以与冠军打比赛的那些人与与亚军打比赛的那些人是不会有交集的,

2016-11-29 18:59:37 558

原创 ACM模运算

这篇博客简单总结一下,初等数论中模运算的应用逆元ax≡1(mod m)ax\equiv1(mod \ m)由模运算的意义,ax≡1(mod m)ax\equiv1(mod \ m)⟺\iffax+my=1ax+my = 1,所以用扩展欧几里得求一下就好int mod_inv(int a,int m){ int x,y; exgcd(a,m,x,y); return (x%

2016-11-28 19:23:03 681

原创 HDU 4675GCD of Sequence(大组合数取模 容斥原理 组合数学)

Problem LinkGCD of Sequence 大意,对于序列aia_i 中的找一个序列bib_is.tgcd(bi)=d,1≤bi,d≤m,bigcd(b_i) = d, 1\le b_i,d\le m,b_i,恰好有k个数与aia_i不相等,问对于每一个dd问这样的序列有多少个,结果MOD 1e9+7;Analyse设f(d)表示d|gcd(bi)f(d)表示d|gcd(b_i)的个数

2016-11-28 14:32:02 600

原创 codeforce 382 D. Taxes(哥德巴赫猜想)

problem linkD. TaxesAnalyse把n分解为素数的和肯定是最优的,当n为素数或者1的时候就是答案1, 由哥德巴赫猜想当n为偶数的时候就是2 若N为奇数只需要判断能否分解成两个素数的和(2与n-2),否则为3#include <iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<ve

2016-11-28 12:04:56 452

原创 HDU 1695 GCD(phi函数+容斥)

Priblem LinkGCD 找出满足gcd(x,y)=k,x∈[1,b]y∈[1,d]gcd(x,y) = k,x \in[1,b] y \in[1,d]的对数Analyse要找到满足gcd(x,y)=k,x∈[1,b]y∈[1,d]gcd(x,y) = k,x \in[1,b] y \in[1,d]的解,相当于找gcd(x/k,y/k)=1gcd(x/k,y/k) =1 ,也就是说要找到gc

2016-11-27 17:01:47 742

原创 ACM初等数论

这篇博客简要总结一下,ACM中的一些初等数论问题,包括euler phi函数,中国剩余定理,,euler phi函数ϕ(n)=n∏ki=1(1−1pi)\phi(n) = n\prod_{i = 1}^{k}(1-\frac{1}{p_i}) 证明详见《初等数论及其应用》int euler_phi(int n){ int ans = n; for(int i=2 ; i*i

2016-11-27 15:23:59 932

原创 Codeforce round# 380 E(贪心,构造)

题目大意题目链接 E. Subordinates 给你一棵有根树,让树上的节点挨着报告自己的祖先个数,问至少多少个节点说错了分析先排序, 贪心,想想,如果树的长度越长那么出现错误的节点就会越少,所以如果有一个错误的节点就让他增加当前扫描到的树的长度,并且如果有节点会发生错误,显然让最长的节点出现错误比较优(有点绕~)具体说来就是,每次扫描的时候如果当前节点发生错误就让最后面的节点来补这个位置。

2016-11-22 13:30:13 378

原创 Codeforces Round #380 D Sea Battle(鸽巢原理 贪心)

题目大意链接 D(Sea Battle)分析就是一个鸽巢原理,还是代码功底太差了,不敢敲,想了很久才去敲,敲完时间刚好,,要是再给我几分钟这次绝逼加rating了。 先算出每个区间(即可以放 船的区间)的最大值,然后挨着扫每个区间计算他的最小值,如果最小值大于零说明这个区间肯定会打中一个,否则在每个船身的末尾打一枪,这样最大的缩小船的可放位置,把这些位置记下来就是答案AC代码#include <

2016-11-20 21:52:04 487

原创 数论基本算法

这篇blog简单总结一下一些基本的数论算法,包括gcd,ex_gcd,和素数的一些基本算法,公约数gcdLL gcd(LL a,LL b){ return b==0? a:gcd(b,a%b);}ex_gcd//返回值为最大公约数LL ex_gcd(LL a,LL b,LL &x,LL &y){ LL d = a; if(!b){x = 1,y = 0;} e

2016-11-19 16:36:00 609

原创 Codeforces Round #379 (Div. 2) 734 F(二进制)

题目大意F. Anton and School 给你两个数组b,cb,c,让你找出一个数组aa满足 bi=∑nj=1ai and ajb_i = \sum_{j = 1}^na_i\ and \ a_j ci=∑nj=1ai or ajc_i = \sum_{j = 1}^na_i\ or \ a_j首先我们发现ai and aj+ai|aj=ai+aja_i\ and \ a_j

2016-11-17 22:41:04 547

原创 Codeforce Round #379 (Div. 2) 734 E Anton and Tree(tree 缩点 树的直径 )

题目链接734 E Anton and Tree 题目大意:一棵树上有两种不同颜色的节点,你有一种操作,一次可以改变与vv相连的同种颜色联通快的颜色,问最少多少次操作可以把树染成同样的颜色分析看了题解之后才明白了,因为一次染色可以改变同一个连通块,所以首先想到把同一个连通块缩成一个节点,这样是不影响染色操作的,这样我们就只需要考虑一颗相邻节点颜色不同的树需要多少次操作才能把颜色变为一样的了, 首

2016-11-17 20:13:47 479

原创 codeforce Round #379 (Div. 2)C(贪心)

题目链接C. Anton and Making Potions 贪心,用魔法肯定比不要要好,所以遍历bib_i对每一个bib_i在dd中找到对应的s−b[i]≥d[p]s-b[i]\ge d[p]的pp的最大值, 复杂度O(m∗lg(k))O(m*lg(k)) 不过要注意的是数据有点大,还有就是注意边值数据,对于边值数据最好是在数组中设置哨兵。代码#include <cstdio>#incl

2016-11-16 15:39:41 582

原创 ccpc合肥A题 hdu5961(bfs)

题目链接hdu 5961 首先分清楚传递的性质,IFF a链接到b,b链接到c,则a连上c,因此从a开始bfs一定不会有距离≥2\ge2的节点,所以对所有节点都bfs一下就好了, 其实这样做也会达到O(n3)O(n^3),所以有一种方法直接用矩阵A2A^2,算出每个节点能够间接到达的节点,再和AA比较一下。想办法优化一下应该能过的AC代码#include <cstdio>#include <c

2016-11-05 18:03:46 949

原创 2016 沈阳区域赛第三题(Recursive sequence)(矩阵快速幂)

这种题只要找到系数矩阵就可以了! 由于F(n+1)=2F(n−1)+F(n)+(n+1)4F(n+1) = 2F(n-1)+F(n)+(n+1)^4 我们需要找他的系数矩阵。不难发现 ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢F(n)F(n+1)(n+1)4(n+1)3(n+1)2(n+1)1⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢02000001100000011000004410000

2016-11-03 08:57:12 573

原创 快速幂

这里总结一下快速幂,包括矩阵快速幂和快速幂快速幂求解xnMOD mx^n MOD\ m 直接做肯定是O(n)O(n)超时,这里根据初等数论知识我们知道 因此LL power_mod(LL x,LL n,LL MOD){ LL res = 1; while(n) { if(n&&1)res=res*x%MOD; x = x*x%MOD;

2016-11-02 22:36:25 362

原创 HDU 1402 A*B(FFT 模板题)

大整数乘法 将每一位数字看做系数,作FFT,变为点值表达,然后再逆变换回去,这时每个系数就是对应结果的十进制位的数,把它变为十进制整数即可#include <cstdio>#include <cstring>#include <queue>#include<algorithm>#include<iostream>#include<cmath>#include<complex>#def

2016-11-01 16:27:01 348

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除