2 条题解

  • 1
    @ 2026-6-17 17:31:31
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        long long a,b,ans=1;
        cin>>a>>b;
        for(int i=1;i<=b;i++){ans*=a;if(ans>1000000000){cout<<-1;return 0;}}cout<<ans;
        return 0;}
    
    • 1
      @ 2026-2-26 18:03:18

      思路

      直接用for连乘,如果乘到一半大于了10910^9,就输出-1然后结束程序

      但是这种方式时间复杂度较高,有一个测试数据险些超时(964ms)

      加密代码

      偏移量:91,额外使用x

      /j ̄6 …←gE1¥Z○□c★|9A ̄々·	}←■〆↑…K0Tm343H§━ 344l┄T TZC▼Cm│◎■☆☆Bj2GHc8Rˊ}g} Z_
      ■81★◆●3━Bj …ˇ§ZDbh▲★XB£OC…↓○〓ˊ ̄F△	8◇C7PE_
      FgJAB★〇R□Zi※↑jZ〇G○←9←FP←Zi…☆〇JgKG↓Dc★AP	〆 □▼┄々□L○m〆Lb…4←9 ¥0h●B々─T※Ha¥Z§→━B─Y▼F┅6|★}3ˊ·1■↑OAPg※~~ˇ0┄…bKT□々◇¥ J¢C┃△m §O|■← ̄Rh·H~●g▼━々↑aG45━☆j▲P04cO│KHC○ˋ□X─~☆2■→00━3◎→ˋ|||||¥Y66A□□85b||○b8M0◇·─7←HEBC£ˋ▼2|99◎~||─〇※\
      

      解密代码

      #define NxdHDTrIw6 a
      #define APsx7Ogd b
      #define BAVozAKZt66u6kjG cin
      #define JYLXSNcrOOB00VEQjd cout
      #define Fubk_2_K52P2Jn false
      #define U_CFawQkOnYx5E7 for
      #define WN4Njzm3XEdC5jSj i
      #define MiUkDlu1fvQ2 if
      #define nAPQ1fZgDW645dh2 int
      #define FxA0yhvQJO_tMgFU52U ios
      #define i9uHofL_8fVBsWc8dF4 long
      #define r8yDaoiKaivPfojd7 main
      #define OjftzoZkaquOgc namespace
      #define OZvGLn9QmgZMWXg2AV out
      #define oID1e3VuvANzzB return
      #define xkRm1ulcB8ETJ3Ob std
      #define jfwwItnvoKO_zIhFPjm2 sync_with_stdio
      #define DkzYVef8 tie
      #define XOSg_FeZdmn using
      
      #include<iostream>
      XOSg_FeZdmn OjftzoZkaquOgc xkRm1ulcB8ETJ3Ob;
      nAPQ1fZgDW645dh2 r8yDaoiKaivPfojd7() {
          FxA0yhvQJO_tMgFU52U::jfwwItnvoKO_zIhFPjm2(Fubk_2_K52P2Jn);
          BAVozAKZt66u6kjG.DkzYVef8(0);
          JYLXSNcrOOB00VEQjd.DkzYVef8(0);
      
          i9uHofL_8fVBsWc8dF4 i9uHofL_8fVBsWc8dF4 NxdHDTrIw6,APsx7Ogd,OZvGLn9QmgZMWXg2AV;
          BAVozAKZt66u6kjG>>NxdHDTrIw6>>APsx7Ogd;
          OZvGLn9QmgZMWXg2AV=NxdHDTrIw6;
          U_CFawQkOnYx5E7(nAPQ1fZgDW645dh2 WN4Njzm3XEdC5jSj=0;WN4Njzm3XEdC5jSj<APsx7Ogd-1;WN4Njzm3XEdC5jSj++) {
              OZvGLn9QmgZMWXg2AV*=NxdHDTrIw6;
              MiUkDlu1fvQ2(OZvGLn9QmgZMWXg2AV>1000000000) {
                  JYLXSNcrOOB00VEQjd<<-1;
                  oID1e3VuvANzzB 0;
              }
          }
          JYLXSNcrOOB00VEQjd<<OZvGLn9QmgZMWXg2AV;
      
          oID1e3VuvANzzB 139;
      }
      
      • @ 2026-2-26 18:10:40

        bro,有更简单的方法,直接使用cmath中的pow函数,样例耗时均为2ms

        #include <iostream>
        #include <cmath>
        using namespace std;
        int main() {
            long long a,b;
            cin >> a >> b;
            a = pow(a,b); //计算a的b次方
            if (a > 1000000000 || a <= 0) {
              //条件a <= 0 是判断是否溢出
                a = -1;
            }
            cout << a << endl;
            return 0;
        }
        
        
      • @ 2026-2-27 9:05:25

        @ 🤡

      • @ 2026-2-27 16:57:22

        @ 你这其实也不太稳, 主要a = pow(a,b); 这一行pow(a,b)的结果大于LONG LONG_MAX你就炸了

    • 1

    信息

    ID
    105
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    154
    已通过
    42
    上传者