-
题目链接 题意: Assume that f(0) = 1 and 0^0=1. f(n) = (n)^f(n/10) for all n bigger than zero. Please calculate f(n)%m. (2 ≤ n , m ≤ 10^9, x^y means the y th power of x). 思路:指数循环节。 trick点在于0^0=1这点。 比较容易想到的一层是ksm的时候特判。 比较不容易想到的一层是,0作为底数的时候,可能出现0^a在用降幂公式加速后,出现0^0。 举个例子: 680 80 phi(80)=32,恰好是8^6的因子 而0^(8^6)答案应该为0,用降幂公式加速后变成了0^0, …
Read More -
题目链接 题意:给出b,p,m(( 0<=b<P, 1<=P<=10^5, 1 <= M <=2^64 – 1 )),问满足图中条件的n有多少个。 思路:这题由于对p没有限制,所以细节多一些,需要讨论。 首先我们知道指数循环节公式,也就是所谓的降幂公式为:a^x = a^(x mod phi(c)+phi(c)) (mod c) x>=phi(c),(ps:后面的限制条件,在x<phi(c)的时候,该式子依然正确,只不过增加了运算复杂度。。。? 存疑) 然后我们只需要对n分两种情况讨论。 第一种是n<t ,第二种是n>=t (t = min{x| x! % …
Read More -
题目链接 题意:求一个楼梯数%m的大小。 思路:指数循环节。 需要注意的是,模数只有最外层是m,每往里一层,模数都变成m=phi(m) 所以可以写个dfs或者先预处理出每一层m存一下。 记得考虑n=1的特殊情况。 /* *********************************************** Author :111qqz Created Time :Wed 26 Oct 2016 07:07:27 PM CST File Name :code/uva/10692.cpp ************************************************ */ #include …
Read More -
题目链接 题意:给出n个数,q个查询,每组一个区间,询问区间中所有数的乘积的欧拉函数9+7的答案是多少。 思路:这道题需要一点欧拉函数的知识。 phi(n)是欧拉函数,意义为小于等于n并且与n互质的数的个数。 To calculate the answer on every query let's use the formula , where _p_1, p_2, ..., p__k — all prime numbers which divided_n. 如果知道欧拉函数的这个公式。。。那么这道题就成了水题。。。。 考虑两个数a,b的欧拉函数。 一开始考虑也许有什么性质。。。查了下欧拉函数的wiki 欧拉函数_维基百科 欧拉函数 …
Read More