社区讨论

如果你 50 pts 请看

P1313[NOIP 2011 提高组] 计算系数参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo11z72b
此快照首次捕获于
2023/10/22 13:53
2 年前
此快照最后确认于
2023/11/02 13:22
2 年前
查看原帖
检查一下快速幂 但应该只有我这种蒟蒻把快速幂写错了
CPP
//#pragma GCC optimize(3)
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
//#include<cctype>
#include<algorithm>
#include<queue>
#include<map>
//#include<functional>
#define INF 0x3f3f3f3f
#define int long long
#define init(name,data) memset(name,data,sizeof(name))
     
using namespace std;

const int maxn=10011,mod=10007;// 

int a,b,k,n,m,con[maxn];

int qpow(int _a,int _b){
	int _ans=1;
	for(int i=_b,_num=_a;i;i>>=1){
		if(_b&1)_ans=(_ans*_num)%mod;
		_num=(_num*_num)%mod;
	}
	return _ans;
}

signed main(){
	scanf("%lld%lld%lld%lld%lld",&a,&b,&k,&n,&m);
	con[1]=con[2]=1;
	a%=mod,b%=mod;
	for(int i=2;i<=k;i++){
		for(int j=i+1;j>=1;j--){
			con[j]=(con[j-1]+con[j])%mod;
		}
	}
	printf("%lld",(qpow(a,n)*qpow(b,m))%mod*con[n+1]%mod);
	return 0;
}

/* 



*/ 
其中 if(_b&1)_ans=(_ans*_num)%mod; 改成 if(i/*_b&1*/)_ans=(_ans*_num)%mod;

回复

0 条回复,欢迎继续交流。

正在加载回复...