![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
各省省选
文章平均质量分 59
dropD
这个作者很懒,什么都没留下…
展开
-
bzoj 4519 [Cqoi2016]不同的最小割
用Gusfield算法建出Gomory-Hu树,之后统计有多少不同的最小割就可以了~不了解Gusfield算法与Gomory-Hu树的话可以查查相关资料~代码:/************************************************************** Problem: 4519 User: dropD Language: C+原创 2016-04-12 18:59:46 · 1147 阅读 · 0 评论 -
bzoj 4521 [Cqoi2016]手机号码
数位DP。设f[pos][p2][p1][con][bj8][bj4]表示第pos位,前两个数为p2,p1,con表示是否已经有三个连续出现的数字,bj8表示8是否已经出现,bj4同理。在这种情况下的方案数。用记忆化搜索比较方便。{CSDN:CODE:1644235}原创 2016-04-12 21:23:53 · 1015 阅读 · 0 评论 -
bzoj 4523 [Cqoi2016]路由表
Trie树的运用。对于A操作,将IP地址转为2进制串后插入Trie树中,在结束节点增加时间标记。对于Q操作,将IP地址转为2进制串后在Trie树中匹配。在匹配过程中,用单调栈维护时间单调递增。栈的大小就是答案。代码:#include#include#includeusing namespace std;typedef long long LL;struct Trie{原创 2016-04-12 22:21:47 · 1048 阅读 · 9 评论 -
bzoj 4524 [Cqoi2016]伪光滑数
搜索。 首先将所有小于128的质数预处理出来,总共31个。设第i个质数为p[i]p[i]。 用一个结构体{V,a[31]}\left\{ V,a \left[ 31 \right] \right\}来表示一个数字VV,将它分解后有a[i]a[i]个p[i]p[i]。 然后求出所有p[i]j(i∈[1,31],j⩾1&&p[i]j⩽N)p[i]^j \left(i \in \left[1,31原创 2016-04-12 23:03:26 · 1634 阅读 · 0 评论 -
bzoj 4520 [Cqoi2016]K远点对
最远点对的话很好求,就在凸包上,旋转卡壳可以求出。 但是次远点对的话就不一定在凸包上了。 那么如何根据已有的最远点对的信息,求出次远点对,再求出三远点对……最后求出K远点对呢? 首先考虑由最远点对(p1,p2)求出次远点对。 次远点对只可能在以下三种情况中出现: ①一个点为p1,另一个点为非p1,p2的点 ②一个点为p2,另一个点为非p1,p2的点 ③两个点均不是p1,p2 第三种情原创 2016-04-12 19:42:03 · 1132 阅读 · 0 评论