- 博客(10)
- 资源 (2)
- 收藏
- 关注
原创 hdu 4622 Reincarnation(后缀数组)
hdu 4622 Reincarnation题意:还是比较容易理解,给出一个字符串,最长2000,q个询问,每次询问[l,r]区间内有多少个不同的字串。(为了与论文解释统一,这里解题思路里sa数组的值是从1到n,但其实代码中我的sa数组的值是从0到n)。解题思路:09年的后缀数组论文里有一个类似的题,求一个字串的不同字串有多少个。问不同的字串有多少个,即问对于每一个后缀,它的所有前缀中
2013-07-31 16:30:33 2386 4
原创 hdu 4630 No Pain No Game
hdu 4630 No Pain No Game题意:给出一个n和1到n的某个排列,询问q次,每次询问[l,r]区间内任意挑两个数,最大公约数的最大值是多少。解题思路:记录一个pre数组,pre[i]表示对于某个数i,已经出现过的它的倍数最近是在那个位置。将询问按右端点排序。用树状数组维护从某一位置到maxn的最佳答案。从1到n开始扫描num[i],sqrt(num[i])的复杂度去枚举它
2013-07-31 13:57:48 1390
原创 hdu4605 Magic Ball Game
#include#include#include#includeusing namespace std ;const int maxn = 111111 * 2 ;struct Ans{ int x , y ;} ans[maxn] ;struct Point{ int x , v ;} p[maxn] ;struct Node{ int id , x ;
2013-07-24 16:31:51 931
原创 poj2486 Apple Tree (树形dp)
题意:有一颗苹果树,树上的u节点上有num[u]个苹果,树根为1号节点,囧king从根开始走,没走到一个节点就把接点上的苹果吃光,问囧king在不超过k步的情况下最多吃多少个苹果。解题思路:处理出两个dp数组,f1[u][i]表示在不超过i步的情况下,从u节点开始,往下吃,吃完后回到u节点,最多能吃多少苹果。f2[u][i]表示在不超过i步的情况下,从u节点开始往下吃,最多能吃多少苹果。#in
2013-07-24 14:21:36 884
原创 网络流
最大流ISAP模板poj1273#include#include#include#include#define ll __int64using namespace std ;const int maxn = 111111 ;struct Edge{ int from , to , cap , flow , next ;} edge[maxn<<1] ;int
2013-07-19 10:45:05 931
原创 codeforces 161D Distance in Tree(树形dp)
codeforces 161D Distance in Tree(树形dp) 题意:求一颗树中,两个节点间距离为m的点对有几对。因为节点数有50000,考虑最短路算法肯定是不对的。解题思路:树形dp。先预处理出dp[u][i]表示以u为根的树上,到u的距离为i的点有多少个。再dfs搜索一遍,将dp[u][m]*2累加到sum中,即u树中到u的距离为m的个数。然后统计所有的子树 将d
2013-07-18 16:15:08 999
原创 HDOJ (HDU) 1561 The more, The Better (树形DP)
HDOJ (HDU) 1561 The more, The Better (树形DP)题意:中文题。。解题思路:求最优解,考虑dp。树形dp,转换成有依赖的分组背包dp[u][i]表示u子树中取i个物品,能获得的的最大价值是多少。cnt[u]数组表示u子树的大小,即背包的容量,cnt数组可以通过递归计算子树后不断增大。设V为U的儿子,取到v必须取到u。所以先不考虑将u物品放入背包中,而
2013-07-18 15:21:05 837
原创 zstu4119 Juice树形dp
题意:给出一颗树,树根有无穷大的能量。所有的就节点通过管道连接,管道能流过的能量上限为p[i](1-100)。点亮每一个节点都需要一定的能量r[i](0-100)。流入每个子节点管道的能量总和,不能超过它与父亲相连的管道的直径。问最多能点亮几个节点。解题思路:题目要求最优值,可以想到dp的思路。dp[u][i]表示流入u节点i 的能量,最多能将u子树上的多少个节点点亮。那么就转换成了一个分组背
2013-07-18 10:50:49 779
原创 SRM 497 DIV1 550
题意:给出一颗树(需要自己先构造),书上的节点有颜色和tag两种信息。颜色共有7种,tag有3种,分别是“u”,“i” ,“b”类型的tag。我们要对这棵树进行染色,每次染色,可以对当前节点染色,也可以对其子树染色。对子树染色时,每次染色能且仅能将所有类型某一tag的节点染成某一相同颜色。问至少需要染色多少次,才能将每个节点染成其所需的相应颜色。解题思路:我们要得到的答案为某一最优解,因此能够
2013-07-16 15:22:58 839
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人