1 条题解
-
0
思路
2x+1与3x+1两个单调生成流合并,等值两指针同时推进,百万项;用双指针数组实现队列式合并。
参考程序(C++11)
#include <bits/stdc++.h> using namespace std; int main(){long long a;int n;while(cin>>a>>n){vector<long long>v(n);v[0]=a;int p=0,q=0;for(int i=1;i<n;i++){long long x=2*v[p]+1,y=3*v[q]+1;v[i]=min(x,y);if(v[i]==x)p++;if(v[i]==y)q++;}cout<<v[n-1]<<'\n';}}
- 1