2 条题解

  • 0
    @ 2025-10-8 16:52:45
    #include<bits/stdc++.h> 
    using namespace std;
    typedef long long LL;
    const LL p=1e5+3;
    LL fac[2100];
    LL qpow(LL a,LL b)
    {
    	LL ans=1;
    	for(;b;b>>=1)
    	{
    		if(b&1)ans=ans*a%p;
    		a=a*a%p;
    	}
    	return ans;
    }
    LL C(LL n,LL m)
    {
    	return fac[n]*qpow(fac[m],p-2)%p*qpow(fac[n-m],p-2)%p;
    }
    
    int main()  
    {
    	int a,b,c,d,k;scanf("%d%d%d%d%d",&a,&b,&c,&d,&k);
    	fac[0]=1;for(int i=1;i<=2000;i++)fac[i]=fac[i-1]*i%p;
    	LL ans=0;
    	for(int i=0;i<=min(a,b);i++)
    	{
    		if( k-i>min(a+c-i,d) )continue;
    		LL a1=C(b,i);
    		LL a2=C(d,k-i);
    		LL a3=C(a,i);
    		LL a4=C(a+c-i,k-i);
    		ans=(ans+a1*a2%p*a3%p*a4%p*fac[i]%p*fac[k-i]%p)%p;
    	}
    	printf("%lld\n",ans);
    	return 0;  
    }  
    
    • 0
      @ 2025-10-8 16:52:38
      #include<bits/stdc++.h> 
      using namespace std;
      typedef long long LL;
      const LL p=1e5+3;
      LL fac[2100];
      LL qpow(LL a,LL b)
      {
      	LL ans=1;
      	for(;b;b>>=1)
      	{
      		if(b&1)ans=ans*a%p;
      		a=a*a%p;
      	}
      	return ans;
      }
      LL C(LL n,LL m)
      {
      	return fac[n]*qpow(fac[m],p-2)%p*qpow(fac[n-m],p-2)%p;
      }
      
      int main()  
      {
      	int a,b,c,d,k;scanf("%d%d%d%d%d",&a,&b,&c,&d,&k);
      	fac[0]=1;for(int i=1;i<=2000;i++)fac[i]=fac[i-1]*i%p;
      	LL ans=0;
      	for(int i=0;i<=min(a,b);i++)
      	{
      		if( k-i>min(a+c-i,d) )continue;
      		LL a1=C(b,i);
      		LL a2=C(d,k-i);
      		LL a3=C(a,i);
      		LL a4=C(a+c-i,k-i);
      		ans=(ans+a1*a2%p*a3%p*a4%p*fac[i]%p*fac[k-i]%p)%p;
      	}
      	printf("%lld\n",ans);
      	return 0;  
      }  
      
      • 1

      *【组合数:综合计算】车的放置

      信息

      ID
      618
      时间
      1000ms
      内存
      128MiB
      难度
      4
      标签
      (无)
      递交数
      55
      已通过
      27
      上传者