#P17526. PM12985公平抽奖树
PM12985公平抽奖树
题目描述
有 名参与者,编号为 。你希望利用一棵有根树决定最终中奖者。
首先要把这棵树画在一块矩形板上,并满足:根节点位于上边界;所有叶子位于下边界;父节点始终在子节点上方;边画成直线段且任意两条边不能相交。你可以自由选择每个节点的孩子从左到右的排列顺序。
然后把矩形的下边界划分为 个连续区段,并给这些区段分别标上 到 的不同编号。每个叶子属于恰好一个区段,并获得该区段对应的参与者编号。
接下来反复进行以下随机过程:选择一个尚未写编号、但所有孩子都已经有编号的节点 ;若这样的节点有多个,则等概率选择其中一个。随后从 的所有孩子中等概率随机选择一个,并把该孩子的编号复制到 。当根节点获得编号后,拥有该编号的参与者中奖。
你可以自由选择树的平面画法以及下边界各参与者区段的排列方式。请判断能否使每一名参与者的中奖概率都恰好为 。
输入格式
第一行输入两个整数:
M P
其中 是非根节点的数量,因此整棵树共有 个节点,编号为 ,节点 为根。
第二行输入 个整数 。其中 表示节点 的父节点,并保证 。
输出格式
若存在一种画法和编号区段分配方式可以使抽奖公平,输出:
YES
否则输出:
NO
数据范围
,;每个非叶节点至少有两个孩子。
样例
输入
3 3
0 0 0
输出
YES
输入
9 2
0 0 0 1 1 2 2 3 3
输出
YES