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 唉,洗澡去

原文地址:https://www.cnblogs.com/shuiyonglewodezzzzz/p/6921653.html