自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GoldMoon

记录成长点滴

  • 博客(12)
  • 收藏
  • 关注

原创 HDOJ-5392 Infoplane in Tina Town(置换群循环节长度)

求置换群的循环节长度。除了取模部分,题意和poj2369一样简而言之,给出一个1—n的排列p[i], p[i]表示把数列中a[]中的第p[i]位转移到第i位例如n=5时,p[]=4,1 5,2,3,a[]=1,2,3,4,5进行第一次便后后得到a[]=4,1,5,2,3再进行一次变换后得到a[]=2,4,3,1,5再进行一次变换后得到a[]=1,2,5,4,3再

2015-08-17 16:24:44 564

原创 HDOJ-5391 Zball in Tina Town(数学)

题意就是求(n-1)%n,n很大,O(n)的暴力求法是行不通的。观察可以发现,如果n是合数,那么1*2*3*4*......*n-1中包含了n的所有质因子,比如n=9,3和6中各含有一个3.但是有一个特例,4,只有这个合数不满足此规律。如果是质数呢?题解是“威尔逊定理”:        在初等数论中,威尔逊定理给出了判定一个自然数是否为素数的充分必要条件。即:当且仅当p为素

2015-08-16 14:27:02 583

原创 HDOJ-1787 GCD Again(欧拉函数)

ans=n-1-Eular(n)Eular(n)表示欧拉函数,[1,n]区间内与n互质的整数的个数通式:Eular(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。Eular(1)=1(唯一和1互质的数(小于等于1)就是1本身)顺便提一下,有一个有意思的公式:一个数的

2015-08-15 15:40:07 614

原创 HDOJ-5371 Hotaru's problem(Manacher)

2015 Multi-University Training Contest 7 1003题当时想到了用Manacher和二分,但是没想到用set去维护,可惜。题解:先用求回文串的Manacher算法,求出以第i个点和第i+1个点为中心的回文串长度,记录到数组c中比如10 9 8 8 9 10 10 9 8我们通过运行Manacher求出第i个点和第i+1个点为中心的回文串长度0

2015-08-12 15:35:24 270

原创 POJ-1830 开关问题(高斯消元)

代码的大部分都是和poj1222一样的,求出自由变元个数就好了。1222题解:http://blog.csdn.net/moringrain/article/details/47397787这道题需要学习的地方是如何处理初始状态和目标状态。初始状态-->目标状态     等同于   全0状态-->初始状态 xor 目标状态另外给系数赋值的时候注意行列的顺序,一开始搞错了调了半天

2015-08-10 16:27:17 445

原创 POJ-1222 EXTENDED LIGHTS OUT(高斯消元)

题意:给你一个5*6的矩阵,每个点上都有一个灯,按下f[i][j]的按钮,f[i][j]位置的灯的状态会改变,它上下左右的灯的状态也会改变(开变关,关变开)。现在给出这个矩阵的初始状态,输出按下哪些按钮,使所有的灯都关闭。做法:利用高斯消元解异或方程组。用x[i][j]表示第i行第j列的灯是否被按下x[i][j] ^  x[i+1][j] ^  x[i-1][j]

2015-08-10 14:19:53 1431

原创 HDOJ-4344 Mark the Rope(数论)

概括一下题意:将一个合数n的因数(不包括1和n)看做一个集合,求一个最大的子集使集合内所有元素都互质,并求出在上述条件下集合元素最大的和是多少。解法:既然要保证子集内的元素互质,就要保证任意两个元素没有质因子。要元素数目做多,则每个元素包含的质因子数目最少,即为1。做法也就出来了,对n进行拆分质因数,表示成 n=(a1^p1)*(a2^p2)*(a3^p3)*......*(ak^pk),

2015-08-08 16:05:31 401

原创 HDOJ-1788 Chinese remainder theorem again(数论)

就是求模线性方程组#include #include #include #include #include using namespace std;typedef long long LL;// X % m[i] = a[i]int m[100], a[100];//计算 ax+by=gcd(a,b),返回gcd值,求出xy LL Ex_gcd(LL a, LL b

2015-08-07 23:10:57 442

原创 HDOJ-3240 Counting Binary Trees(数论)

典型的卡特兰数问题,答案就是卡特兰数列前n项和。关于卡特兰数列:http://www.cppblog.com/MiYu/archive/2010/08/07/122573.html这里比较棘手的问题就是取模问题,要用到乘法逆元,但比起HDOJ4828这道题来(http://blog.csdn.net/moringrain/article/details/47341247)

2015-08-07 16:54:25 550

原创 HDOJ4828 Grids(数论)

一开始想成DP了,后来暴力打表找规律发现原来是卡特兰数列。于是乎就变成了卡特兰数取模问题。递推公式h[n]=h[n-1]*(4n-2)/(n+1)公式中有除法,所以取模的时候要用到乘法逆元。比较方便的一点是,10^9+7是质数,必定和分母(n+1)互质,所以直接用扩展欧几里得去求逆元就好了。关于逆元的应用:http://blog.csdn.net/moringrain/ar

2015-08-07 16:27:09 644

转载 乘法逆元的作用

转载自以下博客,源出处不明,如有侵权请告知博主,我会立即删除:http://blog.csdn.net/tsaid/article/details/7365936若对于数字A,C 存在X,使A * X = 1 (mod C) ,那么称X为 A 对C的乘法逆元。逆元的作用?让我们来看下面的例子:12 / 4 mod 7 = ?  很显然结果是3我们现在对于数对 (4,

2015-08-02 19:28:48 3333 4

原创 HDOJ-2669 Romantic(数论)

裸的扩展欧几里得算法,但要注意题目中要求a为非负数,扩展欧几里得算出来的a可能是负的,需要对a,b进行一下调整,否则会WA。#include #include #include using namespace std;typedef long long LL;LL Ex_gcd(LL a, LL b, LL &x, LL &y){ LL d; if (a == 0 && b

2015-08-02 16:09:18 507

空空如也

空空如也

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

TA关注的人

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