大一暑假集训总结
Chen丶HC
这个作者很懒,什么都没留下…
展开
-
待补
1.poj3109 扫描线算法原创 2017-08-23 14:09:46 · 228 阅读 · 0 评论 -
2017暑假训练之树状数组
单点更新,区间查询HDUOJ 1166 敌兵布阵 420ms#define lbt(x) x & -xint a[maxn], n, bit[maxn];void update(int i, int val) { while (i <= n) { bit[i] += val; i += lbt(i); }}int sum(int i) { int ret = 0;原创 2017-08-22 19:54:01 · 222 阅读 · 0 评论 -
2017暑假训练之二分法
二分法判断解是否可行POJ 1064 Cable masterdouble a[maxn];int n, k;bool check(double mid) { int cnt = 0; for (int i = 0; i < n; ++i) cnt += a[i] / mid; return cnt >= k;}int main() { while (scanf("%d%d原创 2017-08-27 15:00:01 · 180 阅读 · 0 评论 -
2017暑假训练之线段树
线段树优点在于可以用数组来实现树形结构,大大简化代码。单点更新,区间查询HDUOJ 1166 敌兵布阵 374ms#define lson cur<<1, l, mid#define rson cur<<1 | 1, mid+1, rint n, a[maxn], sum[maxn << 2];void pushup(int cur) { sum[cur] = sum[cur <原创 2017-08-23 20:02:08 · 180 阅读 · 0 评论 -
2017暑假训练之并查集
开学了,事情也越来越多了。我会努力补完的。并查集基础应用HDUOJ 1232 畅通工程int f[maxn], _rank[maxn];void init(int n) { for (int i = 1; i <= n; ++i) f[i] = i, _rank[i] = 0;}//路径压缩的递归及非递归写法int find(int a) { //return f[a] =原创 2017-08-30 15:33:08 · 209 阅读 · 0 评论 -
2017暑假训练之KMP、扩展KMP
回过头看了一遍数据结构书上的kmp介绍,感觉清晰了好多^_^!主要是理解getnext的函数,它是由KMP及递推的思想得出的。简单的应用HDUOJ 1711 Number Sequenceint s[maxn], t[maxm], _next[maxn], n, m;void get_next(int *t, int *_next) { int i = 1, j = 0; _n原创 2017-08-31 19:09:36 · 194 阅读 · 0 评论 -
2017暑假训练之字典树、AC自动机
HDUOJ 1251 统计难题动态字典树写法struct Node { int cnt; Node *next[26]; Node() { cnt = 0; for (int i = 0; i < 26; ++i) next[i] = NULL; }};void add(char *s, Node *root) { Node *cur = root; while (*原创 2017-09-02 19:03:24 · 234 阅读 · 0 评论