HDU 5187 zhx's contest 快速幂,快速加
2016-04-24 21:03
405 查看
题目链接:
hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5187bc(中文): http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=571&pid=1002
题解:
求(2^n-2)%p,题目看错,一天都没什么思路,冷静一下。。代码:
#include<iostream> #include<cstring> #include<cstdio> using namespace std; typedef long long LL; LL _n, p; //快速加 -> x*n LL pow_add(LL x,LL n) { LL ret = 0, base = x; while (n) { if (n & 1) { ret = (ret + base) % p; } base = (base + base) % p; n /= 2; } return ret; } //快速幂 -> x^n LL pow_mod(LL x,LL n) { LL ret = 1, base = x; while (n) { if (n & 1) { ret = pow_add(ret, base); } base = pow_add(base, base); n /= 2; } return ret; } int main() { while (scanf("%lld%lld", &_n, &p) == 2 && _n) { LL ans = pow_mod(2,_n); ans = (ans + p - 2) % p; printf("%lld\n", ans); } return 0; }
相关文章推荐
- 《Linux内核分析》 期中总结
- Android WebView 开发详解(一)
- Linux快捷键
- Qt 基础:国际化
- POJ_3616_Milking_Time_(动态规划)
- 数组、集合、字符串操作、函数小结
- 小结struts2应用开发步骤和流程(三)
- Leetcode no. 104
- DayDayUP_linux运维学习_增加swap空间
- 作业6
- 一个hitbernate配置文件,带几个表(注意mapping);如果连接字符串没有设置utf-8,向insert mysql 会产生乱码(utf8 或 utf-8)
- Leetcode Power of Four 342
- HTTP缓存相关头
- 非极大抑制(Non-maximum suppression)
- 关于Handler以及Looper,MessageQueen等
- hdoj-5591-ZYB's Game
- KMP算法
- LeetCode 242. Valid Anagram C语言
- 排序算法-希尔排序
- 时间复杂度与空间复杂度