wannafly挑战赛14a直角三棱锥,取余+隔板法

直角三棱锥

https://ac.nowcoder.com/acm/problem/15705

x+y+z<=k
x+y+z+d=k
就等价于把k个东西放到4个框里,隔板法
因为可以为空所以先补4个空格,共k-1+4个空格,取3个隔板,分4份
即c(3,k-1+4)

c(3,k+3)=(k+1)*(k+2)*(k+3)/6%m
(k+1)*(k+2)/6*(k+3)会爆longlong,所以%m要放到(k+1)*(k+2)%m
(k+1)*(k+2)*(k+3)/6%m 因为(k+1)*(k+2)*(k+3)%6=0
=(k+1)*(k+2)*(k+3)%(m*6)/6
=(k+1)*(k+2)%(m*6)*(k+3)%(m*6)/6
#include <bits/stdc++.h>

using namespace std;

long long t,k,m;

int main(int argc, char** argv) {
	cin>>t;
	while(t--){
		scanf("%lld%lld",&k,&m);
		long long  ans=1LL*(k+3)*(k+2)%(m*6);
		ans=ans*(k+1)%(6*m)/6;
		cout<<ans<<endl;
	}
	return 0;
}

全部评论

相关推荐

有没有友友知道hr面会问什么我应该反问什么?还有如何防止hr套话啊?还有应该如果催hr推进快一点#字节#OPPO#hr面
牛客989988346号:职业规划,优缺点,为什么选择这个岗,对应聘公司产品的了解和满意度,如果让你改进公司产品你会怎么做,对ai(新技术)的了解,有无其他offer,什么时候能到岗
点赞 评论 收藏
分享
评论
12
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务