数论
文章平均质量分 52
swust_wbh
这个作者很懒,什么都没留下…
展开
-
HDU4542-小明系列故事——未知剩余系(数论)
题目在http://acm.hdu.edu.cn/showproblem.php?pid=4542 当type=0的时候,就是求因子个数为k的最小数。我们知道,一个数可以这样分解: 其中p1,p2……,pr都是素数并且都不相同 所以思路就是将k这个数进行分解,然后搜索出所有的情况,找到最小值即可。 当type=1的时候,设我们求的数为n,那么这个数的因子个数就为n-k;求这样一原创 2013-04-12 15:16:10 · 691 阅读 · 0 评论 -
POJ 1150(数论) 代码量极少的解法
先考虑N!最后一位非0的数的求法。 我们构造一个数组table[4]={6,2,4,8},这个数组的特点就是table[(i+1)%4]=(table[i]*2)%10 那么 table[i]*2相当于是数组下标往右移动了一位(移动到最右边就从左边循环), table[i]*1 不变 table[i]*2 右1位 table[i]*3 右3位 table[i]*4原创 2014-04-21 11:11:36 · 804 阅读 · 0 评论 -
HDU 4610(数论+枚举状态)
若x=a0^p0*a1^p1*……*ai^pi(a0,a1……,ai是不同的素数) 对于条件3:因子和=(a0^0+a0^1+……+a0^p0)*(a1^0+a1^1+……+a1^p1)*…… 如果是素数,显然质因子个位要为1,并且(a0^(p0+1)-1)/(a0-1)为素数 对于条件4:设因子积为a0^q0*a1^q1*……*ai^qi(a0,a1……,ai是不同的素数) 则有qi=(原创 2013-09-23 16:28:49 · 889 阅读 · 0 评论 -
HDU 4602
a[1]=1; a[2]=2; a[n]=2*a[n-1]+2^(n-3)=2^2*a[n-2]+2*2^(n-3)=2^3[n-3]+3*2^(n-3)=……=2^(n-2)a[2]+(n-2)*2^(n-3)=2^(n-1)+(n-2)*2^(n-3); #include #include #include #include #include #include using namespa原创 2013-08-18 19:53:53 · 414 阅读 · 0 评论 -
UESTC 1723
#include #include #include #include #include #include #include using namespace std; #define lc l,m,index #define rc m+1,r,index #define ll long long #define inf 0x3f3f3f3f #define N 100000原创 2013-07-04 14:51:36 · 467 阅读 · 0 评论 -
UESTC 1895(分解质因数)
#include #include #include #include #include #include #include using namespace std; #define lc l,m,index<<1 #define rc m+1,r,index<<1|1 #define ll long long #define inf 0x3f3f3f3f #define N 100005 #de原创 2013-07-05 10:33:21 · 623 阅读 · 0 评论 -
UESTC1720(容斥原理)
#include #include #include #include #include #include #include using namespace std; #define lc l,m,index<<1 #define rc m+1,r,index<<1|1 #define ll long long #define inf 0x3f3f3f3f #define N 1000005 #d原创 2013-07-03 20:56:34 · 480 阅读 · 0 评论 -
UESTC 1552(欧拉函数)
#include #include #include #include #include #include using namespace std; #define lc l,m,index<<1 #define rc m+1,r,index<<1|1 #define ll long long #define inf 0x3f3f3f3f #define N 10005 int n,m,ans;原创 2013-07-01 16:58:47 · 583 阅读 · 0 评论 -
hdu4556(欧拉函数)
#include #include #include #include #include #include using namespace std; #define lc l,m,index<<1 #define rc m+1,r,index<<1|1 #define ll long long #define inf 0x3f3f3f3f #define N 1000005 ll n; ll ph原创 2013-07-01 16:08:32 · 570 阅读 · 0 评论 -
fzu1649(大数素数判定)
#include #include #include #include #include #include using namespace std; #define lc l,m,index<<1 #define rc m+1,r,index<<1|1 #define ll long long #define inf 0x3f3f3f3f ll n,a; bool prime(ll num) {原创 2013-07-01 15:25:55 · 781 阅读 · 0 评论 -
UESTC 1896(数论)
#include #include #include #include #include #include #include using namespace std; #define lc l,m,index<<1 #define rc m+1,r,index<<1|1 #define ll long long #define inf 0x3f3f3f3f #define N 100005 #de原创 2013-07-05 19:47:53 · 473 阅读 · 0 评论 -
HDU4565(数学)
构造An=(a+sqrt(b)^n+(a-sqrt(b))^n,An为整数。 由于b的范围,求An即可。 An*((a+sqrt(b))+(a-sqrt(b)))=...=2*a*An=...=A(n+1)+(a*a-b)*A(n-1), 得到递推关系A(n+1)=2*a*An+(b-a*a)*A(n-1)。 构造矩阵temp[2][2]={2*a,-a*a+b,1,0}. 使用矩阵快速原创 2013-06-18 16:18:26 · 450 阅读 · 0 评论 -
hdu 4549(矩阵优化递推,数论,二分快速幂)
设f(0)=1,f(1)=0,f(n)=f(n-1)+f(n-2)(n>=2)。 那么有F(n)=a^f(n)*b^f(n+1)。 根据费马小定理,1000000007是一个素数,那么所求可以化简为a^(f(n)%1000000006)*b^(f(n+1)%1000000006), 那么就可以先求f(n)和f(n+1),再用二分快速幂求得结果。 由于n比较大,求f(n)和f(n+1)要用矩原创 2013-05-21 14:03:17 · 1210 阅读 · 4 评论 -
矩阵快速幂求斐波拉切数列
#include #include #include #include #include using namespace std; #define ll long long #define N 2 struct matrix { ll m[N][N]; }; ll ans[N][N],temp[N][N]; matrix mul(ll a[N][N],ll b[N][N]原创 2013-05-20 22:46:20 · 628 阅读 · 0 评论 -
hdu 3555(数位dp)
#include #include #include #include #include #include #include using namespace std; #define N 25 #define ll __int64 ll dp[N][3]; ll n; //dp[i][0] 含49的 //dp[i][1] 不含49且最高位是9的 //dp[i][2] 不含49且最高位不是9的原创 2014-04-22 11:15:11 · 443 阅读 · 0 评论