05 2016 档案

FZU-2216 The Longest Straight (二分枚举)
摘要:题目大意:给n个0~m之间的数,如果是0,那么0可以变为任意的一个1~m之间的一个数。从中选出若干个数,使构成一个连续的序列。问能构成的最长序列的长度为多少? 题目分析:枚举连续序列的起点,二分枚举二分序列的终点。 代码如下; 阅读全文

posted @ 2016-05-29 17:22 20143605 阅读(199) 评论(0) 推荐(0)

HDU-4614 Vases and Flowers (线段树区间更新)
摘要:题目大意:有n个花瓶,每个花瓶中只能放一朵花。两种操作,一种是从A开始放F朵花,如果有的花瓶中已经有花则跳过这个花瓶,往下一个花瓶放;第二种是将区间[A,B]之间花瓶中的花清空。如果是第一种操作,输出这次放的花的左右端点;如果是第二种操作,输出这次总共清理出了多少支花。 题目分析:建立线段树,节点维 阅读全文

posted @ 2016-05-28 00:48 20143605 阅读(1023) 评论(0) 推荐(0)

POJ-2528 Mayor's posters (线段树区间更新+离散化)
摘要:题目分析:线段树区间更新+离散化 代码如下: 阅读全文

posted @ 2016-05-27 21:58 20143605 阅读(162) 评论(0) 推荐(0)

HDU-4521 小明系列问题――小明序列(线段树)
摘要:题目大意:求LIS,但是要求LIS中相邻的两个元素之间的距离要大于d。 题目分析:线段树。节点(l,r)保存信息为LIS的最后一个元素落在[l,r]之间的最大长度。从第d+2个元素开始查询更新操作,但要在更新第i-d+1个元素信息之后。 代码如下: 阅读全文

posted @ 2016-05-19 20:46 20143605 阅读(236) 评论(0) 推荐(0)

hihoCoder#1080 (线段树)
摘要:题目大意:线段树的区间更改与查询,但是涉及到两种区间修改方式,一是给区间中的数全部加上一个数,二是将一个区间全部置为同一个数,然后询问整个区间和。 题目分析:处理好set操作和add操作的先后顺序就OK了。 代码如下: 阅读全文

posted @ 2016-05-16 11:05 20143605 阅读(161) 评论(0) 推荐(0)

HZAU 17:LCS
摘要:17: LCS Description Giving two strings consists of only lowercase letters, find the LCS(Longest Common Subsequence) whose all partition are not less t 阅读全文

posted @ 2016-05-16 00:15 20143605 阅读(159) 评论(0) 推荐(0)

hihoCoder#1055 : 刷油漆 (树形DP+01背包)
摘要:题目大意:给一棵带点权的树,现在要从根节点开始选出m个连通的节点,使总权值最大。 题目分析:定义状态dp(u,m)表示在以u为根的子树从根节点开始选出m个点连通的最大总权值,则dp(u,m)=max(dp(u,m),dp(u,m-k)+dp(son,k)),其中0<=k<m。这是01背包,k应该从大 阅读全文

posted @ 2016-05-12 11:58 20143605 阅读(285) 评论(0) 推荐(0)

hihoCoder #1127:二分图最小点覆盖和最大独立集
摘要:题目大意:求二分图最小点覆盖和最大独立集。 题目分析:如果选中一个点,那么与这个点相连的所有边都被覆盖,使所有边都被覆盖的最小点集称为最小点覆盖,它等于最大匹配;任意两个点之间都没有边相连的最大点集称为最大独立集,它等于总节点数减去最大匹配数。 代码如下: 阅读全文

posted @ 2016-05-12 00:25 20143605 阅读(176) 评论(0) 推荐(0)

hihoCoder #1033 : 交错和 (数位Dp)
摘要:题目大意: 给定一个数 x,设它十进制展从高位到低位上的数位依次是 a0, a1, ..., an - 1,定义交错和函数: f(x) = a0 - a1 + a2 - ... + ( - 1)n - 1an - 1 例如: f(3214567) = 3 - 2 + 1 - 4 + 5 - 6 +  阅读全文

posted @ 2016-05-11 22:14 20143605 阅读(253) 评论(0) 推荐(0)

HDU-5536 Chip Factory (字典树)
摘要:题目大意:给n个数,编号为1~n,取三个编号不同的数,使表达式(a+b)^c的值最大。 题目分析:将这n个数按二进制位建立一棵trie。枚举i、j的和,查询亦或最大值,但在查询之前要把i、j在trie中删除,查询完毕后再插入trie。 ps:用数组实现trie会超时,因为每次test case之前都 阅读全文

posted @ 2016-05-09 21:40 20143605 阅读(167) 评论(0) 推荐(0)

hihoCoder #1040 (判断是否为矩形)
摘要:题目大意:给四条线段,问能否构成一个矩形? 题目分析:先判断能否构成四边形,然后选一条边,看另外三条边中是否为一条与他平行,两条垂直。 代码如下: 阅读全文

posted @ 2016-05-09 19:38 20143605 阅读(320) 评论(0) 推荐(0)

hihoCoder:#1079(线段树+离散化)
摘要:题目大意:给n个区间,有的区间可能覆盖掉其他区间,问没有完全被其他区间覆盖的区间有几个?区间依次给出,如果有两个区间完全一样,则视为后面的覆盖前面的。 题目分析:区间可能很长,所以要将其离散化。但离散化之后区间就变成了连续的,不再是离散的。也就是叶子由左右端点为u、u变成了左右端点为u-1、u,左右 阅读全文

posted @ 2016-05-09 17:11 20143605 阅读(394) 评论(0) 推荐(0)

HDU-5532 Almost Sorted Array (LIS)
摘要:题目大意:给一个n个数的序列,问这个序列删掉一个数后是否有序。 题目分析:找最长上升子序列和最长下降子序列,只要有一个的长度不小于n-1即可。 代码如下: 阅读全文

posted @ 2016-05-08 22:00 20143605 阅读(206) 评论(0) 推荐(0)

UVALive-7303 Aquarium (最小生成树)
摘要:题目大意:在nxm的方格中,每一个1x1的小方格中都有一堵沿对角线的墙,并且每堵墙都有一个坚固程度,这些墙将nxm的方格分割成了若干个区域。现在要拆除一些墙,使其变成一个区域。 题目分析:将区域视作点,将墙视作边,这样问题就变成了求最小生成树。 代码如下: 阅读全文

posted @ 2016-05-07 18:18 20143605 阅读(234) 评论(0) 推荐(0)

hihoCoder #1078 : 线段树的区间修改
摘要:题目大意及分析: 线段树成段更新裸题。 代码如下: 阅读全文

posted @ 2016-05-06 23:08 20143605 阅读(187) 评论(0) 推荐(0)

hihoCoder #1301 : 筑地市场 (打表+构造)
摘要:打表代码: 阅读全文

posted @ 2016-05-06 21:40 20143605 阅读(190) 评论(0) 推荐(0)

POJ-2886 Who Gets the Most Candies?(线段树+模拟)
摘要:题目大意:n个小孩按顺时针站成一圈,每次会有一个小孩出队(第一个出队的小孩已知),在他出队时会指定下一个出队的小孩,直到所有的小孩全部出队游戏结束。第p个出队的小孩会得到f(p)个糖果,f(p)为p的正约数个数。问获得最多糖果的小孩是谁?并求出他获得的糖果数。如果有多解,只输出最先出队的那个小孩。 阅读全文

posted @ 2016-05-05 16:18 20143605 阅读(292) 评论(0) 推荐(0)

POJ-2481 Cows (线段树单点更新)
摘要:题目大意:给n个区间,对于任意一个区间,求出能完全包含它并且长度比它长的区间的个数。 题目分析:将一个区间视为二位坐标系中的一个点,左端点视作横坐标,右端点视作纵坐标。则题目变成了求每个点的左上方、正左方、正上方点的个数。将所有坐标先按纵坐标从大到小、再按横坐标从小到大排序。按顺序便利所有坐标,满足 阅读全文

posted @ 2016-05-05 12:29 20143605 阅读(419) 评论(0) 推荐(0)

POJ-2352 Stars(树状数组)
摘要:题目大意:给n个点的坐标,求出每一个点的左下方(允许同一行或同一列)的点的个数。 题目分析:题目中的坐标是先按y从小到大,再按x从小到大给出的。对于坐标 (xi,yi),只需考虑横坐标在0~xi之间的坐标已经出现了几个。用树状数组维护即可。 代码如下: 阅读全文

posted @ 2016-05-05 10:49 20143605 阅读(178) 评论(0) 推荐(0)

CoderForces 280B(记忆化搜索)
摘要:题目大意:一个纸牌游戏,52张纸牌排成一列,每张纸牌有面值和花色两种属性。每次操作可以用最后一张纸牌将倒数第二张或者倒数第四张替换,但前提是两张牌的花色或者面值相同。问最终能否只剩一张牌。 题目分析:取当前所剩纸牌张数和最后三张牌作为状态,显然深搜要超时。记忆化搜索即可。 代码如下: 阅读全文

posted @ 2016-05-04 23:54 20143605 阅读(142) 评论(0) 推荐(0)