快速幂

3641:费马小定理,快速幂加素数判断。

1995:求几个数的幂的和的模。

2429:给出LCM和GCD,逆推a和b,巨疯狂,数据量极大,模拟过不了,可以借鉴此。

模拟型题。

参考程序:

3641:

#include <iostream>
using namespace std;
typedef long long LL;
LL mod_mult(LL a, LL b, LL m)
{LL res = 0;LL exp = a % m;while (b){if (b & 1){res += exp;if (res > m) res -= m;}exp <<= 1;if (exp > m) exp -= m;b >>= 1;}return res;
}
LL mod_exp(LL a, LL b, LL m)
{LL res = 1;LL exp = a % m;while (b){if (b & 1) res = mod_mult(res, exp, m);exp = mod_mult(exp, exp, m);b >>= 1;}return res;
}
bool is_prime(const int& n)
{for (int i = 2; i * i <= n; ++i){if (n % i == 0){return false;}}return n != 1;
}
int main()
{int p, a;while (cin >> p >> a && p && a){if (!is_prime(p) && (mod_exp(a, p, p) == a)){cout << "yes" << endl;}else{cout << "no" << endl;}}return 0;
}

1995:

#include <iostream>
using namespace std;typedef long long LL;LL mod_mult(LL a, LL b, LL m)
{LL res = 0;LL exp = a % m;while (b){if (b & 1){res += exp;if (res > m) res -= m;}exp <<= 1;if (exp > m) exp -= m;b >>= 1;}return res;
}
LL mod_exp(LL a, LL b, LL m) {LL res = 1;LL exp = a % m;while (b){if (b & 1) res = mod_mult(res, exp, m);exp = mod_mult(exp, exp, m);b >>= 1;}return res;
}
int main(int argc, char *argv[])
{int Z;cin >> Z;while (Z--){int M, H;cin >> M >> H;int ans = 0;while (H--){int A_i, B_i;cin >> A_i >> B_i;ans += mod_exp(A_i, B_i, M);}ans %= M;cout << ans << endl;}return 0;
}

poj之旅——2429,3641,1995相关推荐

  1. poj之旅——3050

    题目描述:在5 * 5的方格里跳房子,起点是任意位置.将跳过的数连起来组成一个5位数(前导零可能),问一共能组成多少个数字? 思路:当前的状态可以定义为当前位置.当前数字长度.当前数字这三个要素,利用 ...

  2. 国产品牌走国际化还是规模化?

    十年来,多少被我们视为骄傲的民族品牌沉沙折载.直面全球化经济和竞争,刻不容缓.     在盘点IT厂商和渠道重要公司的时 候,一个令人吃惊的结果呈现在我们眼前, 那就是,中国本土成长起来的公司所剩无 ...

  3. GCD and LCM Aizu - 0005(辗转相除)+GCD LCM Inverse POJ - 2429(java或【Miller Rabin素数測试】+【Pollar Rho整数分解】)

    题目:GCD and LCM Aizu - 0005 Write a program which computes the greatest common divisor (GCD) and the ...

  4. POJ 2429 GCD LCM Inverse ★(pollard-ρ DFS枚举)

    题目链接:http://poj.org/problem?id=2429 题目大意:给定gcd(a,b)和lcm(a,b)(<2^63),求a和b,如果有多种情况,输出和最小的情况.   首先gc ...

  5. poj 1995 Raising Modulo Numbers 二分快速幂

    题意:给定n对Ai,Bi,求所有Ai的Bi次方之和对M取模的结果: 思路:二分法求快速幂: #include<cstdio> #include<cstring> #includ ...

  6. Pseudoprime numbers POJ - 3641(快速幂+判素数)

    题意: 给你两个数,p和a:满足两个条件: 1.p不是素数: 2.apa^{p}ap %p==a; 满足则输出yes,反之输出no. 题目: Fermat's theorem states that ...

  7. 【POJ - 1995】Raising Modulo Numbers(裸的快速幂)

    题干: People are different. Some secretly read magazines full of interesting girls' pictures, others c ...

  8. POJ 2429 GCD LCM Inverse

    设答案为ans1,ans2 ans1=a1*gcd,ans2=a2*gcd,a1,a2互质 gcd*a1*b1=lcm,gcd*a2*b2=lcm a1*b1=lcm=(ans1*ans2)/gcd= ...

  9. 求余小技巧 码农场 » POJ 3641 Pseudoprime numbers 题解 《挑战程序设计竞赛》

    // return (a * b) % m LL mod_mult(LL a, LL b, LL m) {LL res = 0;LL exp = a % m;while (b){if (b & ...

最新文章

  1. 调试JDK源码-一步一步看HashMap怎么Hash和扩容
  2. python_安装PIL/pillow
  3. mysql char(36)_MySQL中char(36)被认为是GUID导致的BUG及解决方案
  4. CentOS安装MySQL问题汇总
  5. cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wwma2wne\opencv\module
  6. HDU 2258 Continuous Same Game
  7. MATLAB模糊控制算法,驾驶员制动意图识别,Fuzzy模糊控制算法
  8. MLDN学习笔记 —— Annotation
  9. tenacity -- Python中一个专门用来retry的库
  10. 体声波(BAW)射频滤波器行业调研报告 - 市场现状分析与发展前景预测
  11. MySQL数据库基础学习小终结:连接查询、表结构的修改、约束条件、MySQL与python交互
  12. 三种治疗新冠肺炎中药颗粒获批上市
  13. ffplay 播放 USB camera
  14. 炎龙骑士团-黄金城之迷剧情
  15. 三年内赶超特斯拉?这家车企的底气是什么?
  16. 1114: 逆序 C语言
  17. 数据结构与算法(Python版) | (6) 线性结构---队列、双端队列和列表
  18. 10 知识问答(下)
  19. Linux设备驱动程序学习(十)——PCI驱动程序
  20. SpringCloud整合spring security+ oauth2+Redis实现认证授权

热门文章

  1. 基于单片机高精度PID模糊算法程控电源方案设计
  2. 用友T+财务软件数据库——SQL生成含上级科目名称的标准化凭证表
  3. TJPU-32 分解质因数
  4. k8s 不宕机滚动发布实战笔记
  5. 使用node实现歌词滚动输出
  6. Linux ubuntu 基本美化 还有常用应用安装
  7. mongodb用户管理1
  8. NVIDIA之AI Course:Getting Started with AI on Jetson Nano—Class notes(二)
  9. Kettle的安装和使用
  10. 一位码农的人生自述(十八)------寻卿