• Blah数集


    【题目描述】

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

          (1)a是集合Ba的基,且a是Ba的第一个元素;

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

          (3)没有其他元素在集合Ba中了。

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

    【题目链接】

        http://ybt.ssoier.cn:8088/problem_show.php?pid=1333

    【代码】

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 ll rec[1000010],tot;
     5 int p1,p2,a,n,i;
     6 int main()
     7 {
     8     while(scanf("%d%d",&a,&n)!=EOF) {
     9         tot=0;
    10         rec[++tot]=a;
    11         p1=p2=1;
    12         while(tot<=n) {
    13             ll a1=rec[p1]*2+1,a2=rec[p2]*3+1;
    14             if(a1<a2) p1++; else p2++,a1=a2;
    15             if(a1!=rec[tot]) rec[++tot]=a1;
    16         }
    17         printf("%lld
    ",rec[n]);
    18     }
    19     return 0;
    20 }
  • 相关阅读:
    作业一
    工作日志(二)
    工作日志(三)
    工作日志(四)
    工作日志(一)
    团队项目开发日志(四)
    团队项目开发日志(三)
    团队项目开发日志(二)
    团队项目开发日志(一)
    第四次作业
  • 原文地址:https://www.cnblogs.com/Willendless/p/9404029.html
Copyright © 2020-2023  润新知