Java教程

1333:【例2-2】Blah数集

本文主要是介绍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 }

 

这篇关于1333:【例2-2】Blah数集的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!