- 博客(6)
- 收藏
- 关注
原创 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
1709
原创 bzoj 4523 [Cqoi2016]路由表
Trie树的运用。 对于A操作,将IP地址转为2进制串后插入Trie树中,在结束节点增加时间标记。 对于Q操作,将IP地址转为2进制串后在Trie树中匹配。 在匹配过程中,用单调栈维护时间单调递增。栈的大小就是答案。 代码: #include #include #include using namespace std; typedef long long LL; struct Trie{
2016-04-12 22:21:47
1095
9
原创 bzoj 4521 [Cqoi2016]手机号码
数位DP。 设f[pos][p2][p1][con][bj8][bj4]表示第pos位,前两个数为p2,p1,con表示是否已经有三个连续出现的数字,bj8表示8是否已经出现,bj4同理。在这种情况下的方案数。 用记忆化搜索比较方便。 {优快云:CODE:1644235}
2016-04-12 21:23:53
1074
原创 bzoj 4520 [Cqoi2016]K远点对
最远点对的话很好求,就在凸包上,旋转卡壳可以求出。 但是次远点对的话就不一定在凸包上了。 那么如何根据已有的最远点对的信息,求出次远点对,再求出三远点对……最后求出K远点对呢? 首先考虑由最远点对(p1,p2)求出次远点对。 次远点对只可能在以下三种情况中出现: ①一个点为p1,另一个点为非p1,p2的点 ②一个点为p2,另一个点为非p1,p2的点 ③两个点均不是p1,p2 第三种情
2016-04-12 19:42:03
1171
原创 bzoj 4519 [Cqoi2016]不同的最小割
用Gusfield算法建出Gomory-Hu树,之后统计有多少不同的最小割就可以了~ 不了解Gusfield算法与Gomory-Hu树的话可以查查相关资料~ 代码: /************************************************************** Problem: 4519 User: dropD Language: C+
2016-04-12 18:59:46
1182
原创 CQOI2016游记
CQOI2016结束了,省选之路也划上了一个句号。 参加这次省选,自己背负的压力其实蛮大的,毕竟自己noip实在跪得太惨,要想扳回局势难度略大。 还好最后还是进了省队,算是放下了心中的一块石头吧。 感谢上天给予我在OI路上继续走下去的机会,也感谢在这条长长的坡道上给我支持和帮助的人们。 day -1: dx学长为了翘掉体育课特地来鼓励我们这些学弟。 无限%%% dx
2016-04-11 22:12:59
1252
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人