牛客春招刷题训练营 - 2025.4.15 题解

活动地址:牛客春招刷题训练营 - 编程打卡活动

Easy 构造A+B

简要题意

给定 ,求能否构造 对互异正整数二元组 满足

Solution

显然 ,共有 对满足,故判断 的大小关系即可。

Code

void R()
{
	int n,k;
	cin>>n>>k;
	if (k<n) cout<<"YES";
	else cout<<"NO";
	return;
}

Medium 小红的双生排列

简要题意

求邻项之和为奇数的排列数。

Solution

显然奇偶数分别出现在奇/偶数号位置上。

特别地,当 为奇数时,奇数号位置一定是奇数,偶数号位置一定是偶数。

然后全排列数等于阶乘,就做完了。

Code

void R()
{
	constexpr int N=1e5+7,P=1e9+7;
	vector<i64> fac(N);
	fac[0]=1;
	for (int i=1;i<N;i++)
		fac[i]=fac[i-1]*i%P;

	int n;
	cin>>n;
	i64 ans=fac[n/2]*fac[(n+1)/2];
	if (n%2==0) ans*=2;
	cout<<ans%P;
	return;
}

Hard 【模板】前缀和

简要题意

给定数组,若干次询问区间和。

Solution

预处理出前缀和,区间和就是前缀和数组的后减前。

Code

void R()
{
	int n,q;
	cin>>n>>q;
	vector<i64> a(n+1);
	for (int i=1;i<=n;i++)
		cin>>a[i];
	partial_sum(a.begin(),a.end(),a.begin());
	for (int i=0;i<q;i++)
	{
		int l,r;
		cin>>l>>r;
		cout<<a[r]-a[l-1]<<'\n';
	}
	return;
}
#牛客春招刷题训练营#
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务