hdu 5187(快速幂)
来源:互联网 发布:android存储数据的方式 编辑:程序博客网 时间:2024/06/15 01:00
题意:给出一个数字n,然后需要把[1,n]重新排列,规则是
1:a1..ai 是单调递减或者单调递增的。2:ai..an 是单调递减或者单调递增的。
问两种条件都满足的序列有多少种,答案需要mod p。
题解:先暴力看看结果,可以找到规律是2^n - 2,可以用快速幂取模来解,但是因为数据范围是10^18,两数相乘就已经爆掉了,所以要再写一个函数,乘法换加法。
#include <stdio.h>#define ll long long ll multi(ll m, ll n, ll p) {ll res = 0;while (n) {if (n & 1)res = (res + m) % p;m = (m + m) % p;n >>= 1;}return res;}ll power(ll m, ll n, ll p) {ll res = 1;while (n) {if (n & 1)res = multi(res, m, p);m = multi(m, m, p);n >>= 1;}return res;}int main() {ll n, p;while (scanf("%lld%lld", &n, &p) != EOF)printf("%lld\n", n == 1 ? 1 % p : (power(2, n, p) - 2 + p) % p);return 0;}
0 0
- hdu 5187(快速幂)
- hdu 5187 快速幂
- hdu 5187 快速幂快速乘法
- hdu 5187(快速幂+快速乘法)
- hdu 5187 zhx and contest(快速幂、快速乘法)
- zhx's contest (hdu 5187 快速幂+快速乘法)
- HDU - 5187 - zhx's contest (快速幂+快速乘)
- HDU 5187 zhx's contest(快速幂+快速乘法)
- HDU 5187 zh's contest(快速幂 + 快速乘)
- hdu 5187 zhx's contest 快速幂,快速乘
- Hdu 5187 zhx's contest【思维+快速幂+快速乘】
- HDU 5187 思维+快速幂模板
- 快速幂&快乘 HDU 5187
- HDU 4506 快速幂
- hdu 4506 快速幂
- 快速幂 hdu 2035
- HDU 4506 快速幂
- 快速幂 hdu 1061
- SQL Server 数据库安全
- 1读取、添加联系人
- 2015阿里秋招其中一个算法题(经典)
- HDU1.2.6解题报告
- TransactionScope使用方法
- hdu 5187(快速幂)
- C语言 变量的声明
- 桶排序问题
- 第二周 项目三 时间类(一)
- hdu 5188 zhx and contest ( 有限制的0/1背包)
- SQL Server 开发指南
- VS2012 webservice的创建并在iis上发布,发布完后解决“测试窗体只能用于来自本地计算机的请求.”问题视频教程
- 使用literalify库
- 2 我的第一个手机提交数据到tomcat服务器