求助RE#1
  • 板块灌水区
  • 楼主hwc2011
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/24 16:03
  • 上次更新2024/8/24 16:17:23
查看原帖
求助RE#1
1313003
hwc2011楼主2024/8/24 16:03

题目

#include<bits/stdc++.h>
using namespace std;
int sum1[10000005],sum2[10000005],ans[10000005],len1,len2,n,m,mod=1000000;
inline void mul(int a[],int &len,int x){
	int flag1=0,flag2=0;
    for(register int i=1;i<=len;i++){
        flag1=a[i]*x;
        a[i]=flag1%mod+flag2;
        flag2=flag1/mod;
    }
    if(flag2) a[++len]=flag2;
}
int main(){
	scanf("%d%d",&n,&m);
	sum1[1]=sum2[1]=len1=len2=1;
	for(int i=n+3,l=1;l<=m;i--,l++) mul(sum1,len1,i);
	for(int i=n+2,l=1;l<=n+2;i--,l++) mul(sum1,len1,i);
	mul(sum2,len2,2);
	for(int i=n+2,l=1;l<=m;i--,l++) mul(sum2,len2,i);
	for(int i=n+1,l=1;l<=n+1;i--,l++) mul(sum2,len2,i);
	for(int i=1;i<=len1;i++){
		if(sum1[i]<sum2[i]){
			sum1[i+1]--;
			sum1[i]+=mod;
		}
		ans[i]=sum1[i]-sum2[i];
	}
	if(!ans[len1]) len1--;
	printf("%d",ans[len1]);
	for(int i=len1-1;i;i--) printf("%06d",ans[i]);
}
2024/8/24 16:03
加载中...