1333:【例2-2】Blah数集

Blah数集

如果用队列不能只求前n个数,因为第n+1个数可能小于第n个数

那么只对求出的前n个数进行排序然后取第n个数显然不是正确答案。

所以用队列复杂度很高,使用数组结合题意来写最简单。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 const int N=1e6+5;
 6 typedef long long ll;
 7 ll a[N];
 8 int main(){
 9     int m,n;
10     while(cin>>a[1]>>n){
11         int rear=1,two=1,three=1;
12         while(rear<n){
13             int t1=a[two]*2+1,t2=a[three]*3+1,t=min(t1,t2);
14             if(t1>t2)three++;
15             else two++;
16             if(a[rear]<t)a[++rear]=t;
17         }
18         cout<<a[rear]<<endl;
19     }
20     
21     return 0;
22 }

 

posted @ 2021-08-25 21:53  Rekord  阅读(856)  评论(0编辑  收藏  举报