题解: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;
}
posted @ 2024-10-19 08:52  cly312  阅读(13)  评论(0)    收藏  举报