poj 1145 재 귀
1438 단어 poj
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
bool flag=false;
int kk;
char GetNext() //
{
char c;
while(scanf("%c",&c) && (c==' ' || c=='
' || c==9 || c==10));
return c;
}
int dfs(int sum,int hight)
{
int sign=1,k=0,k1,k2;
char c;
c=GetNext();
if(c==')')
{
return hight;
}
if(c=='-')//
{
sign=-sign;
c=GetNext();
}
while((c>='0' && c<='9'))//
{
k=k*10+(c-'0')*sign;
scanf("%c",&c);
}
if(c=='
' || c==' ') c=GetNext();
if(c=='(') k1=dfs(sum+k,hight+1); //
c=GetNext();
if(c=='(') k2=dfs(sum+k,hight+1);//
c=GetNext();
if(k2==hight+1 && k1==hight+1)//
{
if(sum+k==kk) flag=true;
}
return 0;
}
int main()
{
while(scanf("%d",&kk)!=EOF)
{
flag=false;
GetNext();
dfs(0,0);
//GetNext();
if(flag)
printf("yes
");
else
printf("no
");
}
return 0;
}
이 문 제 는 바로 나무의 옮 겨 다 니 는 것 이다. 특수 한 형식 때문에 실현 에 있어 약간 번 거 로 우 므 로 주로 두 가지 상황 에 주의해 야 한다.
(1) 수 치 는 마이너스 일 수 있다
(2) 잎 노드 의 판단 에 따 르 면 '잎' (왼쪽, 오른쪽) 노드 의 높이 가 '부 노드' 의 높이 와 같 으 면 '부 노드' 가 진정한 잎 노드 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
POJ3071: Football(확률 DP)Consider a single-elimination football tournament involving 2n teams, denoted 1, 2, …, 2n. After n rounds, only one team...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.