摘要: 题目传送门 题意:现在有一个图,选择一条边,会把边的2个顶点也选起来,最后会的到一个边的集合 和一个点的集合 , 求边的集合 - 点的集合最大是多少。 题解:裸的最大权闭合子图。 代码: #include<bits/stdc++.h> using namespace std; #define Fop 阅读全文
posted @ 2018-12-02 12:09 Schenker 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题意:现在有n个电话号码,每个电话号码为si,拨打次数为pi。 现在有k 个快捷键,每次拨打号码之前可以先按一次快捷键,然后再输入数字,现在问输入数字次数是多少。快捷键的号码可以不在电话簿上。 题解: 先构建一个字典树,然后在字典树上进行DP。 dp[x][rem][fa] x -> 节 阅读全文
posted @ 2018-12-02 12:05 Schenker 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题意:给你n个数和一个c, 现在有一个操作可以使得 [ l, r ]区间里的所有数都加上某一个值, 现在问你c最多可以是多少。 题解: pre[i] 代表的是 [1,i] 中 c 的个数是多少。 suf[i] 代表的是 [i,n] 中 c 的个数是多少。 我们可以处理出这些信息。 然后我 阅读全文
posted @ 2018-12-02 11:46 Schenker 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题意:现在有n个点,每个点的度数最大为di,现在要求你构成一棵树,求直径最长。 题解:把所有度数为2的点先扣出来,这些就是这颗树的主干,也就是最长的距离。 然后我们把度数为2的点连起来,之后就处理1的点,先在主干的最左边和最右边加上新的点,这样可以使得直径边长。 然后其他的点随便放就好了 阅读全文
posted @ 2018-12-02 11:40 Schenker 阅读(150) 评论(0) 推荐(0) 编辑