1 条题解

  • 0
    @ 2026-7-15 11:59:16

    #include<bits/stdc++.h> using namespace std;

    const int N = 1000010; long long q1[N], q2[N]; int head1,tail1,head2,tail2;

    long long blah(long long a,int n){ head1 = tail1 = head2 = tail2 = 0; q1[tail1++] = a * 2 + 1; q2[tail2++] = a * 3 + 1; long long ans = a; for (int i = 1;i < n;i++){ long long x1 = q1[head1]; long long x2 = q2[head2]; if (x1 < x2){ ans = x1; head1++; } else if(x2 < x1){ ans = x2; head2++; } else{
    ans = x1; head1++; head2++; } q1[tail1++] = ans * 2 + 1; q2[tail2++] = ans * 3 + 1; } return ans; }

    int main(){ long long a; int n; while (cin >> a >> n) cout << blah(a,n) << endl; return 0; }

    • @ 2026-7-15 12:00:07
      #include<bits/stdc++.h> 
      using namespace std;
      
      const int N = 1000010;
      long long q1[N], q2[N];
      int head1,tail1,head2,tail2;
      
      long long blah(long long a,int n){
      	head1 = tail1 = head2 = tail2 = 0;
          q1[tail1++] = a * 2 + 1;
          q2[tail2++] = a * 3 + 1;
          long long ans = a;
          for (int i = 1;i < n;i++){
              long long x1 = q1[head1];
              long long x2 = q2[head2];
              if (x1 < x2){
                  ans = x1;
                  head1++;
              } 
              else if(x2 < x1){
              	ans = x2;
      			head2++; 
      		}
          	else{  
                  ans = x1;
                  head1++;
                  head2++;
              }
              q1[tail1++] = ans * 2 + 1;
              q2[tail2++] = ans * 3 + 1;
          }
          return ans;
      } 
      
      int main(){
      	long long a;
          int n;
          while (cin >> a >> n) cout << blah(a,n) << endl;
      	return 0;
      }
      
  • 1

信息

ID
357
时间
1000ms
内存
128MiB
难度
8
标签
递交数
14
已通过
9
上传者