![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
省选
文章平均质量分 72
2013hlq20
没什么好说的
展开
-
bzoj3505 [Cqoi2014]数三角形
gcd和一点小思维最初我还想用组合+容斥原理来搞,但看见那个数据范围就算了另一种做法就是题解了先用组合数算出选3个点的总情况,然后减去3点共线的情况至于3点共线的情况我们用O(n^2)的时间枚举两端的点,然后算出在这两个点之间的点其整点的个数可以用gcd来算(如下图)如果视左上的黑点为(0, 0)右下黑点(6, -3)那么这条直线上的整点可以表示为(2n, -n)原创 2015-01-25 17:07:33 · 1201 阅读 · 0 评论 -
bzoj3504 [Cqoi2014]危桥
无向图最大流,加上超级源汇,以及神奇的判断在处理a1的流会走到b2的情况时卡住了,果断看题解发现把b1和b2反一下再做一次最大流就行了(这是为什么呢,没看见证明= =)先放在这里,等我想下再补充证明#includeusing namespace std;struct edge { int u, v, cap;};const int MAXN = 50;const原创 2015-01-25 16:20:33 · 491 阅读 · 0 评论 -
bzoj3506 [Cqoi2014]排序机械臂
splay的区间操作(区间反转)就是离散化那个地方有点小技巧#includeusing namespace std;struct node { int key, size; int Min, sig; node *c[2]; node():key(0),size(0), Min(INT_MAX), sig(0) { c[0] = c[1] =原创 2015-01-25 16:40:37 · 580 阅读 · 0 评论 -
bzoj3507 [Cqoi2014]通配符匹配
我们可以看见n的范围很小,我们可以依次判断各个文件名是否匹配。至于如何用含通配符的字符串(下文称“通配符串”)匹配文件名,我们可以按以下几步考虑: ①我们将字符串按'*'依次划分成多个子串s1, s2, s3, ..., sk,下文称这些子串为“通配符子串”(因为这些子串会出现通配符'?'),比如样例"*abc?e**e"将会分成"abc?e"和"e" ②得到的每个子串依次原创 2015-02-02 23:14:11 · 1561 阅读 · 1 评论 -
bzoj1014 [JSOI2008]火星人prefix
splay的区间操作(区间表示),Hash离散,二分答案Hash值(代码中是RK的hash函数)是一个节点域,除此就没什么特别的了#includeusing namespace std;inline int get_int() { char c; int res = 0; while(!isdigit(c = getchar())); for(res =原创 2015-01-25 17:18:25 · 453 阅读 · 0 评论