
数据结构
alpc_wt
a star in the making
展开
-
hdu5304 Eastest Magical Day Seep Group's Summer 状压dp+生成树
题目:http://acm.hdu.edu.cn/showproblem.php?pid=530416个点的无向图,问能生成多少个n条边的连通图。(即多一条边的树)先n^3 * 2^n 枚举所有的环,状压dp就行。dp[i][j]表示以i为终点,走了j状态集合的方案数。要枚举起点,每次走比起点大的点。所以要n^3 2^n枚举。把环压缩成点,构造基尔霍夫矩阵,每种状态下n原创 2015-07-26 10:21:40 · 1382 阅读 · 0 评论 -
51NOD算法马拉松 最大值问题 离线预处理+set lower_bound
题目:http://www.51nod.com/contest/problem.html#!problemId=1349题意:100000个数的序列,有100000次询问,每次问区间最大值大于等于k的区间有多少?思路:一开始没看到“大于等于”,想了很久也不会,原来看错题了。看错题害死人。一般询问的问题,如果不能用线段树log(n)求出,那么就离线做。首先将询问按从大到小排序原创 2015-07-05 11:08:08 · 1516 阅读 · 0 评论 -
hdu5274 Dylans loves tree LCA+线段树
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5274 在树上的询问和操作,每次修改单点值,询问两点之间出现次数为奇数的点权是什么,若没有输出-1.询问保证两点间至多只有一个数出现奇数次。 有一种经典的将树上的点转化成序列的方法,我们用dfs遍历这棵树,那么对于一个节点,他一点比他的子树即子节点先访问到,且当他的最后一个子节点的所有子树也都原创 2015-07-02 23:39:44 · 733 阅读 · 0 评论 -
hdu3530 Subsequence 单调队列
题目:在一个序列中找一个最长子串,使得子串的m维护一个递减的单调队列q1(队首为当前最大),同时维护一个递增的单调队列q2(队首为当前最小),控制最大减最小 小于等于k , 若最大减最小大于等于m,则更新答案。代码:#include#include#include#include#includeusing namespace std;const int N = 1e5+10原创 2015-06-19 10:19:42 · 642 阅读 · 0 评论 -
hdu5261蜀道难 单调队列
题目:一个圆周被均匀分成n个点,每个点有一个高度h[i],定义两个点的距离是dis(i,j) = h[i] + h[j] + (劣弧i,j).问最长距离的点对,要求字典序最小。单调队列:因为是圆周,要先把圆周变成链,倍增即可。在2n的链上,维护一个 h[i]-r*i 的单调递减队列,控制队列元素个数为什么要维护h[i]-r*i的递减队列呢?因为革更新答案时 是用h[i]+r*i +原创 2015-06-19 10:10:08 · 899 阅读 · 0 评论 -
hdu5212 Code 莫队算法
这道题需要一些莫队算法的知识定义记号f(A,B)表示询问区间A,B时的答案用记号+表示集合的并利用莫队算法我们可以计算出任意f(A,A)的值不妨假设A=[l1,r1],B=[l2,r2],C=[r1+1,l2−1]容易知道f(A,B)=f(A+B+C,A+B+C)+f(C,C)−f(A+C,A+C)−f(C+B,C+B)因此一个询问被拆成四个可以用莫队算法做的询问总的时间复杂度为O(原创 2015-05-01 12:48:36 · 846 阅读 · 0 评论 -
csu1515 squence 莫队算法
莫队大法好,分块一同乱搞。远哥出的题,当时没做出来,今天才学会莫队。如果[l,r] -> [l,r+1] 可以在o(1)时间内求出,就可以sqrt(n)分块后,对询问排序更新。因为我写的太丑了,必须用输入外挂才过了。复杂度msqrt(n)代码:#include#include#include#include#include#includeusing namesp原创 2015-04-01 20:41:12 · 532 阅读 · 0 评论 -
BZOJ 2038 小z的袜子
题意:(转)作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。你的任务便是告诉小Z,他有多大的概原创 2015-04-01 11:35:36 · 640 阅读 · 0 评论 -
hdu5195 DZY Loves Topological Sorting 线段树+拓扑排序
要求在一个DAG中删去不多于k条边,使得拓扑序的字典序最大。贪心策略:每次删去入度小于res的,序号尽量大的点的入边。需要用线段树维护区间最小值。代码:#include#include#include#include#include#include#includeusing namespace std;const int N = 400000 +10;const原创 2015-04-02 19:54:13 · 596 阅读 · 0 评论 -
Codeforces Round #291 Div2
A. Chewbaсca and Number签到题//#pragma comment(linker, "/STACK:102400000,102400000") 手动扩栈#include#include#include #include#include#include#include#include#include#include#include#include原创 2015-02-15 19:25:38 · 662 阅读 · 0 评论 -
JAVA总结 for ACMer
终于有机会静下心来总结一下模板原创 2014-10-15 21:09:00 · 785 阅读 · 0 评论 -
树状数组总结
今天学习了一下树状数组,做一个简单总结。原创 2014-07-26 13:02:48 · 473 阅读 · 0 评论 -
POJ2352 Stars
题目大意:在坐标上有n个星星,如果某个星星坐标为(x, y), 它的左下位置为:(x0,y0),x0按照y递增,如果y相同则x递增的顺序给出n个星星,求出所有level水平的数量。一维的树状数组,原创 2014-07-26 11:07:25 · 561 阅读 · 0 评论 -
hdu5293 Tree chain problem 树形dp+线段树
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5293在一棵树中,给出若干条链和链的权值,求选取不相交的链使得权值和最大。比赛的时候以为是树链剖分就果断没去想,其实是没思路。看了题解,原来是树形dp,话说多校第一场树形dp还真多。。。。维护d[i],表示以i为根节点的子树的最优答案。sum[i]表示i的儿子节点(只能是原创 2015-07-22 10:38:56 · 1601 阅读 · 1 评论