hdu
文章平均质量分 57
NKWBTB
ACMer
展开
-
HDU Boring counting 4358 莫队算法
题目大意:给一颗N个节点的树,每个节点上有一个颜色。给出Q组询问,每次询问一个子树上恰好出现K次的颜色的个数。做法: - 将树DFS一遍,记下时间戳,得到每个子树dfs序的对应区间,并将颜色离散化。 - 记下每个询问,将询问子树变成询问区间,将区间左端点除以n−−√\sqrt n排序,在同一块的询问按右端点排序。 - 接着按莫队算法移动区间,得到对应答案。 1435原创 2015-08-29 10:10:12 · 853 阅读 · 0 评论 -
HDU 5412 区间第K值 带修改 树状数组套平衡树
题意:给定一个序列,两种操作:1、求修改第i个数为Vi;2、求区间[L,R]第K大的值。 2015多校练习赛的一道题。因为是经典题所以很多人都直接把模板敲上去了,然而通过率却惨不忍睹。我也是直接套以前写的程序的SB之一。然而分块时间复杂度太高并不能通过本题(分块做法见:http://blog.csdn.net/nkwbtb/article/details/21639647)于是愉快的TLE了。考原创 2015-08-22 21:42:59 · 1016 阅读 · 0 评论 -
HDU 5374 Tetris 俄罗斯方块 模拟
这道题是喜闻乐见的大模拟题。 题目大意:在一个9X12的格子中玩俄罗斯方块,给定所有可能的方块形态,给定方块的掉落顺序,给定操作,w表示旋转,a表示左移,b表示右移,d表示下落一格(实际下落两格),p表示pass(即下落一格),输入数据保证不会GameOver,求最后的分数。 题意虽然简单,但是由于编程复杂度等众多原因,考场上写的人不多。这里有几个可以简化代码的trick,由于旋转最大循环节为原创 2015-08-23 10:03:29 · 1697 阅读 · 0 评论 -
HDU 5371 Hotaru's problem Manacher+Set
题目大意:给一个序列,求一个最长的子区间,满足一下条件 区间长度为3的倍数 将区间均分成三部分,第一部分等于第三部分,第二部分是第一部分镜像翻转 例:2 3 4|4 3 2|2 3 4就是一个合法的序列 通过观察我们知道,题目中合法的序列实际上就是一个有重叠部分的双回文串(上例中以|表示回文中心),那么可以得出一个暴力的方法那就是,枚举回文中心,然后向左右延伸,延伸过程中遇到满足要求的回文中心就更新原创 2015-08-25 09:26:10 · 607 阅读 · 0 评论 -
HDU 5305 Friends DFS
题目大意:给一个n(1≤n≤8)个顶点,m条边的无向图,要求给边进行黑白染色,使得对于每一个顶点,黑边数=白边数,求方案数。一个很直接的想法是DFS,枚举边的颜色,然后检查答案,但是边数最多有28条,直接做是会超时的,需要做几个优化: 首先每个顶点如果有M条边,如果M-1条边的颜色确定了那么第M条边肯定也确定了。 如果存在度为奇数的点,那么显然答案是0的。 对于第一个优化,我们发现,如果枚举边不太好原创 2015-08-26 09:59:29 · 714 阅读 · 0 评论 -
HDU 5381 The sum of gcd 离线处理+线段树
题意:给一组序列,多次询问,每次询问f(l,r)=∑ri=l∑rj=igcd(ai,ai+1....aj)f(l,r)=\sum_{i=l}^{r}\sum_{j=i}^{r}gcd(a_i,a_{i+1}....a_{j})最初在赛场上看到这道题的时候,就想离线处理,但是怎么也不会。原因是当时并不知道这题的一个性质:从一个下标为i的数向后的连续区间[i,i+1]、[i,i+2]...[i,n][i原创 2015-08-24 10:56:33 · 936 阅读 · 0 评论