摘要: 首先根据题目所给的图片,我们其实可以发现,答案就是枚举每个点,以这个点作为中间节点的答案 这也就是意味着,我们刚开始按权值大小从大到小连边,答案就是入度*出度。而对于每次修改,就是去除这个点的贡献,同时修改他旁边点的贡献 这样能够保证复杂度的原因是,一旦我这个点被清空了,那么连边就没了。即使我们每次 阅读全文
posted @ 2020-08-17 20:23 朝暮不思 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 本题数据范围很小,因此直接根据右侧爆搜左侧选择哪个,再加上一个可行性剪枝就行 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pll; const int inf=0x3 阅读全文
posted @ 2020-08-17 15:51 朝暮不思 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 设计dp状态为f[i]表示以i为根的子树能到达正确答案的概率是多少,那么f[1]就是答案 当我们先行计算出他儿子的答案时,根据独立性以及反方向考虑,我们只需要知道一次不能到达正确答案的概率,之后重复size遍,用1去减就是答案 #include<bits/stdc++.h> using namesp 阅读全文
posted @ 2020-08-17 09:53 朝暮不思 阅读(131) 评论(0) 推荐(0) 编辑