首页 > 试题广场 >

扩散

[编程题]扩散
  • 热度指数:2920 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
牛客大陆一共有n个工厂,有n-1对工厂之间有管道相连,因为工厂之间需要合作,所以这n-1个管道保证任意两个工厂都可以通过管道互相抵达。

牛牛发现,从这片大陆开始工业化以来,一共发生了m次原始生产力提升。每一次原始生产力提升在一个工厂u发生,它会让工厂u以及和工厂u直接通过管道相连的工厂的生产力加1。

每个工厂最开始的生产力都是0。

现在牛牛知道了m次生产力提升发生的工厂位置。牛牛想知道这m次提升发生之后每个工厂的生产力是多少。

示例1

输入

4,2,[1,2,2],[2,3,4],[2,1]

输出

[2,2,1,1]

说明

第一次生产力提升发生在工厂2,工厂1,2,3,4的生产力都提升了1点
第二次生产力提升发生在工厂1,工厂1,2的生产力都提升了1点
最终工厂1,2的生产力都为2,工厂3,4的生产力都为1

备注:
第一个参数代表工厂数量
第二个参数代表生产力提升次数
第三个参数u和第四个参数vector<int> v各自包含n-1个元素代表管道。第i根管道连接第u_i个工厂和第v_i个工厂。
第五个参数q包含m个元素代表生产力提升发生的位置。

这道题你会答吗?花几分钟告诉大家答案吧!

问题信息

难度:
0条回答 3184浏览

热门推荐

通过挑战的用户

查看代码