B.病毒扩散(组合数学)

B.病毒扩散(组合数学)

题目传送门

题意:本题的题意可以转换为t秒内走到(x,y)的病毒有多少。即可转化有多少种路径走到(x,y)(可以选择x+1,y+1,或不动)
显然根据乘法原理有:


AC代码:

#include<bits/stdc++.h>
using namespace std;
const int mod=998244353,N=5e3;
typedef long long ll;
int c[N+5][N+5];
void fun(){
	for(int i=0;i<=N;i++) c[i][0]=c[i][i]=1;
	for(int i=2;i<=N;i++)
		for(int j=1;j<i;j++)
			c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;
	}
int main(){
	fun();
	int n;
	scanf("%d",&n);
	while(n--){
		int x,y,t;
		scanf("%d%d%d",&x,&y,&t); 
		printf("%lld\n",(ll)c[t][x+y]*c[x+y][x]%mod);
	}
	return 0;
}
全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务