小何子啊 2019-09-07 18:59 采纳率: 0%
浏览 212

求大神用c++或c语言解答,本人速求,谢谢!

题目描述
欲穷千里目,更上一层楼。
阿克先生喜欢旅游。某一天,他来到魔法森林旅游。
经过观察,他发现魔法森林一共有​n个城市,每个城市有一座高高的魔法塔,第i​个城市的魔法塔的高度为hi​。这些城市一共由​n-1条道路连接,任意两座城市互相可达。
阿克先生想要站在某一座塔上观察尽可能多城市的风景。不幸的是,阿克先生没有透视眼,较高的塔将会遮蔽较低的塔。同时,魔法森林其他地方也被茂林覆盖,他的视线无法穿过茂林(但因为是魔法塔,塔上储存了镜面魔法,可以使阿克先生的视线在城市水平任意角度转弯)。
所以,他只能沿着n-1​条道路观察其他的点。
但是,魔法森林的道路蜿蜒曲折,他观看的城市到他所在的点的路径要么互相包含要么两两不交。且从他所在的点开始,到任意它观察的城市,所成的高度序列单调不增。
阿克先生想要知道他最多能观察到多少个城市(包括自身),他快速地秒了这道题,但他懒得写代码了,所以请你帮他算一算。

输入
第一行一个整数​n;
第二行​个整数​h1,h2…hn;
第三到第​n+1行两个整数u,v,表示有一个连接​u,v的道路。

输出
一个整数​ans,表示最多能看到多少个城市。

样例输入
11
10 4 5 11 8 9 3 2 1 7 6
1 2
1 3
1 4
2 10
2 11
3 7
3 8
4 5
4 6
7 9

样例输出
7

数据范围限制
对于​30%的数据 保证​ n<=5000
对于另外20​%的数据 保证 v=u+1
对于另外20%的数据 保证 hi互不相同
对于​100%的数据 保证​ n<=500000

提示
选择4号城市,可以看到1,3,4,5,6,7,9共7个城市

  • 写回答

1条回答

  • wowpH 2019-09-07 19:28
    关注

    兄弟,发帖子的时间用来好好想想吧。全部都是速求,速求。干脆找个人帮你写算了。不过别忘了给工资。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画