首页 > 试题广场 >

蚂蚁森林之王

[编程题]蚂蚁森林之王
  • 热度指数:1971 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
很久很久以前,在蚂蚁森林里住着 只小动物,编号从 。编号越小的动物能力值越大。现在他们想投票选出一只小动物当森林之王,对于每只小动物来说,如果他有崇拜的对象,那么他可能投票选择自己,或与自己崇拜的对象投相同票;如果他没有崇拜的对象,那么他投票只可能选择自己。
每只小动物只会崇拜能力值比自己大的小动物。
记者小强拜访了这  只小动物,了解到每只小动物是否有崇拜的对象以及具体是谁。现在他想知道每个人能得到的最高票数是多少。

输入描述:
第一行一个正整数  ,代表小动物的数量。
第二行 个以空格分隔的正整数 ,代表每只小动物崇拜的小动物。
,则代表第  只小动物没有崇拜的对象。

保证


输出描述:
共  行,第  行代表第  只小动物可能得到的最多票数。
示例1

输入

4
0 1 1 1

输出

4
1
1
1

说明

如果第 \text 2,3,4 只小动物均和第一只投一样的票,则第一只小动物可以获得四票。
头像 不想看论文
发表于 2022-03-27 11:37:38
“或与自己崇拜的对象投相同票” 这句话真的很容易让人误解,我以为的 “投相同票” 是我要和自己崇拜的对象投同一个人,就是我偶像投谁我投谁。然而题目的意思是,我把别人投给我的票全部投给我的偶像,我怎么能把别人投我的票再投给别人呢?我不理解😅😅😅 public class Main{ pu 展开全文
头像 疯狂的程旭员
发表于 2022-07-02 13:29:45
可以将这题转化为:计算森林中每棵树的每个子树的结点个数. 当然无需真的去建树,只需要用一个二维数组来模拟树结构即可(记录每个节点的孩子) 转换规则: 若a崇拜b,即a是b的孩子. import java.util.*; public class Main{ public static voi 展开全文

热门推荐

通过挑战的用户

蚂蚁森林之王