题解:CF2025B Binomial Coefficients, Kind Of
根据题意,错误的递推公式是 \(C_{n,k} = C_{n,k-1} + C_{n-1,k-1}\),而错误的 \(C_{n,k} = C_{n-1,k} + C_{n-1,k-1}\) 。通过观察,可以发现对于 \(k < n\) 的情况,\(C_{n,k} = 2^k\)。因此,我们只需预先计算 \(2^k\),然后对于每个查询直接输出对应的结果。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MOD=1e9+7;
int main(){
int t;
cin>>t;
vector<int> n(t);
for(auto &x:n) cin>>x;
vector<int> k(t);
for(auto &x:k) cin>>x;
int maxk=0;
for(auto &x:k) maxk=max(maxk,x);
vector<long long> pow2(maxk+1,1);
for(int i=1;i<=maxk;i++) pow2[i]=(pow2[i-1]*2)%MOD;
for(int i=0;i<t;i++) cout<<pow2[k[i]]<<"\n";
return 0;
}

浙公网安备 33010602011771号