#include<iostream> #include<algorithm>//lower_bound函数 using namespace std; typedef long long ll; const int N = 1e6+5; int n,z; ll num[N]; int main() { cin>>num[0]>>num[1]; cin>>z; for(int i=2;i<=z;i++) num[i]=num[i/2]+num[i/4]; cin>>n; while(n--) { ll t; cin>>t; auto ans=lower_bound(num,num+z,t)-num;//得到下标 if(num[ans]==t) cout<<ans<<endl; else cout<<-1<<endl; } return 0; }
标签:bound,数列,int,ll,成熟,cin,num,ans,P1851 From: https://www.cnblogs.com/lhf123/p/17430811.html