主题链接:

http://acm.hdu.edu.cn/showproblem.php?pid=5187

题意:

从1~n,有多少种排列

使得 a1~ai 满足单调递增或者单调递减。

ai~an 满足单调递增或者递减。

非常明显的组合问题

从n个数种选出i个数 剩下的数要满足单调递增或者递减或者递减的规律那么方式唯一

ans = (C(N,0)+C(N,1)+......+C(N,N)) =2^N;

可是这样的情况下 单调递增和单调递减算了两遍  因此要减2

ans = 2^n - 2;

注意n = 1的情况 ,因为n比較大 ,要注意乘法溢出的情况

代码例如以下:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std; typedef long long LL; LL multi(LL a,LL b, LL c)
{
LL ans = 0;
while(b){
if(b&1){
ans= (ans+a)%c;
b--;
}
b>>=1;
a=(a+a)%c;
}
return ans;
} LL quick_mod(LL a,LL b,LL c)
{
LL ans = 1;
while(b){
if(b&1){
ans = multi(ans,a,c);
b--;
}
b>>=1;
a=multi(a,a,c);
}
return ans ;
}
int main()
{
LL n,p;
while(~scanf("%lld%lld",&n,&p)){
if(n==1){
printf("%d\n",1%p);
continue;
}
LL ans = 2;
ans = quick_mod(ans,n,p);
ans =(ans - 2 + p)%p;
printf("%I64d\n",ans);
}
return 0;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

最新文章

  1. .Net Html如何上传图片到一般应用程序
  2. 使用VS Code开发调试.NET Core 多项目
  3. gspx请求周期(备忘)
  4. 续Gulp使用入门三步压缩图片
  5. JVM的stack和heap,JVM内存模型,垃圾回收策略,分代收集,增量收集
  6. (剑指Offer)面试题35:第一个只出现一次的字符
  7. yeoman运行grunt serve 提示错误
  8. HUNNU--湖师大--11407--It Is Cold
  9. 安装cocopods 更新ruby
  10. 安装phpredis-master步骤备忘
  11. 百度站长平台MIP
  12. sqlserver-表分区
  13. jetty 代码启动
  14. Canvas控件之CanvasGroup
  15. pandas 基础用法
  16. group by 和 distinct 的区别
  17. Flexpod的开关机顺序
  18. bzoj1058: [ZJOI2007]报表统计 stl xjbg
  19. PHP实现连接设备、通讯和发送命令的方法
  20. python基础(11)--面向对象

热门文章

  1. js如何生成[n,m]的随机数
  2. [Angular] Using useExisting provider
  3. jquery-10 jquery中的绑定事件和解绑事件的方法是什么
  4. 在VS2015中用C++创建DLL并用C++调用且同一时候实现对DLL的调试
  5. iOS --- UIColor中使用16进制选取颜色
  6. Android自己主动检測版本号及自己主动升级
  7. RSA解密时javax.crypto.BadPaddingException: Data must start with zero
  8. J2EE学习篇之--JQuery技术具体解释
  9. 【SSH2(理论+实践)】--图说Struts2的执行
  10. javaScript实现简单网页倒计时代码