HDU5187 zhx's contest(计数问题)
2024-08-31 22:03:07
主题链接:
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;
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
最新文章
- .Net Html如何上传图片到一般应用程序
- 使用VS Code开发调试.NET Core 多项目
- gspx请求周期(备忘)
- 续Gulp使用入门三步压缩图片
- JVM的stack和heap,JVM内存模型,垃圾回收策略,分代收集,增量收集
- (剑指Offer)面试题35:第一个只出现一次的字符
- yeoman运行grunt serve 提示错误
- HUNNU--湖师大--11407--It Is Cold
- 安装cocopods 更新ruby
- 安装phpredis-master步骤备忘
- 百度站长平台MIP
- sqlserver-表分区
- jetty 代码启动
- Canvas控件之CanvasGroup
- pandas 基础用法
- group by 和 distinct 的区别
- Flexpod的开关机顺序
- bzoj1058: [ZJOI2007]报表统计 stl xjbg
- PHP实现连接设备、通讯和发送命令的方法
- python基础(11)--面向对象
热门文章
- js如何生成[n,m]的随机数
- [Angular] Using useExisting provider
- jquery-10 jquery中的绑定事件和解绑事件的方法是什么
- 在VS2015中用C++创建DLL并用C++调用且同一时候实现对DLL的调试
- iOS --- UIColor中使用16进制选取颜色
- Android自己主动检測版本号及自己主动升级
- RSA解密时javax.crypto.BadPaddingException: Data must start with zero
- J2EE学习篇之--JQuery技术具体解释
- 【SSH2(理论+实践)】--图说Struts2的执行
- javaScript实现简单网页倒计时代码