入门难度
查看原帖
入门难度
122784
_Blue_楼主2020/7/29 20:04
#include <bits/stdc++.h>
using namespace std;
int n,m;
long long POW(int X,int Y){
	long long num=1;
	for(int i=1;i<=Y;i++)
		num*=(long long)X;
	return num;
}
bool find(int X){
	return POW(X,m)<=(long long)n;
}
int main(){
	scanf("%d%d",&n,&m);
	if(m==1){
		printf("1\n");
		return 0;
	}
	int l=1,r=n;
	while(1){
		if(l==r) break;
		int mid=(l+r)>>1;
		if(find(mid)) l=mid+1;
		else r=mid-1;
	}
	printf("%d",r);
}

刚开始没多想,直接暴力,然鹅却T了
/旁边的人都过了,就很迷惑
然后打了个二分答案,不但超时还WA
蒟蒻哭了

2020/7/29 20:04
加载中...