上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 55 下一页
摘要: ###小凯的疑惑 Link 放一个比较简洁的证明。 不妨设$b>a$。 设答案为$c$。 因为$(a,b)=1$,所以有$c\equiv ax(\mod b)(x\in[1,b))$即$c=ax+by(x\in[1,b))$。 若$y\le0$,那么$c$显然是可以由$a,b$表示的。 因此若要$c 阅读全文
posted @ 2019-11-13 21:06 Shiina_Mashiro 阅读(158) 评论(0) 推荐(0) 编辑
摘要: ###铺设道路 Link 一个非常可行的做法是最小值分治。 正解就是一个贪心:从前往后扫,如果当前这个坑比前面那个深,那么就消耗当前深度减前面的深度的代价,否则当前这个会被直接覆盖,不需要代价。 #include<bits/stdc++.h> using namespace std; int n,a 阅读全文
posted @ 2019-11-13 16:05 Shiina_Mashiro 阅读(166) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-11-12 20:10 Shiina_Mashiro 阅读(27) 评论(3) 推荐(0) 编辑
摘要: "题目" ~~两眼题~~ 二分一个$lim$,然后跑最短路(边权$\le lim$的边长度为$0$,$ lim$的长度为$1$),然后判断$dis_{1,n}\le k$。 阅读全文
posted @ 2019-11-11 22:26 Shiina_Mashiro 阅读(71) 评论(0) 推荐(0) 编辑
摘要: "Link" 还是贪心。 每次选择出现次数最多的三个直径。 正确性感觉比较显然。 阅读全文
posted @ 2019-11-11 20:51 Shiina_Mashiro 阅读(91) 评论(0) 推荐(0) 编辑
摘要: "题目" 贪心。 首先我们把所有建筑按$ddl$升序排序。 然后从前往后枚举每个建筑,如果当前能够修它就直接修。 如果不能直接修的话我们再看把之前修的中修复时间最长的那个去掉之后能不能修这个,如果可以就不修那个时间最长的了,改修当前这个。 口胡一下正确性: 进行第二个操作不会改变当前修了的总数。 而 阅读全文
posted @ 2019-11-11 20:12 Shiina_Mashiro 阅读(81) 评论(0) 推荐(0) 编辑
摘要: "Link" 一眼题。 缩点然后dp。 注意一下计算一条边经过无限次可以获得多少价值这个东西要用到平方和公式。 $\sum\limits_{i=1}^ni^2=\frac{i(i+1)(2i+1)}6$ 阅读全文
posted @ 2019-11-11 19:46 Shiina_Mashiro 阅读(100) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-11-11 14:49 Shiina_Mashiro 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 大概是这样的:一开始图中有$n$个连通块,每次操作我们选出各个连通块连出去的最短的边(如果有相同边权的边的话可以把序号作为第二关键字),然后把这些边加入最小生成树。 最坏的情况下每次操作都会让当前的连通块减半,因此Boruvka算法的复杂度为$O(m\log n)$。 主要的应用在于边数为$O(n^ 阅读全文
posted @ 2019-11-10 10:19 Shiina_Mashiro 阅读(160) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-11-09 14:54 Shiina_Mashiro 阅读(7) 评论(0) 推荐(0) 编辑
上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 55 下一页