首页 > 代码库 > UVA-839-二叉树-一个有意思的题目

UVA-839-二叉树-一个有意思的题目

题意:

一颗二叉树可以看成一个杠杆,左右俩边有重量,有到支点长度,判断整个树是否平衡(根据杠杆原理),如果当前结点有左孩子,那么当前左边的重量就是左孩子的总和,右边同理

递归,发现scanf和cin的效率差好多.

AC时间:20ms(scanf),80ms(cin)

#include<stdio.h>#include<iostream>#include<queue>#include<memory.h>using namespace std;const int MAX = 1000;int read(int* ok){	int wl, dl, wr, dr;	//cin >> wl >> dl >> wr >> dr;	scanf("%d %d %d %d",&wl, &dl, &wr, &dr);	if(wl == 0)		wl = read(ok);	if(wr == 0)		wr = read(ok);	if(wl * dl != wr * dr)		*ok = 0;	return wl + wr;}int main(){	freopen("d:\\1.txt", "r", stdin);	int n;	cin >> n;	while (n--)	{		int ok = 1;		read(&ok);		if(ok)		{			cout << "YES" << endl;		}		else			cout << "NO" << endl;		if(n != 0)			cout << endl;	}	return 0;}

  终于在voj有70个题了,搜索章节还有29个题,o(︶︿︶)o 唉,洗澡去

UVA-839-二叉树-一个有意思的题目