摘要:
URAL_1471 这个题目可以用树链剖分做,另外推荐一个讲树链剖分通俗易懂的博客:http://blog.sina.com.cn/s/blog_6974c8b20100zc61.html。#include<stdio.h>#include<string.h>#define MAXD 50010#define MAXM 100010int N, Q, first[MAXD], next[MAXM], v[MAXM], e;int fa[MAXD], dep[MAXD], son[MAXD], size[MAXD], w[MAXD], top[MAXD], cnt;int 阅读全文
posted @ 2012-06-01 23:33
Staginner
阅读(283)
评论(0)
推荐(0)
摘要:
HDU_3966 树链剖分的题目,推荐一个讲树链剖分通俗易懂的博客:http://blog.sina.com.cn/s/blog_6974c8b20100zc61.html。#include<stdio.h>#include<string.h>#define MAXD 50010#define MAXM 100010int N, M, Q, first[MAXD], e, next[MAXM], v[MAXM];int fa[MAXD], dep[MAXD], size[MAXD], son[MAXD], top[MAXD], w[MAXD], cnt;int a[MA 阅读全文
posted @ 2012-06-01 20:09
Staginner
阅读(507)
评论(0)
推荐(0)
摘要:
SPOJ_375 树链剖分的处女作终于AC啦,O(∩_∩)O哈哈~ 思想是从这篇博客里面学来的:http://blog.sina.com.cn/s/blog_6974c8b20100zc61.html,上面讲得通俗易懂。只不过我在预处理的时候是用他说的避免暴栈的bfs方式来做的。#include<stdio.h>#include<string.h>#define MAXD 10010#define MAXM 20010#define NINF 0xc3c3c3c3int N, cnt, first[MAXD], e, next[MAXM], v[MAXM], fa[MA 阅读全文
posted @ 2012-06-01 17:30
Staginner
阅读(335)
评论(2)
推荐(0)
摘要:
SPOJ_4487 其实这个题目和GSS1是差不多的,只不过由于有增加和删除的操作,这样用线段树就搞不定了,因此可以维护一个splay来实现这些操作。 但是一开始我写出的程序总是TLE,而和网上一些AC的程序对照之后发现无非有两点很不同的地方,一个是他们都用了结构体,另一个是他们都用了指针。在百思不得其解之际,我把以前的若干个数组仿照一个AC的程序写成了结构体,就像下面这样:struct Splay{ int left, right, pre, size, sum, mc, key, lc, rc; #define left(x) sp[x].left #define r... 阅读全文
posted @ 2012-06-01 02:18
Staginner
阅读(327)
评论(1)
推荐(0)
浙公网安备 33010602011771号