Java教程

D. Minimal Height Tree---思维题

本文主要是介绍D. Minimal Height Tree---思维题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在这里插入图片描述

在这里插入图片描述

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;
#define int long long
const int N = 200010;
void solve()
{
	int n;cin>>n;
	int last;cin>>last;
	int cnt=0,tmp=0,res=0;
	for(int i=2;i<=n;i++)
	{
		int x;cin>>x;
		if(last>x)
		{
			if(cnt)cnt--,tmp++;
			else res++,cnt=tmp-1,tmp=1;
		}
		else tmp++;
		last=x;
	}
	cout<<res+1<<endl;
}
signed main()
{
    int T;
    cin>>T;
    while(T--)solve();
}
这篇关于D. Minimal Height Tree---思维题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!