社区讨论

90求助

P2822[NOIP 2016 提高组] 组合数问题参与者 3已保存回复 5

讨论操作

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

当前回复
5 条
当前快照
1 份
快照标识符
@m2n6h925
此快照首次捕获于
2024/10/24 18:46
去年
此快照最后确认于
2025/11/04 16:19
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
const int maxn=2024;
long long a[maxn][maxn];
int main(){
//	freopen("T1.in","r",stdin);
//	freopen("T1.out","w",stdout);
	int t,k;
	cin>>t>>k;
	while(t--){
		int n,m,ans=0;
		cin>>n>>m;
		for(int i=1;i<=n;i++){
			a[i][1]=i;
			int x=i;
			if(i>m)x=m;
			for(int j=2;j<=x;j++){
				a[i][j]=(a[i-1][j]+a[i-1][j-1])%k;
				if(j==i)a[i][j]=1;
			}
		}
		for(int i=1;i<=n;i++){
			int x=i;
			if(i>m)x=m;
			for(int j=1;j<=x;j++)
				if(a[i][j]%k==0)ans++;
		}
		cout<<ans<<endl;
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}

回复

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

正在加载回复...