codeforces1399E1 dfs+优先队列
1388E1 2000的题题意:给你一个具有n个点,n-1条边的树,且每条边都有其权值,你可以对这些边进行操作,比如这条边的权值为w,进行操作之后变为w/2向下取整,问你最少进行多少次操作才能使得从根节点到各个叶子结点的权值之和小于S。思路:对这棵树进行dfs一遍得到从根节点到叶子节点每条边要经过多少次,然后进行贪心,用优先对列来实现,因为他的操作是对w/2,进行向下取整所以不能说直接用经历的次数*该边的权值,会有精度损失。具体实现可看代码,memset是真的比for慢将近一倍#pragma GCC
原创
2020-08-16 14:51:40 ·
145 阅读 ·
0 评论