牛客春招刷题训练营 - 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;
}
#牛客春招刷题训练营#