HDU 5666
2016-04-17 22:26
309 查看
//题解BC上有 Round #80 1002
#include <algorithm> #include <iostream> #include <string.h> #include <stdlib.h> #include <stdio.h> using namespace std; long long multi(long long a, long long b, long long p) //快速乘法 因为long long会爆 { long long sum = 0; while(b) { if(b & 1) { sum += a; sum %= p; } a *= 2; a %= p; b >>= 1; } return sum; } int main() { int t; cin>>t; while(t--) { long long q, p; cin>>q>>p; cout<<multi(q - 1, q - 2, 2 * p) / 2 <<endl; } return 0; }
相关文章推荐
- iOS --- 理解Runtime机制及其使用场景
- Leetcode题解15 58. Length of Last Word
- 在texlive下使用CJK的3条小心得
- Java设置GUI的窗口图标
- PHP文件下载功能
- BFS模板
- Light oj 1149 - Factors and Multiples【最大匹配】
- 使用Windows上SourceInsight工具建立分析Linux下uboot源码工程
- 彩色视频转换为灰度视频输出
- LeetCode 101. Symmetric Tree
- java学习笔记(2)基本数据类型对象包装类
- CSS相关知识二
- 周结
- json中date类型数据为空造成转JAVA对象失败
- 开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !
- iOS 通知传值(逆传)
- 蛇形矩阵 (长沙理工大学第十一届程序设计竞赛)
- 开源项目托管GitHub
- asp.net发送短信
- 20145127《java程序设计》第七周学习总结