呵呵呵

来源:互联网 发布:连锁店管理系统源码 编辑:程序博客网 时间:2024/04/30 02:39

想知道为什么过不了后面的点……恼火

单峰数列。规律是2^n-2。

#include<cstdio>#include<algorithm>#include<cstring>long long a[12]={0,1,2,6,14,30,62,126,254,510,1022};using namespace std;long long tot,n,p;long long mpow( long long b ){long long rt=1;long long a=2;for(rt;b;b>>=1,a=((a%p)*(a%p))%p)if(b&1)rt=((rt%p)*(a%p))%p;return rt;}int main(){freopen("sequence.in","r",stdin);freopen("sequence.out","w",stdout);while(scanf("%I64d%I64d",&n,&p)!=EOF){if(p==1) printf("0\n");else {if(n<=10)printf("%I64d\n",a[n]%p);else{long long tot=mpow(n);printf("%I64d\n",((tot-2)%p+p)%p);}}}return 0;}


0 0
原创粉丝点击