POJ挂掉了,然后去ZOJ上。记得uva上有这题,直接pow水过,后来崔老师说用二分也可以写。
ZOJ上我写的TLE= =...崔老师WA= =。。。
目测不到哪里有错= =。。。做的POJ开封。
二分代码
View Code
1 #include<iostream> 2 #include<math.h> 3 #include <stdio.h> 4 #define eps 0.0000000001 5 using namespace std; 6 7 void div(double n,double k) 8 { 9 long long l,r,mid; 10 l = 0; 11 r = 1000000010; 12 while(l < r) 13 { 14 mid = (l+r)/2; 15 if(pow(mid,n) > k) 16 r = mid; 17 else if(pow(mid,n) < k) 18 l = mid; 19 else 20 { 21 cout<<mid<<endl; 22 break; 23 } 24 } 25 } 26 int main(void) 27 { 28 double n,k; 29 while(cin>>n>>k) 30 { 31 div(n,k); 32 } 33 return 0; 34 }
直接AC代码
View Code
1 #include <iostream> 2 #include <math.h> 3 using namespace std; 4 5 6 int main() 7 { 8 double n,p; 9 while(cin>>n>>p) 10 cout<<pow(p,1.0/n)<<endl; 11 return 0; 12 }