51NOD 1038:X^A Mod P——题解】的更多相关文章

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1038 X^A mod P = B,其中P为质数.给出P和A B,求< P的所有X. 找了半天找到了一道模板题,死嗑了一晚上对着题解写完了. 道理应该都懂吧……不懂我也懒的再说一遍了,看其他人博客吧:https://blog.csdn.net/dreamzuora/article/details/52744666 #include<algorithm> #incl…
题目描述 X^A mod P = B,其中P为质数.给出P和A B,求< P的所有X. 例如:P = 11,A = 3,B = 5. 3^3 Mod 11 = 5 所有数据中,解的数量不超过Sqrt(P). 分析 这道题包括几个知识点 离散对数(大步小步BSGS算法) 求关于x的同余方程\(y^x \equiv n \pmod{P}(P为质数)\)的解, 设\(m=\lceil \sqrt{n} \rceil,x=bm+r\),我们预处理出\(y^i(i\in[0,P-1])\),用map或ha…
1046 A^B Mod C 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!prob…
老了-稍微麻烦一点的树形DP都想不到了. 题目描述 给定一棵树,边权是整数 \(c_i\) ,找出两条不相交的链(没有公共点),使得链长的乘积最大(链长定义为这条链上所有边的权值之和,如果这条链只有 \(1\) 个点则链长视为 \(0\)). 输入输出格式 输入格式: 第一行:一个 \(n\) 表示节点个数. 接下来 \(n-1\) 行每行三个整数 \(u,v,c\) 表示 \(u,v\) 之间有一条 \(c\) 的边. 输出格式: 输出一个整数表示最大的乘积. 输入输出样例 输入样例: 5 1…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=2026 参考及推导:https://www.cnblogs.com/ivorysi/p/9157781.html (其公式有一处小问题,请注意.) 然后就没了……我觉得讲得挺详细了. 另外map跑得可能比哈希表还快可还行. #include<map> #include<cmath> #include<stack> #include<queu…
1421 最大MOD值 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 有一个a数组,里面有n个整数.现在要从中找到两个数字(可以是同一个)    ,使得    最大并且  . Input 单组测试数据. 第一行包含一个整数n,表示数组a的大小.(1 ≤ n ≤ 2*10^5) 第二行有n个用空格分开的整数ai (1 ≤ ai ≤ 10^6). Output 输出一个整数代表最大的mod值. Input示例 3 3 4 5 O…
给出3个正整数A B C,求A^B Mod C.   例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 代码 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define ll l…
给出3个正整数A B C,求A^B Mod C.   例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 #include <iostream> #include <stdio.h> using namespace std; long long a,b,c; long long mod(long long…
给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 用到了快速幂 ,挑战P123 比如x ^22 = x ^16 *x ^4*x ^2; 22 转换成二进制是10110: #include <iostream> using namespace std; typedef…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1709 (我什么时候看到二进制贡献才能条件反射想到按位处理贡献呢……) 参考:https://www.cnblogs.com/hzoier/p/8593825.html 最朴素当然是LCA暴算. 但是更聪明的做法是考虑每个节点$u$,固定$lca$求贡献,能够$LCA(u,v)=lca$的点$v$的个数显然为$size[lca]-size[u$所在的以$lca$为根的子树…