08 2019 档案
[CF526G]Spiders Evil Plan
摘要:题意 https://codeforces.com/problemset/problem/526/G 思考 先考虑只有一次询问。如果我们选择了k条路径,那么就会有2k个叶子节点;反过来,如果选择了2k个叶子节点,总存在一种方案使得组成的k条路径形成一个联通块。因为若还没有连通块,总可以交换两条不交叉 阅读全文
posted @ 2019-08-27 09:43 GreenDuck 阅读(331) 评论(0) 推荐(0)
[CCPC2019 ONLINE]H Fishing Master
摘要:题意 http://acm.hdu.edu.cn/showproblem.php?pid=6709 思考 先考虑所有鱼的烹饪时间小于k的情况。将T从大到小排序后,煮一条鱼相当于将其时间补齐至k。 由于鱼的烹饪时间会大于等于k,那么,最优解一定不会出现鱼不够煮的情况。在煮鱼期间,可以钓到$\frac{ 阅读全文
posted @ 2019-08-26 09:08 GreenDuck 阅读(258) 评论(0) 推荐(0)
[CCPC2019 ONLINE]E huntian oy
摘要:题意 http://acm.hdu.edu.cn/showproblem.php?pid=6706 思考 打表出奇迹。 注意到这个式子有一大堆强条件限制,最后化为: $$\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}{|i-j|*[(i,j)==1]}$$ 考虑莫比乌 阅读全文
posted @ 2019-08-26 08:42 GreenDuck 阅读(227) 评论(0) 推荐(0)
[CF1037H]Security
摘要:题意 https://codeforces.com/contest/1037/problem/H 思考 贪心的思路是,尽可能多地找到读入串的一段前缀,然后再添上一个字典序比较大的字符。 先对原串建立SAM,考虑到有区间限制,需线段树合并维护endpos集合。 对于一个询问,我们现在SAM上找对它的前 阅读全文
posted @ 2019-08-25 21:22 GreenDuck 阅读(198) 评论(0) 推荐(1)
[CF1037F]Maximum Reduction
摘要:题意 https://codeforces.com/contest/1037/problem/F 思考 摘自一种比较有趣的做法。我们对序列进行分治,每次统计跨过mid的区间的贡献。其正确性是保证的:每个区间只会对应到一个mid。对于左区间,算出它的后缀最大值。 接下来从左到右枚举右区间的每一个点。对 阅读全文
posted @ 2019-08-25 21:10 GreenDuck 阅读(253) 评论(0) 推荐(0)
[CF932E]Team Work
摘要:题意 求$\sum_{i=1}^{n}{C(n,i)*i^k}$,其中$n \leq 10^9 ,k \leq 5000$。 思考? 看到$i^k$,k那么小,直接第二类斯特林数。比较简单,就请允许我鸽了吧。 刚开始还想BM,当然T了。 代码 1 #include<bits/stdc++.h> 2 阅读全文
posted @ 2019-08-25 21:03 GreenDuck 阅读(189) 评论(0) 推荐(0)
[CQOI2011]放棋子
摘要:题意 https://www.luogu.org/problem/P3158 思考 设$f_{i,j,k}$为用前k种棋子,在满足条件的情况下,在i*j的棋盘上每行每列都至少有一枚棋子的总方案数。转移为: $f_{i,j,k}=\sum_{i_1 \leq i}\sum{j_1 \leq j}{\{ 阅读全文
posted @ 2019-08-25 20:57 GreenDuck 阅读(162) 评论(0) 推荐(0)
[CF1192B]动态直径
摘要:题意 给一棵固定形态的树,边有边权,每次修改一条边权,在线求出修改后树的直径。 思考 写出树的全dfs序。生成方式为:每当一个点进栈或入栈时,记录它的编号。 考虑这个dfs序上两点之间的距离。设某个节点在dfs序中第一次出现的位置为$where_i$,第i个位置的节点为$what_i$两个点分别为u 阅读全文
posted @ 2019-08-25 20:49 GreenDuck 阅读(780) 评论(0) 推荐(0)
[CERC2016]凸轮廓线
摘要:题意 https://www.luogu.org/problem/P3680 思考 拆点即可。 注意精度。 代码 1 // luogu-judger-enable-o2 2 #include<bits/stdc++.h> 3 using namespace std; 4 typedef long d 阅读全文
posted @ 2019-08-25 20:34 GreenDuck 阅读(231) 评论(0) 推荐(0)
19_08_14-19_08_21校内训练 补题
摘要:1.给两个非严格递增的序列,每次分别从两个数组中抽出一个区间并合并,求排序后第k小。单log。 分治即可。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=5E5+5; 4 int n,m,a[maxn],b[max 阅读全文
posted @ 2019-08-21 16:27 GreenDuck 阅读(197) 评论(0) 推荐(0)
[模板]线性递推+BM
摘要:暴力版本: 1 #include<bits/stdc++.h> 2 #define mod 998244353 3 using namespace std; 4 typedef long long int ll; 5 const int maxn=1E4+5; 6 const int inf=233 阅读全文
posted @ 2019-08-11 18:05 GreenDuck 阅读(157) 评论(0) 推荐(0)
19_08_10[校内训练]割图
摘要:题意 给一个图,对每个点求(删去一条出边)的(到一号节点的(最大的(最短路的长度))),有边权。n,m≤1E5。 方便起见,没有重边和自环。 思考 先建出最小生成树,可以发现每次一定要删去连向父亲的边。此后,会沿着它的出边走向其他或自己的祖先,再算上原先图的最短路长度。 那么对于每个节点维护一个堆, 阅读全文
posted @ 2019-08-10 14:55 GreenDuck 阅读(166) 评论(0) 推荐(0)