problem

T组数据,每组包含n对ai,bi和一个p。
每组输出一个答案,∑ni=1aibi%p∑i=1naibi%p \sum_{i=1}^n ai^{bi} \%p。

solution

快速幂模板。

1.把b拆成二进制形如101110之类,设b有k位,则b = ck−1∗2k−1+ck−2∗2k−2...+c0∗20ck−1∗2k−1+ck−2∗2k−2...+c0∗20 c_{k-1}*2^{k-1}+ c_{k-2}*2^{k-2}...+c_0*2^0
2.ab=ack−1∗2k−1∗ack−1∗2k−2....ab=ack−1∗2k−1∗ack−1∗2k−2.... a^b = a^{c_{k-1}*2^{k-1}} *a^{c_{k-1}*2^{k-2}}....
3.因为a2i=(a2i−1)2a2i=(a2i−1)2 a^{2^i} = (a^{2^{i-1}})^2 ,所以偶数时直接*2,奇数多乘一个a就好了。

codes

#include<iostream>
using namespace std;
typedef long long LL;
LL pow(LL a, LL b, LL p){LL x = 1;while(b){if(b&1)x = x*a%p;a = a*a%p;b >>= 1;}return x%p;
}
int main(){int _w;  cin>>_w;while(_w--){int n, p;  cin>>p>>n;LL ans = 0;for(int i = 1; i <= n; i++){int a, b;  cin>>a>>b;ans = (ans+pow(a,b,p))%p;}cout<<ans<<'\n';}return 0;
}

【poj1995】Raising Modulo Numbers相关推荐

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

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

  2. 【SPOJ】Power Modulo Inverted(拓展BSGS)

    [SPOJ]Power Modulo Inverted(拓展BSGS) 题面 洛谷 求最小的\(y\) 满足 \[k\equiv x^y(mod\ z)\] 题解 拓展\(BSGS\)模板题 #inc ...

  3. 【链表】Add Two Numbers

    题目: You are given two linked lists representing two non-negative numbers. The digits are stored in r ...

  4. 【CF678A】 Johny Likes Numbers

    题目 题意翻译 Jonhy非常喜欢数N和K,现在Johny要找一个可以整除K的最小整数x,且满足x>n. 题目描述 Johny likes numbers n n and k k very mu ...

  5. 【HDOJ】1058 Humble Numbers

    简单题,注意打表,以及输出格式.这里使用了可变参数. 1 #include <stdio.h> 2 3 #define MAXNUM 5845 4 #define ANS 20000000 ...

  6. Raising Modulo Numbers

    http://poj.org/problem?id=1995 题解:快速幂 /* *@Author: STZG *@Language: C++ */ //#include <bits/stdc+ ...

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

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

  8. 【MongoDB】事务Transaction numbers are only allowed on a replica set member or mongos

    问题描述 使用python库pymongo进行事务管理,在发生异常时session无法完成回滚. 问题定位 经过查阅,发现当MongoDB为单例运行时是无法完成回滚操作的,只有在开启副本集的时候才能使 ...

  9. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

最新文章

  1. 常用免费精品Web应用列表(转)
  2. pip镜像源永久设置成国内镜像源,提升下载速度
  3. 预处理指令pragma常见用法集锦(#pragma once、#pragma comment和#pragma warning)
  4. 从Google Maglev说起,如何造一个牛逼的负载均衡?
  5. seo日常工作表_seo工作者的日常和苦与甜
  6. Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解
  7. Ajax 六. JSON数据解析
  8. struts2 s:file标签使用及文件上传例子
  9. rtmp,rtsp,hLS区别
  10. 计算机网络(北京理工大学出版社)课后习题答案
  11. Android 学习资料
  12. 7-2 两个有序链表序列的合并 (20分)
  13. el-dialog 圆角 白边问题
  14. Android 移动网络接入点名称(APN)
  15. 二手车APP软件开发主要功能
  16. Cannot get property '......' on extra properties extension as it does not exist
  17. win7每次打开计算机都是小框,win7电脑为什么每次开机都会自动启动记事本文档?...
  18. java jtextarea边框_JTextArea在java swing中的边框
  19. tekton入门-细数tekton用到的那些images
  20. 爬虫:爬取某个商品的历史价格并绘制折线图

热门文章

  1. 算法求解方法与思路的总结
  2. matlab rem与mod 的区别
  3. Tricks(二十)—— 从 N 个数中等概率地产生 M 个数
  4. Python 中的全局变量
  5. python编程语言-Python简史:开发者的小小副业如何成为全球最热编程语言?
  6. python资料-大牛分享python资料
  7. python语言能做什么-python语言用来干什么
  8. python基础30个常用代码-30个Python常用极简代码,拿走就用
  9. 零基础学python难吗-零基础入门学习Python技术难不难?
  10. python基础编程语法-编程入门02:Python基础语法