P11242 题解
Aventurine_stone · · 题解
1. 题目分析
这道题题面有树,但其实就是一个简单的结论题,样例解释都把结论喂你嘴里了,注意一下输入的是叶子节点即可。
2. 题目做法
题目要我们包含的节点数最少,又因为输入的是叶子节点,所以我们构造的树必须有一个主干,也就是一条没有叶子节点的链,所有的输入的数都连接在主干上。
我们用主来表示主干上的节点,输来表示输入的节点,构造的树也就是下面这张图。
由于节点深度小于
3. 代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=100010;
inline int read()
{
int x=0;
char c=getchar();
while(c<'0'||c>'9')
c=getchar();
while(c>='0'&&c<='9')
x=(x<<1)+(x<<3)+c-'0',c=getchar();
return x;
}
int n;
int a,mx,cnt[N],s;
int main()
{
n=read();
for(int i=1;i<=n;i++)
a=read(),cnt[a]++,mx=max(mx,a);
for(int i=1;i<=mx;i++)
s+=cnt[i]+1;
printf("%d",s-1);
return 0;
}