然後Zero Judge超時
#include <iostream>
#include <cmath>
using namespace std;
int main(void)
{
int a,b,c,sum,max;
cin>>a;
while(a--)
{
cin>>b>>c;//depth num
c=c%(int)pow(2,b-1);
max=pow(2,b-1);
if(c==0)
sum=(int)pow(2,b-1)-1;
else
sum=0;
while(c!=1 && c!=0)
{
max/=2;
if(c%2)//left
c=c/2+1;
else //right
{
c=c/2;
sum+=max;
}
}
cout<<sum+(int)pow(2,b-1)<<"\n";
}
return 0;
}
然後Zero Judge超時
#include
#include
using namespace std;
int main(void)
{
int a,b,c,sum,max;
cin>>a;
while(a--)
{
cin>>b>>c;//depth num
c=c%(int)pow(2,b-1);
max=pow(2,b-1);
if(c==0)
sum=(int)pow(2,b-1)-1;
else
sum=0;
while(c!=1 && c!=0)
{
max/=2;
if(c%2)//left
c=c/2+1;
else //right
{
c=c/2;
sum+=max;
}
}
cout< }return 0;
}
我改一下就AC (0.8s) 了