关于此题数据极其之水
查看原帖
关于此题数据极其之水
358739
BFSDFS123楼主2022/12/8 11:40

RT,下面的代码可以通过

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll inf=2147483647;
void qpow(ll a,ll b)
{
    ll res=1;bool flag=true;
    while(b)
    {
        //cout<<"a="<<a<<",b="<<b<<",res="<<res<<endl;
        if(b&1)
        {
            res=res*a;
            if(res>inf)
            {
                //cout<<"res="<<res<<endl;
                puts("-1");
                flag=false;
                break;
            }
        }
        a=a*a;
        if(a>inf && b>1)
        {
            //cout<<"a="<<a<<endl;
            puts("-1");
            flag=false;
            break;
        }
        b>>=1;
    }
    if(!flag) return ;
    printf("%lld\n",res);
}
int main()
{
    long long a,b;
    scanf("%lld%lld",&a,&b);
    //cout<<inf<<endl;
    qpow(a,b);
    return 0;
}


注意到 inf=2147483647,就是说只有在 大于 2147483647 才会输出 -1

然而他过了。

subtask1,2 都过了……

2022/12/8 11:40
加载中...