数论
799050408
展开
-
BestCoder Round #51 (div.2) Zball in Tina Town
威尔逊定理:当且仅当p为素数时:( p -1 )! ≡ p-1 ( mod p ) 这是一个充分必要条件这道题是用威尔逊定理做,但不知道定理的话,也没关系,可以打个表,总结:数论一些题就算不知道某个知识点,也要试着打下表,看能不能找到规律#includeint main(){ for(int i=1;i<=13;i++) { int sum原创 2015-08-17 09:39:32 · 797 阅读 · 0 评论 -
poj 2184 本原元(原根)的定义
题意:给定一个素数P,求里面有多少个生成元复习下原根的定义,在mod p(p是一个素数)下,根据欧拉定理,尽管每一个g ^ (p-1)% p== 1,但是并不一定是一个生成元,假设一个数对于模来说是原根,那么的结果两两不同,且有,那么可以称为是模的一个原根。而根据欧拉定理,此时g^(p-1)%p必定等于1(这里是素数),而一个素数p有个生成元。G=是n阶循环群,则群G中的元素都是a原创 2016-10-24 22:55:09 · 6372 阅读 · 1 评论 -
hdu 5868 Different Circle Permutation Polya定理 欧拉函数优化
题意:叉姐给出的解释很明白,就是n个点围成一个圈,每个人都可染成黑或者白,任意相邻的两个人不可以染成黑色,并且循环同构,问染色的方案数思路:如果这道题实在弄不懂,可以先按顺序把下面两题AC了http://blog.csdn.net/wyt734933289/article/details/52472495http://blog.csdn.net/wyt734933289/art原创 2016-09-19 11:13:20 · 970 阅读 · 2 评论 -
poj 2154 Color Polya定理 欧拉函数优化
题意:有一个长度为n的项链,项链上每颗钻石有n种染色方案,问有多少种方案思路:置换都考虑用Polya定理做,但是会达到o(n)级别,这里n太大,会超时。可以换个思路,一般做法是i从1枚举到n,求每一个gcd(i, n),可以看到一个性质是每一个 gcd(i, n)都是n的约数,而n的约数是有限的,也就是10^9个gcd(i, n)会有大量的重复,那么我们可以枚举每一个约数。例如原创 2016-09-14 18:35:52 · 544 阅读 · 0 评论 -
poj 2409 Let it Bead Polya定理
题意:用c种颜色给长度为s的项链染色,一共有多少种方案思路:网选后天就来了,这两天补了下Polya定理,刚好又在学习密码学,顺便补了群的一些东西。对于这种存在置换后存在一个等价类的计数问题,我们可以用Burnside引理和Polya定理,Polya定理是由Burnside定理推导出来的,学习过程应该是群->置换群->Burnside引理->Polya定理,同时可以看见的是尽管Polya原创 2016-09-09 00:44:44 · 552 阅读 · 0 评论 -
hdu 5655 CA Loves Stick
题意:给出四条边的长度,问是否能组成四边形思路:还是想了下,感觉跟三角形那个两边之和必定大于第三条边才能组成三角形有点像,可以推出三条边长度之和比大于第四条边,对四条边排下序,那么只用判断一次即可。要注意边为0 的情况,还有数据溢出,本来是a[0] + a[1] + a[2] > a[3],把a[2]移到不等式右边总结:遇到看似比较难的题,可以从已知的定理进行推广,往往是很原创 2016-06-16 22:07:37 · 449 阅读 · 0 评论 -
hdu 5645 DZY Loves Balls 概率
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5645#include #define c_false cin.tie(0);ios::sync_with_stdio(false); cout.tie(0)using namespace std;int a[305];int main(){ c_false;原创 2016-06-09 10:37:15 · 375 阅读 · 0 评论 -
hdu 4832 chess dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4832思路:感觉这道题是道好题,考的知识点挺多,都不难,但要组合起来,还是很有难度的总结下知识点(1)问题分解, 把一个复杂的问题分解成若干个独立的简单的问题, 并加以求解, 这是紫书P237的原话。以后对于涉及到行和列的问题, 就要联想到行和列是否无关。对于这道原创 2016-04-21 21:12:13 · 513 阅读 · 0 评论 -
hdu 1695 GCD 容斥 欧拉函数预处理
题意:求x在1-b里, y在1-d里,有多少对x,y使得gcd(x, y)==k题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695#includeusing namespace std;typedef long long ll;const int maxn=100010;int phi[maxn];vect原创 2016-05-01 20:37:54 · 412 阅读 · 0 评论 -
hdu 4135 Co-prime 复习容斥
题意,思路:http://www.cnblogs.com/jiangjing/archive/2013/06/03/3115470.html链接:http://acm.hdu.edu.cn/showproblem.php?pid=4135上面大神链接是用队列写的,我是位运算写的#include #include using namespace std;int n原创 2016-05-01 12:02:12 · 411 阅读 · 0 评论 -
hdu 1796 How many integers can you find 容斥定理 位运算 dfs
题意:给出m个数,问1到n-1有多少个至少能被a中一个数整除思路:裸的容斥,细节看注释题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1796#include #include #include using namespace std;typedef long long ll;int n, m原创 2016-05-02 00:39:23 · 466 阅读 · 0 评论 -
Codeforces Round #347 (Div. 2) A - Complicated GCD
题意:给出a和b,找到最大的整数d,使得d可以整除a到b所有的数,包括a,b思路:根据gcd(a,b)=gcd(a-b,b),gcd(a+1,a) = gcd(1, a) =1,要证明gcd(a, b) = gcd(a-b,b),可以设gcd(a, b) = x, a=mx,b=nx,m和n必定互素,a-b=(m-n)*x,现在要证明(m-n)和 n 互素,假如(m-n)和n不互素原创 2016-04-29 00:43:14 · 355 阅读 · 0 评论 -
51nod 1135 原根
题意:给出素数p,求最小的原根复习下原根的定义:一般来说最小的原根会比较小,所以可以从小到大枚举,在数据较小的时候可以这么做只需检查(p - 1)所有的素因子即可,因为若gcd(a, m) == 1,切a ^ g % m == 1,则必有c | d,其中c是最小的是的a ^ c % m成立的正整数。题目链接:http://www.51nod.com/onlineJudg原创 2016-10-25 15:17:26 · 375 阅读 · 0 评论