求助!请大佬康康我的30分代码
查看原帖
求助!请大佬康康我的30分代码
504189
qqmax杨行健楼主2021/8/6 20:57
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#define F(a,b,c) for(int a=b;a<=c;a++)
#define R(a,b,c) for(int a=b;a>=c;a--)
using namespace std;
struct Big{
	int l,x[20];
	Big operator * (int b){
		Big c;
		c.l=l;
		memset(c.x,0,sizeof(c.x));
		F(i,0,l-1){
			c.x[i]=x[i]*b;
		}
		F(i,0,c.l-1){
			while(c.x[i]>9){
				c.x[i+1]+=c.x[i]/10;
				c.x[i]%=10;
				if(++i==c.l)++c.l;
			}
		}
		return c;
	}
	void Print(){
		R(i,l-1,0)cout<<x[i];
	}
};
Big fic,fin,ans;
int n,m;
int main(){
	cin>>n>>m;
	ans.x[0]=1;
	ans.l=1;
	ans=ans*(n+1);
	ans=ans*(n*(n+3)+2*m);
	F(i,2,n){
		ans=ans*i;
	}
	F(i,n-m+3+1,n+2){
		ans=ans*i;
	}
	ans.Print();
	return 0;
}

用的柿子是ans=A(n,n)A(n+1,2)A(n+3,m)+2m(n+1)A(n+2,m-1)A(n,n),化简成了ans=((n!(n+1)(n+2)!)/(n-m+3))(n(n+3)+2*m)

本人蒟蒻,在线等,急!

2021/8/6 20:57
加载中...