📋 个人简介
🎉大家好,我是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 版权协议,转载请附上原文出处链接和本声明。