📋 个人简介

🎉大家好,我是3月份新人榜排名第三的 ༺Blog༒Hacker༻
💬支持我:点赞👍+收藏⭐️+留言📝
🌺格言:༺永做优质༒programmer༻

📣Blah数集

🌺题目描述
🍊大数学家高斯小时候偶然间发现一种有趣的自然数集合Blah,对于以a为基的集合Ba定义如下:

🍋a是集合Ba的基,且a是Ba的第一个元素;

🍋如果x在集合Ba中,则2x+1和3x+1也都在集合Ba中;

🍋没有其他元素在集合Ba中了。

🍊现在小高斯想知道如果将集合Ba中元素按照升序排列,第N个元素会是多少?

🌺输入格式
🍊一行包括两个正整数,集合的基a(1<=a<=50))以及所求元素序号n(1<=n<=1000000)。

🌺输出格式
🍊一行一个正整数,表示集合Ba的第n个元素值

🍊样例1数据
input

1 100
output

418
🍊样例2数据
input

28 5437
output

900585

🌺数据规模与约定

1≤a≤50,
1≤n≤10^6.

💯CODE

#include<bits/stdc++.h>
#define MAXN 10000005
using namespace std;
int two[MAXN],three[MAXN];
int f2,r2,f3,r3;
int main()
{
	f2=r2=0;
	f3=r3=0;
	int a;
	cin>>a;
	int n;
	cin>>n;
	two[r2++]=a*2+1;
	three[r3++]=a*3+1;
	int k;
	for(int i=2;i<=n;++i)
	{
		if(two[f2]<three[f3])
			k=two[f2++];
		else
            if(two[f2]>three[f3])
              k=three[f3++];
            else
              {
              	k=two[f2++];
              	f3++;
			  }
		two[r2++]=k*2+1;
		three[r3++]=k*3+1;
		
	}
	cout<<k<<endl;
	return 0;
}

🔮朋友们,点赞是我更新的动力,明天再见,拜拜!!!


版权声明:本文为HybridCOW_HORSE原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/HybridCOW_HORSE/article/details/124501746