萌新刚学 OI 二分求助
  • 板块学术版
  • 楼主hexuchen
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/10/1 21:52
  • 上次更新2024/10/2 09:46:47
查看原帖
萌新刚学 OI 二分求助
945742
hexuchen楼主2024/10/1 21:52

为什么会 WA 呢?

#include <bits/stdc++.h>
#define int unsigned long long
using namespace std;
int q,x,b,ans=0;
int poww(int a,int b){
	int sum=1;
	for(int i=1;i<=b;i++){
		sum*=a;
		//cout<<sum<<endl;
	}
	return sum;
}
void binary_find(){
	int left=1,right=x;
	while(left<=right){
		int mid=(left+right)>>1;
		//cout<<mid<<endl;
		int an=poww(mid,b);
		if(an==x){
			ans++;
			break;
		}
		else if(an>x){
			right=mid-1;
		}
		else{
			left=mid+1;
		}
	}
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	//cout<<poww(2,32);
	cin>>q;
	while(q--){
		cin>>x>>b;
		binary_find();
		//cout<<ans<<endl;
	}
	cout<<ans;
	return 0;
}
2024/10/1 21:52
加载中...