社区讨论
灵异事件
P2822[NOIP 2016 提高组] 组合数问题参与者 8已保存回复 17
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 17 条
- 当前快照
- 1 份
- 快照标识符
- @m61hlszc
- 此快照首次捕获于
- 2025/01/18 09:05 去年
- 此快照最后确认于
- 2025/11/04 23:13 4 个月前
我写出了如下代码:
CPP#include<bits/stdc++.h>
using namespace std;
const int N=2000;
int T,k,n,m,c[2005][2005],ans[2005][2005];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>T>>k;
for(int i=0;i<=N;i++){
for(int j=0;j<=i;j++){
if(j==0 || j==i)c[i][j]=1;
else c[i][j]=(c[i-1][j-1]+c[i-1][j])%k;
}
}
for(int i=0;i<=N;i++){
for(int j=0;j<=N;j++){
if(j<=i)ans[i][j]=ans[i-1][j]+ans[i][j-1]-ans[i-1][j-1]+(c[i][j]%k==0);
else ans[i][j]=ans[i][i];
}
}
while(T--){
cin>>n>>m;
cout<<ans[n][min(n,m)]<<"\n";
}
return 0;
}
然后一分不得。然后我下载了第一个数据点,发现在本机上输入是能得到正确的输出的!有巨佬可以解释一下吗??
回复
共 17 条回复,欢迎继续交流。
正在加载回复...