UVA 10539 - Almost Prime Numbers题目链接题意:给定一个区间,求这个区间中的Almost prime number,Almost prime number的定义为:仅仅能整除一个素数。思路:既然是仅仅能整除一个素数,那么这些数肯定为素数的x次方(x > 1),那么仅仅要...
分类:
其他好文 时间:
2014-06-26 18:11:51
阅读次数:
169
今天居然没参考任何资料解决了这道数位DP,事先只是搞一道数论题练练;思路:求SUM[1]-SUM[N]的二进制的乘积mod1000000007; N#include#include#includeusing namespace std;#define N 10000007typedef long.....
分类:
其他好文 时间:
2014-06-26 15:09:30
阅读次数:
221
756 - Biorhythms
题目链接
基本就是裸的中国剩余定理。
代码:
#include
#include
const int M = 23 * 28 * 33;
const int m[3] = {23, 28, 33};
int p[3], d;
int gcd(int a, int b, int &x, int &y) {
if (!b) {x = ...
分类:
其他好文 时间:
2014-06-26 14:30:56
阅读次数:
287
问题:给定a1a2...an,
和m1,m2...mn,mi之间两两互质,求一个x,使得x/ai=mi
构造方法:
先求出M=∏ni=1mi,
对于每个mi,求出M / mi, 然后和mi利用拓展欧几里得算法求出M/mi?p+mi?q=1时的值,取∑ni=1(p?ai?M/mi)就是答案。
证明:
证明参考了wiki
由于mi之间两两互质,所以gcd(mi,mj)...
分类:
其他好文 时间:
2014-06-26 13:23:15
阅读次数:
279
UVA 10692 - Huge Mods
题目链接
题意:求a0a1a2...mod m
思路:直接算肯定不行,利用欧拉定理ab=a(b mod phi(m) + phi(m))(b>=phi(m)),对指数进行降值处理,然后就可以利用快速幂去计算了,计算过程利用递归求解。
代码:
#include
#include
const int N = 1005;
i...
分类:
其他好文 时间:
2014-06-26 11:43:20
阅读次数:
290
题目链接:uva 10843 - Anne's game
题目大意:给出n,问说有n个节点构成的标号树有多少种。
解题思路:cayley定理的躶题。
#include
#include
typedef long long ll;
const ll MOD = 2000000011;
ll Pow (ll x, ll n) {
if (n 0)
ret...
分类:
其他好文 时间:
2014-06-24 23:46:31
阅读次数:
239
UVA 10622 - Perfect P-th Powers
题目链接
题意:求n转化为b^p最大的p值
思路:对n分解质因子,然后取所有质因子个数的gcd就是答案,但是这题有个坑啊,就是输入的可以是负数,负数的情况比较特殊,p只能为奇数,这时候是要把答案不断除2除到为奇数即可。
代码:
#include
#include
#include
long lon...
分类:
其他好文 时间:
2014-06-24 23:30:45
阅读次数:
169
UVA 10515 - Powers Et Al.
题目链接
题意:求出m^n最后一位数
思路:由于m和n都非常大,直接算肯定是不行的,很容易想到取最后一位来算,然后又很容易想到最后一位不断乘自身肯定会形成周期,并且这个周期还挺短的,于是先求出周期,然后用n去取模该周期求出答案是第几个即可
代码:
#include
#include
int t[10];
int...
分类:
其他好文 时间:
2014-06-24 19:53:06
阅读次数:
209
10140 - Prime Distance
题目链接
题意:求[l,r]区间内最近和最远的素数对。
思路:素数打表,打到sqrt(Max)即可,然后利用大的表去筛素数,由于[l, r]最多100W,所以可以去遍历一遍,找出答案。注意1的情况,一开始没判断1,结果WA了
代码:
#include
#include
#include
using namespace...
分类:
其他好文 时间:
2014-06-24 17:20:30
阅读次数:
314
定义:
数论Lucas定理是用来求 C(mn)%p的值,
p是素数.
描述:
lucas(n,m,p)=lucas(n/p,m/p,p)?C(m%pn%p)
lucas(n,0,p)=1
证明:
设p为素数,A,B为正整数,并且有(即A,B的p进制情况):
A=akpk+ak?1pk?1+…+a1p1+a0
B=bkpk+bk?1pk?1+...
分类:
其他好文 时间:
2014-06-24 15:54:58
阅读次数:
274