自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 UVALive 3983 Robotruck

题目大意:有一个机器人要去送邮件,n个邮件,按照一定顺序来,机器人有一定的容量C,它可以顺序拿重量不超过C的邮件拿去送,然后,回来再拿再送,送完为止,注意,送的时也要按照拿的顺序送,给你每个邮件要送达的坐标,(0,0)为它拿邮件的地方,问你送完邮件机器人最少需要走的曼哈顿距离。思路:很清楚,就是动态规划。d[ i ]表示送完i件,所需走过的最短距离。那么d[ i ] = min(d[ j ]

2013-07-31 21:12:56 690

原创 2013 多校第三场 hdu 4630 No Pain No Game(线段树)

hdu 4630题目:http://acm.hdu.edu.cn/showproblem.php?pid=4630题目大意:1~n,总共个数,任意顺序排列,然后给你m个询问,每个询问有a、b,问你区间a~b的数里面任意两个数最大gcd是多少。思路:由于它问的是gcd,那么我们可以先枚举约数,即1~n,对于每个约数去画区间,我们要求的是对于每个区间长度要尽可能的小,比如约数是1的区间,那

2013-07-31 19:02:59 736

原创 2013 多校第三场 hdu 4631 Sad Love Story

hdu 4631题目:http://acm.hdu.edu.cn/showproblem.php?pid=4631题目大意:一个平面,先开始没有点,然后分别给你一个前一个点坐标和当前点坐标x、y的递推式,每次新加入一个点,总共加入n个点,每加入一个点(当点数>1时),有一个距离最近的点对,要求的就把这n-1个最小的距离加起来的值。思路:用一个set保存点,并按照x升序排,然后对于要新加

2013-07-31 15:12:40 755

原创 UVALive 3882 And Then There Was One

题目大意:经典约瑟夫环问题,n个人,围成一圈,第一次删第m个人,以后每k个人删一次,问你最后留下的是谁。思路:为了处理方便,我们约定n个人的编号为0~n-1,最后答案+1就好,先不考虑m,设f[ n ]为这n个人最后留下的编号,那么f[ n +1 ] =( f[ n ] + k)%(n+1),f[ 1 ] = 0。根据这个递推式,一直推到n-1,然后再来处理m的问题,第一个人我们是删m,那么最

2013-07-31 13:21:27 1243

原创 UVA 10859 Placing Lampposts

题目大意:有一个无向无环图,有n个节点,m条边,可以再某些节点上放一个路灯,它可以照亮连接它的所有边,问你要把所有的边照亮,最少需要放几个路灯,再放路灯数最小的前提下,同时被两个路灯照亮的路径数最多。思路:首先,要确定这是一个森林,我先开始就没想到这一点,认为它不是一棵树,然后就没有往树形DP上去想,囧。。可是后面看了一下书,知道是森林了,也发现很难写,因为它有两个量要考虑。后来在看书,书

2013-07-31 12:42:33 758

原创 UVA 11825 Hackers' Crackdown

题意:有一个工作网络,有n台计算机,总共有n个服务,先开始每个计算机都运行着这n项服务,现在有一个黑客他要入侵,他能停止每台计算机上的一项服务,那么和这台计算机相邻的的计算机的这项服务也会停止,如果一项服务在所有计算机中都停止了,那么这项服务就瘫痪了。问你最多他能瘫痪多少项服务。思路:先开始这道题没想法,又是要全部停止才算瘫痪,又是网络的,后来一看数据范围,n是16,马上就想到状态压缩了,可是

2013-07-30 21:16:39 737

原创 2013 多校第三场 hdu 4628 Pieces

hdu 4628题目:http://acm.hdu.edu.cn/showproblem.php?pid=4628思路:状压一下,然后写个check函数判断是否回文就好。这道题目我真心无语。。 下午先开始我们想贪心,然后我直接敲,WA了,后来找到一个数据,推翻了贪心的想法,然后,马上开始了状态压缩DP,第一遍写了个记忆化,TLE,马上剪枝优化,一交,还是TLE,又把贪心的那个答案拿来剪

2013-07-30 19:42:15 1032

原创 UVA 10891 Game of Sum

题意:有一个序列,两个人A、B玩游戏, 每次可以从左端或者右端取任意个数字,两个人轮着来,两个人均按照最优的选法来,分数就是那个选的数字的和,A第一个选,问你最多A能比B多几分。思路:动态规划是很明显的,设个d[ i ][ j ] (表示区间i~j)这个也是很明显的,可是我自己一个人想的时候还自己加了两维,表示是谁的最大值,该谁取,可是后面搞得搞得就把自己给搞晕了,意识到自己的状态应该搞复杂了

2013-07-30 18:18:18 1025 3

原创 UVA 10635 Prince and Princess

题目:给你两个序列A、B,每个序列的元素都互不相同,求他们的最长公共子序列。思路:一开始想都没想就写了个O(n^2)的最长公共子序列,后来写完后,发现编译器报错,空间不对,一看他们的长度上限是 250*250 ,后来优化了下空间,一交,TLE,回来想想,我这样搞肯定超时的嘛。。。 一看书上的思路,顿时豁然开朗。由于每个序列的元素都是互不相同的,所以将A序列重新编号,1-p,然后根据这个编号,对

2013-07-30 10:07:42 864

原创 2013 多校第一场 hdu 4610 Cards

hdu 4610题目:http://acm.hdu.edu.cn/showproblem.php?pid=4610题目大意:从n中牌里选正好k张,每张牌都有一个值,有四个条件:(1)它自己是素数(2)它的因子个数是素数(3)它的因子和市素数(4)它的因子的积是素数。他满足几个条件就是几分。如果所有选取的牌中都没有满足某个条件,那个会获得这个条件的额外加分,有可能是负数。思路:因为要判断

2013-07-28 20:08:44 696

原创 2013 多校第一场 hdu 4605 Magic Ball Game

hdu 4605题目:http://acm.hdu.edu.cn/showproblem.php?pid=4605题目大意:给你一棵二叉树,每个节点有一个w值,现在有一颗小球,值为x,从根节点往下掉,如果w==x,那么它就会停止;如果w>x,那么它往左、右儿子的概率都是1、2;如果w思路:比赛的时候,我们都是跟着榜走的,都卡在那道Deque上了,根本没有看这题。昨天晚上自己看了一下,其

2013-07-28 11:15:35 846

原创 2013 多校第二场 hdu 4620 Fruit Ninja Extreme

hdu 4620题目:http://acm.hdu.edu.cn/showproblem.php?pid=4620题目大意:切水果,给你n个 cut ,每个 cut 都有包含的水果数及每个编号,还有这个 cut 的时间。每个当前的 cut 有效只有当其包含的数大于等于3个才行(即原来总的数 - 之前被切掉的 >=3),每次要切就要把剩下的全切完,问你最大的能执行的 cut 数。思路:比

2013-07-27 15:03:05 894

原创 2013 多校第二场 hdu 4617 Weapon

hdu 4617题目:http://acm.hdu.edu.cn/showproblem.php?pid=4617题目大意:思路:代码如下:#include#include#include#includeusing namespace std;struct Point{ double x,y,z; Point(){} Point(doubl

2013-07-26 22:10:21 774

原创 2013 多校第二场 hdu 4612 Warm up

hdu 4612题目:http://acm.hdu.edu.cn/showproblem.php?pid=4612题目大意:给你一幅图,问你加一条边,使桥数最小,输出这个最小桥数。思路:先缩点,那么它就是一棵树,原图的桥数也就是求出来强连通分量的个数-1,再求出树的最长边(点数最多),那么最小的桥数 = 原图的桥数 - 最长边对应的点数。其实这道题我们比赛的思路已经非常正确了,就是

2013-07-26 19:05:23 766

原创 2013 多校第二场 hdu 4616 Game

hdu 4616题目:http://acm.hdu.edu.cn/showproblem.php?pid=4616题目大意:给你一棵有n个节点的树,编号0~n-1,你先开始可以进入到任意一个节点,每个点都有一定的val,并可能有陷阱,你最多只能碰到 c 个陷阱,到碰到 c 个陷阱时,你马上就 Game Over 了,不能再继续走了,不管后面还有没有陷阱。问你最大能获得的 val 值。思

2013-07-26 16:33:06 1078 4

原创 2013 多校第二场 hdu 4614 Vases and Flowers(线段树)

hdu 4614题目:http://acm.hdu.edu.cn/showproblem.php?pid=4614题目大意:n个花瓶,m个操作,k=1 时是从 a 开始插花,如果已经有花,那么跳过,能插多少插多少。k=2,把区间[ a , b ] 内的有的花都清理掉。思路:裸线段树。就是找区间的时候比较麻烦,其实写两个二分先判断出左右边界就好了。。 时间是 2s ,再乘个 logn 应

2013-07-26 11:04:24 978

原创 2013 多校第二场 hdu 4611 Balls Rearrangement

hdu 4611题目:http://acm.hdu.edu.cn/showproblem.php?pid=4611题目大意:题目意思说起来挺烦的,其实就是让你算 ABS(i % a - i % b)的和,i 的范围是 10^9 。思路:比赛的时候想到最小公倍数了,也想到一段一段来了,可就是不知道哪里脑子抽了,还想整理一下,推出一个公式来。其实,现在反过来想想真心不用,a、b小的时候,根

2013-07-25 23:15:31 761

原创 2013 多校第二场 hdu 4618 Palindrome Sub-Array

hdu 4618题目:http://acm.hdu.edu.cn/showproblem.php?pid=4618题目大意:给你一个 n*m 的矩阵,问你最大的子回文方阵的边长。思路:AC了之后才发现直接暴力,break很多,再加上数据水的的话,时间方面一点压力没有啊。。比赛的时候队友看的题,说复杂度太高,我一看,想想也是,就没去做。原来是大大的水题,裸暴力题啊,还是那句话,那么多

2013-07-25 20:16:59 828

原创 2013 多校第二场 hdu 4619 Warm up 2

hdu 4619题目:http://acm.hdu.edu.cn/showproblem.php?pid=4619题目大意:给你n+m个1*2的小矩形,n个横向放置,m个纵向放置,相同方向的不能重叠,问你删掉矩形,两两都不重叠的最大矩形数。思路:把所有的矩形看成边,一个点它最多只有两条边,枚举每个点,把它所在的线段的长度求出来,那么它能留下来的最大矩形数就是(len+1)/2,因为肯定

2013-07-25 19:18:24 753

原创 2013 多校第一场 hdu 4609 3-idiots(FFT)

hdu 4609题目:http://acm.hdu.edu.cn/showproblem.php?pid=4609题目大意:给你 n 条边,问你任意三条边能组成三角形的概率。思路:设 Ai 记录长度为 i 的边的个数,让它对自己本身做FFT,求出任意两条边能得到的和的数量。然后枚举第三条边,两边之和大于第三条边,第三条边指的是三条边中最长的边,所以还要 - (比它大的两条边的组合+一大

2013-07-25 11:04:17 973

原创 2013 多校第一场 hdu 4604 Deque

hdu 4604题目:http://acm.hdu.edu.cn/showproblem.php?pid=4604题目大意:给你一个序列和一个双端队列,维持队列里是不下降的,问你一个一个加序列里的元素,队列的最大的长度是多少。思路:首先,只考虑一个单调上升的双端队列,那么对于序列 A 和 队列 Q,找出以 Ai 为首的最长上升子序列和最长下降子序列,那么 Q 能维持的最大长度为这两个长

2013-07-24 12:35:47 768

原创 2013 多校第一场 hdu 4602 Partition

hdu 4602题目:http://acm.hdu.edu.cn/showproblem.php?pid=4602题目大意:将一个数 n 拆分,问所有的拆分组合中 K 出现了几次。思路:我们可以特判出n代码如下:#include#include#includeusing namespace std;const int MOD = 1e9+7;typedef __

2013-07-23 21:02:18 783

原创 2013 多校第一场 hdu 4607 Park Visit

hdu 4607题目:http://acm.hdu.edu.cn/showproblem.php?pid=4607思路:今天下午这道题想了很久,其他队伍都出了好久了,我们还没想到,最先开始想到的是三维的树形DP,但是时间、空间都伤不起。最后还是问了下别人才知道的,原来只要求树上的最长链就好了,看来 YY 能力不行啊。。代码如下:#include#include#include

2013-07-23 19:27:49 931

原创 spoj 2666 (树链的分治)

spoj 2668题目:http://www.spoj.com/problems/QTREE4/题目大意:给你一棵有N个点的树,每个点有颜色,每条树枝有权值。先开始所有的点都是白色的。A 表示询问两个端点都为白色的最大距离,C a 表示将a点的颜色取反。思路:漆子超论文中路径剖分与树的分治的联系的第一道例题,路径剖分的本质是基于链的分治算法,具体解题思路参看他的论文。这道题写了一天

2013-07-23 10:25:40 1412

原创 spoj 375 (树链剖分)

spoj 375题目:http://www.spoj.com/problems/QTREE/题目大意:给你一棵有N个结点的树,执行两种操作:(1)CHANGE a b,把某一条树枝上的权值改为b。(2)QUERY a b,询问a到b的路径上最大的权值是多少。思路:继上一道 Free tour 之后漆子超论文里的第三道例题,上两道是点,这次是用的是树链剖分,具体解题思想,可以看漆子超的论

2013-07-21 14:14:23 907

转载 【转载】树链剖分

原文地址:http://blog.sina.com.cn/s/blog_6974c8b20100zc61.html“在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。    树链,就是树上的路径。剖分,就是把路径分类为重链和轻链。    记siz[v]表示以v为根的子树的节

2013-07-21 13:52:24 736

原创 spoj 1825 (树的分治)

spoj 1825题目:http://www.spoj.com/problems/FTOUR2/题目大意:给你一棵节点数为 N 的树,每条树枝有权值,点有黑白两色,问你找一条路径使其进过的黑色的节点数不超过 K 且权值和最大,然后输出这个权值。思路:继上题的 Tree 之后,漆子超论文的下一道题目,表示看论文、题解和别人代码做了很久。。 = =用G[ i ][ j ] 表示根节点

2013-07-20 23:42:09 1329 1

原创 poj 1741 (树的分治)

poi 1741题目:http://poj.org/problem?id=1741题意:给你一棵最多 10^4 个点组成的树,每根树枝的长度最多为 10^3 ,问你两个点之间的距离思路:楼教男人八题之一。。  显然,O(N^2) 找点对的方法是不行的,而 O(NK) (khttp://wenku.baidu.com/view/e087065f804d2b160b4ec0b5.htm

2013-07-20 14:30:14 797

原创 poj 2486 (树形DP)

poj 2486题目:http://poj.org/problem?id=2486题意:有一棵树,每个节点有一些苹果,人从1号节点出发,最多走K步,问你最多能吃到多少苹果。思路:很好的一道题。俗话说好马不吃回头草,这道题目的难点就在于看到走回头路,并如何处理好这个DP。如果不用考虑走回头路,那么这题也太简单了吧,第一遍我就是这么做的 ,  = = WA了。。 考虑回头路,那么需要增设一

2013-07-19 19:47:39 879

原创 poj 1947 (树形DP)

poj 1947题目:http://poj.org/problem?id=1947题意:找到一棵节点数为P的子树,使切断的边最少。思路:树形DP,状态转移方程为: d[ u ][ i ] = min(d[ u ][ i ]+1 , min( d[ v ][ j ]+d[ u ][ i-j ])) , j<i 。d[ u ][ i ]表示以u为根节点的节点数为 i 的所需切断的最少边数。

2013-07-19 16:41:04 806

原创 hdu 1011(树形DP)

hdu 1011题目:http://acm.hdu.edu.cn/showproblem.php?pid=1011题目大意:一棵树,有n个节点,根节点编号为1,即入口,每个节点有一些Bugs及Brains,现在有m个士兵,一个士兵能打20个Bugs,让你用这些士兵去攻打这个Cave,最多能获得多少Brains。思路:好吧,我承认我做了很久。状态方程还是比较简单的,d[ u ][ i ]

2013-07-19 14:48:04 852

原创 poj 1155 (树形DP)

poj 1155题目:http://poj.org/problem?id=1155树形DP。d [ u ][ i ]表示以u为根节点,用户数为i 的最大收益。状态转移方程:d[ u ][ i ] = max( d[ u ][ j ] + d[ v ][ i - j ] - cost  ,d[ u ][ i ]),i>j;注意边界条件。先开始直接将每个节点的 i 都循环成 1~m TLE了一

2013-07-19 11:07:09 757

原创 hdu 1561(树形DP)

hdu 1561题目:http://acm.hdu.edu.cn/showproblem.php?pid=1561先开始建图,发现可能成环,要先把所有的环都去掉,新建一个节点0,把a==0的点全都连到0上,然后就是root = 0 的一棵树。对每一个节点的所有儿子节点进行背包。后来看了网上的代码,发现都没考虑成环的情况,不知道是我想多了,本来就不需要考虑,还是很多人都没注意到。后来我也写了

2013-07-19 09:39:00 893

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除