摘要:
答案肯定是在子树中断开叶节点和断开当前点和子树点的边中的最小值 #include<bits/stdc++.h> using namespace std; const int N=3e5+10; const int mod=1e9+7; typedef long long ll; int h[N],n 阅读全文
posted @ 2020-05-19 20:51
朝暮不思
阅读(129)
评论(0)
推荐(0)
摘要:
这道题首先可以想到可以是一直走到某地,或者在某两个地方徘徊。 首先我们要想到当前点第一次肯定要走到左边或者右边的第一个点,这是第一步。 其次,在这个基础上,我们枚举所有的边,当作徘徊的边,这样就遍历了所有情况,另外,当距离长度为m的时候,我们正好顺手做了直达的情况。 #include<bits/st 阅读全文
posted @ 2020-05-19 17:54
朝暮不思
阅读(172)
评论(0)
推荐(0)
摘要:
容易看出是01背包,但是有个不同之处是,dp要求无后效性,而这题因为时间会影响答案,所以买的顺序是需要确定下来才能做背包dp 可以用贪心的方法,并且易证要按t/b排序。之后答案的顺序肯定是按所给的顺序取的,再做一遍01背包即可 #include<bits/stdc++.h> using namesp 阅读全文
posted @ 2020-05-19 11:58
朝暮不思
阅读(143)
评论(0)
推荐(0)
摘要:
从成功和失败两种情况转移 算成功的概率的时候,可以从失败的反向考虑比较简单。 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; const int mod=1e9+7; typedef long long ll; dou 阅读全文
posted @ 2020-05-19 09:03
朝暮不思
阅读(140)
评论(0)
推荐(0)

浙公网安备 33010602011771号