#include<bits/stdc++.h> using namespace std; int main(){ int a,b; cin>>a>>b; vector e; int c=1; int d=0; while(b-c>0){ d++; b-=c; c*=2; } e.push_back(d); b--; for(int i=d-1;i>=0;i--){ if(b>=pow(2,i)){ e.push_back(i); b-=pow(2,i); } } int f=0; for(size_t i=0;i<e.size();i++){ int g=1; for(int j=0;j<e[i];j++){ g*=a; } f+=g; } cout<<f; return 0; }

4 comments

  • @ 2025-11-12 17:42:24

    这道题可能还有一个问题,题目明明说的结果不大于2.1*10^9,但是最后改成long long才能对,int不对(第十条)

    • @ 2025-11-12 17:23:30

      额……第一条自己写的,0分,后面我让AI写的我看看是不是我的问题

      • @ 2025-11-12 16:24:21

        测试数据出现 WindowsLinux 换行符格式冲突,已更正重测。

        PS:发现你的 AC 提交为 AI 编写,已取消成绩

        • @ 2025-11-10 23:21:17

          找不到反例

          • 1

          Information

          ID
          98
          Time
          1000ms
          Memory
          256MiB
          Difficulty
          10
          Tags
          (None)
          # Submissions
          7
          Accepted
          1
          Uploaded By