HDU5187 zhx's contest(计数问题)
主题链接:
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;
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
HDU5187 zhx's contest(计数问题)的更多相关文章
- HDU - 5187 - zhx's contest (高速幂+高速乘)
zhx's contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) To ...
- HDU 5187 zhx's contest(防爆__int64 )
Problem Description As one of the most powerful brushes, zhx is required to give his juniors n probl ...
- HDU5187 zhx's contest
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission ...
- Andrew Stankevich's Contest (1)
Andrew Stankevich's Contest (1) 打一半出门了,回来才补完了...各种大数又不能上java..也是蛋疼无比 A:依据置换循环节非常easy得出要gcd(x, n) = 1 ...
- HDU - 5186 - zhx's submissions (精密塔尔苏斯)
zhx's submissions Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- HDU 5186 zhx's submissions (进制转换)
Problem Description As one of the most powerful brushes, zhx submits a lot of code on many oj and mo ...
- HDU2481 Toy
Time Limit: 16000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission ...
- 【HDU5187】zhx's contest
[问题描述] 作为史上最强的刷子之一,zhx的老师让他给学弟(mei)们出n道题.zhx认为第i道题的难度就是i.他想要让这些题目排列起来很漂亮. zhx认为一个漂亮的序列{ai}下列两个条件均需满足 ...
- zhx and contest (枚举 + dfs)
zhx and contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
随机推荐
- 【转】移动Web开发-点击事件及页面滚动
点击事件 移动端浏览器点击事件默认有300ms的延迟 移动端实现弹性滚动 安卓局部滚动 滚动条出现bug,解决方案:Android只是用全局滚动 模拟全局滚动,加上padding-top及paddin ...
- [GraphQL] Write a GraphQL Mutation
In order to change the data that we can query for in a GraphQL Schema, we have to define what is cal ...
- Android 虚拟机学习总结Dalvik虚拟机介绍
1.Dalvik虚拟机与Java虚拟机的最显著差别是它们分别具有不同的类文件格式以及指令集.Dalvik虚拟机使用的是dex(Dalvik Executable)格式的类文件,而Java虚拟机使用的是 ...
- ssh登录很慢,登录上去后速度正常问题的解决方法
1. DNS反向解析的问题 OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法.如果客户机的IP没有域名,或者 ...
- Linux 网络编程系列教程
一.基础理论篇 01.网络协议入门 02.LAN.WAN.WLAN.VLAN 和 VPN 的区别 03.IP 地址介绍 04.广播地址介绍 05.无连接和面向连接协议的区别 06.因特网的IP协议是不 ...
- Windows 计算程序运行时间(高精度计时)
首先,认识一下clock()和GetTickCount(): 一.clock()clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t.在MSDN中,查得对clock函数定义如下 ...
- kali 系统的源
sources.list deb http://http.kali.org/kali kali-rolling main non-free contrib deb http://mirrors.ust ...
- 1069. The Black Hole of Numbers (20)【模拟】——PAT (Advanced Level) Practise
题目信息 1069. The Black Hole of Numbers (20) 时间限制100 ms 内存限制65536 kB 代码长度限制16000 B For any 4-digit inte ...
- Oracle成长点点滴滴(2)— 权限管理
权限管理中权限包含系统权限以及对象权限.在解说权限管理之前我们先来了解用户的创建以及授权这些前提. 1. 创建用户以及授权 Ø 默认用户 既然提到了创建用户,首先必须先把用户的知识攻克了. ...
- 怎么实现登录之后跳转到登录之前的页面?SpringMVC+Freemarker
项目中,想实现一个功能. 直接访问某个需要登录的url,比如/addArticle,可能会跳转到登录页面login.html. 登录成功之后,自动跳转到/addArticle这个登录前的页面,继续登录 ...