10.09 悲伤赛

Posted cocacolalala

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10.09 悲伤赛相关的知识,希望对你有一定的参考价值。

今天比赛换了一个位置,emmm?排除风水影响……

预计得分 100+10+??

实际得分  60+0+30

先说第一题,比较水

通过组合数可以退出一个公式

化简之后得  2^n-1*(n-2)+1

其实我是观察找规律……

我们把1到n的区间中任意砍一刀,固定前区的最后一个数

例如:1 2 3 4 5

在三和四中间砍一刀  固定三  前区的组合方式就是C2 1,后区是C2 1,相乘即可

但是60分的原因是乘积爆long long了……

所以还要用快速乘(注意要在快速幂里用)

代码如下:

#include<bits/stdc++.h>
#include<cctype> 
using namespace std; 
char buf[1<<20],*p1,*p2; 
#define GC (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<20,stdin),p1==p2)?0:*p1++) 
template<class T> inline void read(T &n){ 
    char ch=GC;T w=1,x=0; 
    while(!isdigit(ch)){if(ch==-) w=-1;ch=GC;} 
    while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^48);ch=GC;} 
    n=x*w; 
}
long long mod;
long long anss;

inline long long cheng(long long a,long long b){
    return (a*b-(long long)((long double)a/mod*b)*mod+mod)%mod;
}

long long ksm(long long a,long long b)
{
long long ans=1;
while(b)
{
if(b&1)ans=cheng(ans,a)%mod;
a=cheng(a,a)%mod;
b=b/2;
}
return ans;
}
 
int main()
{
    
long long n;
cin>>n>>mod;

long long f=ksm(2,n-1)%mod;

anss=cheng(f,(n-2))%mod;

anss+=1;

anss%=mod;

cout<<anss;

}

 

以上是关于10.09 悲伤赛的主要内容,如果未能解决你的问题,请参考以下文章

10.09随笔

10.09——今日文章收集

10.09T1

(10.09作业)学生选课数据库SQL语句练习题

Daily Sketch | October ( 10.02~10.09 )

ptxas 抱怨(输入)我悲伤的设备功能