把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end
摘要: 题面传送门 可以发现大小具有单调性,所以可以二分。 二分后用$01$背包验证可行性即可。 代码实现: #include<cstdio> #include<cstring> #include<algorithm> #define max(a,b) ((a)>(b)?(a):(b)) using nam 阅读全文
posted @ 2020-07-10 21:59 275307894a 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 显然最长的一条是树的直径。 那么找到树的直径后另一条枚举点然后跑$spfa$即可。 代码实现: #include<cstdio> #include<queue> #include<cstring> #define min(a,b) ((a)<(b)?(a):(b)) #define ma 阅读全文
posted @ 2020-07-10 21:57 275307894a 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 显然可以莫队,而且是板子题。 但是考虑怎么在过程中增加和修改,无论怎样写树形结构都会使复杂度飙升到$n\sqrt nlogn$ 这时可以暴力数据结构:分块,单点修改$O(1)$,查询$O(\sqrt n)$ 这样复杂度就是妥妥的$O(n\sqrt n)$ 代码实现: #include<c 阅读全文
posted @ 2020-07-10 21:56 275307894a 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 这道题是树的直径裸题。 显然跑两遍$dfs$找树的直径即可。 但是输入很毒瘤。 所以要信仰$stringstream$啊 代码实现: #include<bits/stdc++.h> using namespace std; int n,m,k,x,y,z,ans,tot,pus,flag 阅读全文
posted @ 2020-07-10 21:53 275307894a 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 题目中要求最小路径生成树的方案数。 先跑一遍$spfa$把最小路径跑出来,然后对于每个点枚举边,看看有几个点是可以转移,然后乘法原理计数即可。 代码实现: #include<cstdio> #include<cstring> #include<queue> #include<algori 阅读全文
posted @ 2020-07-10 21:51 275307894a 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 题目大意:构造一个完全图,使得在最小生成树唯一(题目中给出)的情况下权值总和最小。 直接克鲁斯卡尔模拟,在合并两棵树时进行操作。 合并两棵树时要连的边的条数是$siz_x\times siz_y-1$,即将合并的这条边一定是两棵树中最大的边,而所有不在最小生成树内的边一定大于这条边,所以 阅读全文
posted @ 2020-07-10 21:48 275307894a 阅读(33) 评论(0) 推荐(0) 编辑
浏览器标题切换
浏览器标题切换end