What is N?

Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=4335


Mean:

给你三个数b、P、M,让你求有多少个n满足下式。

analyse:

看到数据被吓到了,没半点思路,后来看了解题报告,方法竟然是暴力!

当然暴力是有条件的。

有这样一个公式:

A^x = A^(x % Phi(C) + Phi(C)) (mod C) (x>=Phi(C))

这个公式的具体证明原来在aekdycoin的百度空间有,但是随着百度空间被转移(百度作死,流失了好多优质的文章==),这篇文章的完整版也流失了。

我们就当这个公式是定理吧!

当n!<Phi(C)时,此时我们暴力解决就可。
 
当n!大于phi(P)的时候,就需要用上面的降幂公式了。
 
方法还是暴力,n!%phi(p)会出现0,这是必然的,至少n>=phi(p)为0,
 
那么(n+1)!%phi(p)也为0,这便出现了重复,转变为n^(phi(p))%p==b的问题了。
 
固定了指数,根据鸽巢原理,余数是循环的,那么只要找出p个的结果,之后通过循环节求解便可以了。
 
Trick:当P为1的时候,b为0,这时候答案是m+1,不过m可能为2^64-1,如果加1的话就会溢出,巨坑。

Time complexity: O(N)

Source code:

;
     ; )
           ;
                 )
                 ) ;
     ;
     ) ;
     )
           );
                 ;
           ; ;
           ));
                 ; )); ;
}/

数论 + 公式 - HDU 4335 What is N?的更多相关文章

  1. 【Luogu】P3327约数个数和(莫比乌斯反演+神奇数论公式)

    题目链接 真TM是神奇数论公式. 注明:如无特殊说明我们的除法都是整数除法,向下取整的那种. 首先有个定理叫$d(ij)=\sum\limits_{i|n}{}\sum\limits_{j|m}{}( ...

  2. 【中国剩余定理】【容斥原理】【快速乘法】【数论】HDU 5768 Lucky7

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5768 题目大意: T组数据,求L~R中满足:1.是7的倍数,2.对n个素数有 %pi!=ai  的数 ...

  3. hdu 4335 What is N?

    此题用到的公式:a^b%c=a^(b%phi(c)+phi(c))%c (b>=phi(c)). 1.当n!<phi(p)时,直接暴力掉: 2.当n!>=phi(p) &&a ...

  4. HDU 4335 Contest 4

    利用降幂公式..呃,还是自己去搜题解吧.知道降幂公式后,就不难了. #include <iostream> #include <cstdio> #include <alg ...

  5. 推公式 HDU 2552

    T 给你2个值 求另外一个 需要推一下 tan(a+b)=(tan(a)+tan(b))/(1-tan(a)*tan(b)); 等式左右取tan tan(atan(a))=a 1/s=tan(...) ...

  6. 【数论】HDU 4143 A Simple Problem

    题目内容 给出一个正整数\(n\),找到最小的正整数\(x\),使之能找到一个整数\(y\),满足\(y^2=n+x^2\). 输入格式 第一行是数据组数\(T\),每组数据有一个整数\(n\). 输 ...

  7. HDU 4335 What is N?(指数循环节)题解

    题意: 询问有多少数\(n\)满足\(n^{n!}\equiv b\mod p \land\ n\in[1,M]\),数据范围:\(M\leq2^{64}-1,p\leq1e5\) 思路: 这题显然要 ...

  8. fzu1759:数论高次幂降幂

    题目大意: 求 a^b mod c的值..但是b会非常大(10^1000000) 所以需要用到一个数论公式: A^x = A^(x % Phi(C) + Phi(C)) (mod C) 证明见ac大神 ...

  9. FUzhou 1607 Greedy division---因子个数问题。

    Problem 1607 Greedy division http://acm.fzu.edu.cn/problem.php?pid=1607 Accept: 402    Submit: 1463T ...

随机推荐

  1. Samba简单教程+Samba中文显示问题

    1.检测安装Samba服务(1).检查Samba服务包是否已安装:rpm -qa | grep samba(2).如未安装,则插入第一张安装盘,执行:mount /mnt/cdromcd /cdrom ...

  2. vscode - 移动端适配(cssrem)

    建议使用Chrome浏览器. 1.第一步,安装扩展以及配置 2.第二步,使用(记得按一下↓)

  3. 【转】非教育网中IPv4网络访问IPv6资源

    1. 背景知识 随着个人电脑.移动终端.乃至物联网的不断发展,有很大的IP地址需求.由于IPv4协议设计时没有料到日后网络会如此发达,IPv4网络中的IP数量相对今天的需求来说,显得捉襟见肘.加上IP ...

  4. angular.copy() 取消angular的数据双向绑定

    网址:https://www.tslang.cn/docs/tutorial.html

  5. 在mvc4里怎样引用:System.Web.Optimization和entityframework

    请在nuget 里运行: Install-Package Microsoft.AspNet.Web.Optimizationinstall-package entityframework

  6. Matlab变量、分支语句和循环语句

    一.Matlab的变量 1.变量的命名 Matlab的变量名由数字.字母和下划线组成,可是仅仅能由字母开头.大写和小写敏感,最大长度为63个字符.不能使用Matlab的关键字作为变量名,应当避免使用函 ...

  7. 阿里云rds linux平台使用wget 工具下载备份与日志文件

    1. 获取备份下载地址 RDS 控制台  备份恢复  数据备份,选择需要下载的备份集,点击“下载”. 点击“复制内网地址” 或 “复制外网地址” 来获取备份的 内网 或 外网 下载地址. 日志备份的地 ...

  8. Eclipse wtp project dependent project facets问题

    wtp project会编译成一个war包,但在eclipse里debug时,依赖的project没有自动编译成jar包并打包到war的lib目录里. 原因:依赖project的facets未设置或未 ...

  9. IntelliJ IDEA类头注释和方法注释

    The template is editable. Along with static text, code and comments, you can also use predefined var ...

  10. vsCode 添加浏览器调试和js调试的方法总结

    vsCode 添加浏览器调试和js调试的方法 1.直接按F5可以调试的方法或者点击运行按钮(可以直接运行html文件或者js文件) 在launch.json文件中的配置如下: {     " ...