社区讨论

为什么只有50,并且隔一个点错一个QAQ,求帮助

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

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@mi5i14xh
此快照首次捕获于
2025/11/19 12:25
4 个月前
此快照最后确认于
2025/11/19 12:25
4 个月前
查看原帖
CPP
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm> 
#include<cstdlib>
using namespace std;
    long long a[2002][2002]={0};
    int sum[1001]={0},n[10001],m[10001],t,k,b;
int main()
{
    scanf("%d %d",&t,&k);
    for( b=1;b<=t;b++)
    scanf("%d %d",&n[b],&m[b]);
    a[1][1]=1;
    for(int i=2;i<=2000;i++)
    for(int j=1;j<=i;j++)
    a[i][j]=((a[i-1][j]%k)+(a[i-1][j-1]%k))%k;
    for(int p=1;p<=t;p++)
        for(int i=1;i<=n[p]+1;i++)
            for(int j=1;j<=min(i,m[p]+1);j++)
    {
        if(a[i][j]==0)
        sum[p]++;
    }
    for(int i=1;i<=t;i++)
    printf("%d\n",sum[i]);
    return 0;
}

回复

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

正在加载回复...