随笔分类 -  ACM_HDU

HDU 5039 Hilarity
摘要:题意:一棵树n个结点,每条边有0.1两种权值,每次询问权值为奇数的路径数目,或者改变某一条边的权值。分析:这个题目很巧妙低利用了异或和的特性,dfs得到每个点到根结点的权值异或和,然后奇数则为1,偶数为0,异或和为0和1的点组成的路径权值和一定为奇数,询问结果就是0个数和1个数乘积2倍。代码: 1... 阅读全文

posted @ 2014-10-23 22:15 rootial 阅读(299) 评论(0) 推荐(0)

HDU 5044 TREE
摘要:题意:一棵树上两种操作,操作1,改变u到v的每一点的值增加k,操作2,改变u到v每一条边值增加k。最后结束时问,每一点和每一条边的值。初始时,点和边的值都为0.分析:很显然要用树链剖分,将点和边分别划分成连续一段的编号,然后就是维护一段一段的值了,给它增加一个值,由于题目只需要输出最后结果,那么可以... 阅读全文

posted @ 2014-09-27 18:34 rootial 阅读(334) 评论(0) 推荐(0)

HDU 5033 Building
摘要:分析:利用单调栈分别算出最右的能够看见的楼,和最左的能够看见的楼,然后计算。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 1... 阅读全文

posted @ 2014-09-26 23:21 rootial 阅读(277) 评论(0) 推荐(0)

hdu 4878 ZCC loves words AC自动机+中国剩余定理+快速幂
摘要:题意就不说了。分析:折腾好几天自己写的代码还是看了别人代码后发现几乎没什么复杂度的差别,可是就是一直超时,后来干脆照着别人写啊,一直WA,就在准备放弃干脆先写这篇博客的时候,又看了一眼WA的代码,发现一个中间变量没有取模直接爆掉了。终于AC了,做了好几天。思路:对所有单词建立AC自动机,那么每个节点... 阅读全文

posted @ 2014-09-19 14:23 rootial 阅读(441) 评论(0) 推荐(0)

HDOJ多校联合第五场
摘要:1001 Inversion 题意:求逆序对,然后交换k次相邻的两个数,使得剩下的逆序对最少。分析:题目用到的结论是:数组中存在一对逆序对,那么可以通过交换相邻两个数使得逆序对减少1,交换k次,可以最多减少k个。嘉定ai>aj,i aj,那么ak,aj构成逆序对,交换后逆序对减少1;#12:ak=... 阅读全文

posted @ 2014-08-09 23:09 rootial 阅读(228) 评论(0) 推荐(0)

HDOJ多校联合第四场
摘要:B题:C题:仅由'A','G','C','T',4个字母组成,给定一个字符串S,|S|<=15,给定一个整数m,以m为长度且仅含4种字母的字符串T,求LCS(S,T)为0,1,2,3....|S|,时相应字符串T的数目。分析:dp+状态压缩反正我不会这题,也是看了羊神的代码之后才明白这题的思路下面说... 阅读全文

posted @ 2014-08-09 21:37 rootial 阅读(111) 评论(0) 推荐(0)

HDOJ多校联合第六场
摘要:先一道一道题慢慢补上,1009.题意,一棵N(Nw的路径出现次数,以及S2在v->w出现的次数。S1(x) = S0[1....x],1w出现的次数记为t1[x],那么t1[x] = dp1[u][1][x] - sum{t1[a-1]*dp1[fa[w]][a][x]} (1 3 #includ... 阅读全文

posted @ 2014-08-08 12:47 rootial 阅读(296) 评论(0) 推荐(0)

HDOJ 4893 Wow! Such Sequence!
摘要:题意是这样的,给定一个n个元素的数组,初始值为0,3种操作:1 k d将第k个数增加d;2 l r 询问区间l...r范围内数之和;3 l r 表示将区间l...r内的数变成离他最近的斐波那契数,要求尽量小。线段树操作题目,其中对于第三种操作用一个懒惰标记一下,表示l...r内的数是不是已经变成斐波... 阅读全文

posted @ 2014-07-30 21:56 rootial 阅读(212) 评论(0) 推荐(0)

HDU - 3594 Cactus
摘要:这是一个有向仙人掌的题目,要求判定给定的图是不是强连通图,而且每一条边只能出现在一个环中,这里有一个介绍有向仙人掌的文档:http://files.cnblogs.com/ambition/cactus_solution.pdf。有向仙人掌的判定:1.dfs树中不存在横叉边;2.dfs树中不存在lowlink[v]>pre[u],也就是不存在桥,lowlink[v]表示从v及其子节点出发能回到的pre值最小的祖先的pre值;3.从节点u出发的点v,满足pre[v] . 2 #include 3 #include 4 #include 5 #include 6 #include... 阅读全文

posted @ 2013-09-27 21:23 rootial 阅读(321) 评论(0) 推荐(0)

HDU 3397 Sequence operation
摘要:题目意思很简单,四种操作:全部变成1,全部变成0,或者区间异或,查询区间1的个数,和区间连续的1的最大长度。理解起来没有问题,可是写起代码来发现非常繁琐,共用了9个数组,差不多200行了,第一次写这么长得代码,WA一次,后来发现某个地方rt 2 #include 3 #include 4 #include 5 #define N 111111 6 #define lson l,m,rt>1))) 27 lsum[rt]+=lsum[rt>1))) 29 lsum0[rt]+=lsum0[rt>1)) 31 rsum[rt]+=rsum[... 阅读全文

posted @ 2013-08-13 19:52 rootial 阅读(193) 评论(0) 推荐(0)

hdu 3308 LCIS
摘要:最近开始线段树一段时间了,也发现了不少大牛的博客比如HH大牛 ,小媛姐。这个题目是我在看HH大牛的线段树专题是给出的习题,(可以去他博客找找,真心推荐)原本例题是POJ3667 Hotel这个题目,是一个求连续空区间的情况,而hdoj这个题目是求给定区间单调连续的最大区间长度,两个题目思路很相似,将节点rt用sum[rt],lsum[rt],rsum[rt]来描述,分别表示rt对应区间即[l,r]内满足条件的区间的最大长度,从左边端点l开始满足条件的最大区间长度,从右边r开始向左的满足条件的最大区间长度。void PushUp(int rt,int m,int mid)//mid表示更新区间的 阅读全文

posted @ 2013-08-10 22:31 rootial 阅读(516) 评论(0) 推荐(0)

HDU 4081 Qin Shi Huang's National Road System
摘要:步骤是先求最小生成树,然后选两个不同的点,遍历所有的这样的点,选出两点人口比较大,而且连通两点的边的最大边比较大的情况。因此要对i,j点连接起来的边进行遍历。 1 #include 2 #include 3 #include 4 #define N 1010 5 #define max(a,b) ((a)>(b)?(a):(b)) 6 #define INF 999999999 7 8 double map[N][N],lowcost[N],cost[N][N]; 9 int vis[N];/*-1表示该点已经加入,非0表示i和vis[i]的值表示的点构成一条短边*/10 int n;1 阅读全文

posted @ 2013-07-30 21:12 rootial 阅读(217) 评论(0) 推荐(0)

导航