hdu5524 Subtrees

2166 단어 hdu
http://acm.hdu.edu.cn/showproblem.php?pid=5524 n 개 노드 의 완전 이 진 트 리 에 몇 가지 노드 의 개수 가 다른 서브 트 리 가 있 는 지 물 어보 세 요. 먼저 이 진 트 리 가 가득 차 면 판단 하기 쉽 습 니 다. 그렇지 않 으 면 이 진 트 리 와 다른 비 완전 이 진 트 리 로 볼 수 있 습 니 다. 이렇게 재 귀적 으로 돌아 갈 때마다 결 과 는 하 나 를 더 할 수 있 습 니 다. 왜냐하면 결점 의 수 는 다른 것 과 다 를 것 입 니 다.
#include
#include
#include
#include
#include 
typedef long long ll;

using namespace std;

ll ans,maxn,n;

void find(ll x)
{
    ll l=x,r=x;
    ll dep=0;
    while(l*2<=n)
    {
        l*=2;
        dep++;
    }
    while(r*2+1<=n)
    r=r*2+1;
    if(l<=r) maxn=max(maxn,dep);//    
    else
    {
        find(2*x);
        find(2*x+1);
        ans++;
    }
}
int main()
{
    while(cin>>n)
    {
        ans=0;
        maxn=0;
        find(1);
        cout<1<return 0;
}

좋은 웹페이지 즐겨찾기