大一暑假集训总结
Chen丶HC
这个作者很懒,什么都没留下…
展开
-
待补
1.poj3109 扫描线算法原创 2017-08-23 14:09:46 · 222 阅读 · 0 评论 -
2017暑假训练之树状数组
单点更新,区间查询 HDUOJ 1166 敌兵布阵 420ms #define lbt(x) x & -x int 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 · 215 阅读 · 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 · 171 阅读 · 0 评论 -
2017暑假训练之线段树
线段树优点在于可以用数组来实现树形结构,大大简化代码。 单点更新,区间查询 HDUOJ 1166 敌兵布阵 374ms#define lson cur<<1, l, mid #define rson cur<<1 | 1, mid+1, r int n, a[maxn], sum[maxn << 2]; void pushup(int cur) { sum[cur] = sum[cur <原创 2017-08-23 20:02:08 · 170 阅读 · 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 · 198 阅读 · 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 · 178 阅读 · 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 · 219 阅读 · 0 评论