
数论
whiskey_wei
这个作者很懒,什么都没留下…
展开
-
大数相加模板
string sum(string s1,string s2){ if(s1.length() { string temp=s1; s1=s2; s2=temp; } int i=s1.length()-1,j=s2.length()-1; for(;i>=0;i--,j--) {原创 2017-07-31 17:20:41 · 242 阅读 · 1 评论 -
欧拉函数的两道模板题
pku2407求小于n并且跟n互质的数的个数#include<cstdio>#include<iostream>using namespace std;#define LL long longconst LL N = 1000000005;LL phi(LL x){ LL ans = x; for(LL i = 2; i*i <= x; i...原创 2018-04-10 18:33:37 · 268 阅读 · 0 评论 -
F_等式
https://www.nowcoder.com/acm/contest/90/F给定n,求1/x + 1/y = 1/n (x<=y)的解数。(x、y、n均为正整数) 上式可化简为 (x-n)(y-n)=n^2,将n^2因式分解求其因数的个数,便可求出x,y的解的个数#include <bits/stdc++.h>using namespace std;int num[64...原创 2018-03-27 21:06:09 · 205 阅读 · 0 评论 -
数学知识体系
原文地址一、组合数学:1、 Polya定理、burnside定理http://blog.youkuaiyun.com/ACM_cxlove/article/details/7453061http://wenku.baidu.com/view/3dc7027602768e9951e738ca.htmlhttp://blog.youkuaiyun.com/xuzengqiang/article/details/747667...转载 2018-03-04 17:11:15 · 2523 阅读 · 0 评论 -
(大数取模)POJ2635-The Embarrassed Cryptographer
poj2635题意:给一个大数K,int内的l,K是两个质数的乘积,问这两个质数是否小于有小于l的数;题解:先打质数的表,再按照大数取模依次对这些质数取模;大数取模:(点击打开链接)例如:如果1234是个大数,求对3取模的结果; 1 % 3 == 1(1*10 + 2)%3 == 0(0*10 + 3)%3 == 0(0*10 + 4)%3 == 1此题为千进制,原理...原创 2018-03-04 17:00:03 · 176 阅读 · 0 评论 -
数论poj1845(A^B的约数和)
题目:点击打开链接原文博客:点击打开链接求A^B的约数和对9901取模后的结果(0 <= A,B <= 50000000);1.根据唯一分解定理将A进行因式分解可得:A = p1^a1 * p2^a2 * p3^a3 * pn^an. A^B=p1^(a1*B)*p2^(a2*B)*...*pn^(an*B); A^B的所有约数之和sum=[1+p1+p1^2+...+p1...转载 2018-03-16 18:42:40 · 398 阅读 · 0 评论 -
关于逆元
原文:http://blog.youkuaiyun.com/guhaiteng/article/details/52123385乘法逆元对于缩系中的元素,每个数a均有唯一的与之对应的乘法逆元x,使得ax≡1(mod n)一个数有逆元的充分必要条件是gcd(a,n)=1,此时逆元唯一存在 逆元的含义:模n意义下,1个数a如果有逆元x,那么除以a相当于乘以x。下面给出求逆元的几种方法:1.扩展欧几里得给定模数m,...转载 2018-03-06 18:22:30 · 2236 阅读 · 0 评论 -
cf434 div.2 A. k-rounding
原题求n和10^k的最小公倍数;n*10^k/gcd(n,10^k);#includeusing namespace std;long long gcd(long x,long y){ return (y==0)?x:gcd(y,x%y);}int main(){ long long n; int k; scanf("%l原创 2017-09-23 11:31:56 · 327 阅读 · 0 评论 -
扩展欧几里得算法
紫书:求直线ax+by+c=0上的整数点(x,y);先求ax+by+c=gcd(a,b)的解void gcd(int a,int b,int &d,int &x,int &y)//d为a,b的最大公因数{ if(!b) { d=a; x=1; y=0; } else { gcd(b原创 2017-07-27 11:09:46 · 187 阅读 · 0 评论 -
poj2115扩展欧几里得
题目:点击打开链接原文:点击打开链接大致题意:对于C的for(i=A ; i!=B ;i +=C)循环语句,问在k位存储系统中循环几次才会结束。若在有限次内结束,则输出循环次数。否则输出死循环。 解题思路:题意不难理解,只是利用了 k位存储系统 的数据特性进行循环。例如int型是16位的,那么int能保存2^16个数据,即最大数为65535(本题默认为无符号),当循环使得i超过65535时,则i会...转载 2018-04-10 19:28:33 · 130 阅读 · 0 评论