acm_数论
lshacm
这个作者很懒,什么都没留下…
展开
-
acm数论基础知识(持续更新)
扩展欧几里得算法: void exgcd(ll a,ll b,ll d,ll&x.ll&y){ if(!b) { d=a,x=1,y=0; } else { exgcd(b,a%b,d,y,x) ; y-=x*(a/b); } }迭代法求得方程a*x+b*y=d 使得|x|+|y|最小的x和y,但是x和y不一定是正数,x1=(x+b)%b,y1=(y+a)%a才是满足方程的最小正原创 2014-12-23 23:46:59 · 1739 阅读 · 0 评论 -
UVA 11916 Emoogle Grid(模指数方程)
题意:用k种不同颜色给m*n方格涂色。其中有b个点不用涂色,给出这b个点的位置。满足上下相邻的两个位置不能涂相同颜色。 已知列数n和涂色总方案r(已经对mod取模)。求最小的行数m原创 2015-05-15 00:45:12 · 393 阅读 · 0 评论 -
UVA 1415 Gauss Prime(高斯素数)
题意:判断a+b*sqrt(-2)是否为素数 解法:参考高斯素数的定义即判断方法 http://zh.wikipedia.org/wiki/高斯整數#include<stdio.h>原创 2015-05-15 00:34:15 · 570 阅读 · 0 评论 -
NEUOJ1586 Cube Number
题意:求n个数中乘积是立方数的数的对数。 n<=10510^5,a[i]<=10610^6原创 2015-05-31 22:26:40 · 629 阅读 · 0 评论 -
hdu5072 互素数对统计
关键词:统计n个数种与x互素/不互素的个数 题意:求n个数中两两不互素或两两互素的三元组数目 称满足上述性质的三元组为P三元组 解决非P三元组的计数问题有两种方法。 法一:先求出数组中与每个a[i]互素的个数f[i],这个最后再求。假设f[i]已知,我们用正难则反的思路求P三元组数目。任意一个非P三元组都既存在互素,又存在不互素的数对,因此我们可以对每个a[i],从数组中找出与a[i]互素原创 2015-01-12 11:27:50 · 534 阅读 · 0 评论 -
URAL1091 Tmutarakan Exams
关键词:求前s个数中k个gcd为1的数的组数 题意:求k个数a1,a2…ak,使得gcd(a1,a2…ak)>1的数的组数,其中1=< ai<=s。 解法:容斥原理。原创 2015-04-29 02:11:57 · 374 阅读 · 0 评论 -
zoj 3887 LCGCDS
题意:求a和b序列中连续区间的gcd相同的最大区间长度以及对应的相等对数 解法: 1.先求出gcd为x的区间的最大长度和最短长度 2.按照x从小到大排序,再按照lmax从大到小排序,然后用二维尺取法求得最终答案即可。原创 2015-07-31 18:08:05 · 412 阅读 · 0 评论 -
hdu4373 Mysterious For(剩余定理+Lucus定理)
题意:给你m重循环每一层循环从上一层或者0开始,到n-1结束,求循环的总次数。原创 2015-09-01 16:27:55 · 408 阅读 · 0 评论 -
hdu5341 Gcd and Lcm
题意:求∑ni=1∑nj=1∑nk=1∑nl=1lcm[gcd(i,j),gcd(k,l)]\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n\sum_{l=1}^nlcm[gcd(i,j),gcd(k,l)],n<=1e7,数据不超过100组原创 2015-08-02 15:52:49 · 539 阅读 · 0 评论 -
uva 11768 (格点问题)
关键词:模的简化 题意:可以转化为求两点(x1,y1),(x2,y2)之间的线段经过多少个整点(x3,y3)满足x3,y3都是10的倍数?原创 2015-05-13 00:42:43 · 509 阅读 · 0 评论 -
uva1728 Alternate Task(因子和)
关键词:求因子和的两种方法 题意:求最大的整数N使得它的因子和为S(1<=S<=1000)原创 2015-05-13 01:31:00 · 320 阅读 · 0 评论 -
poj2773 Happy 2006
题意:求第K个与m互素的数 解法一:二分答案。不断计算前K个数与m互素的数的个数(m*logm),通过二分(logINF)可以找到答案。 复杂度:O(log(INF)*m*log(m)) 解法二:找出前m个数中与m互素的数(m*logm),并统计个数num。(K/num)*m+prime[K%num]即为答案 复杂度:O(m*logm)#include<stdio.h>原创 2015-04-29 00:12:32 · 287 阅读 · 0 评论 -
《数论11题》题集笔记
Problem Zero:[neerc2011]Gcd guessing game 现在有一个数x,1 ≤ x≤ n,告诉你n,每次你可以猜一个数y,如果x==y则结束,否则返回gcd(x,y),问最少只要几次就可以保证猜出答案。 求出1-n中所有素数,及其不大于n的最高幂次,另y是所有质数最高幂次的乘积,则gcd(x,y)=x,因此最少一次就可以得到结果 Pr原创 2015-01-14 02:35:43 · 712 阅读 · 0 评论 -
hdu2841 Visible Trees(容斥原理)
题意:从(0,0)处能看到n*m矩阵中的多少个点 解法:题意即为求∑ni=1∑mj=1[gcd(i,j)==1]\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==1] 详细化简过程见数论笔记本,数论11题博客中有此模型解答。原创 2015-05-08 23:56:16 · 321 阅读 · 0 评论 -
poj3904 Sky Code(容斥原理)
关键词:容斥原理、莫比乌斯函数 题意:n个数中gcd为1的4数对(a1,a2,a3,a4)的组数 解法:ApA_{p}:最大公约数是p的倍数的4数对组数 ans=|∩(!Api)||∩(!A_{pi})|,pi是n个数中的所有质因子。原创 2015-05-09 00:35:50 · 383 阅读 · 0 评论 -
hdu4407 Sum(容斥原理)
题意:已知序列1,2…n。存在两个操作 1,x,y,p:统计[x,y]位置区间内有多少个元素与p互素 2,x.c:将x位置上的数改成c n<=400000,操作数m<=1000 解法:由于操作数较小,所以先处理未操作的结果,然后再考虑数字置换后结果的该变量。原创 2015-05-09 01:47:59 · 352 阅读 · 0 评论 -
hdu1796 How many integers can you find(整除个数统计)
关键词:整除个数统计 题意:统计[1,n)中能够被a[1…m]中至少一个整除的数的总数 m<=10原创 2015-04-28 21:56:22 · 305 阅读 · 0 评论 -
uva 1393 Highways
关键词:两次dp:**固定端点->不固定端点**、矩形dp 题意:在n*m矩阵中有多少条至少穿过两个格点的非水平非竖直的直线 解法:DP原创 2015-05-04 00:27:49 · 391 阅读 · 0 评论 -
uva12075 Counting Triangles
关键词:三点共线组数、两次DP 题意:求n*m格点中三角形个数 解法:转化为求n*m格点中三点共线组数——两次DP原创 2015-05-04 01:54:54 · 371 阅读 · 0 评论 -
hdu4135 Co-prime(互素统计)
题意:统计[l,r]中与m互素的数的个数原创 2015-04-28 22:38:03 · 304 阅读 · 0 评论 -
数论总结(持续更新)
1.gcd相关问题 1)gcd的组合问题 2)连续区间的gcd问题 3)gcd的运算问题 2.位运算问题 2.1异或问题 2.2或问题原创 2015-08-01 10:55:21 · 578 阅读 · 0 评论