自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I am a slow walker, but I never walk backwards!

ACM水货的学习史。。。。。

  • 博客(50)
  • 收藏
  • 关注

原创 POJ 2492 A Bug's Life(关系并查集)

题意就是找出虫子之间是否有同性恋。。。。这个虫子真的很赶潮流啊,竟然也搞基、、、跟1703一样的关系并查集。A Bug's LifeTime Limit: 10000MS Memory Limit: 65536KTotal Submissions: 26105 Accepted: 8513Description

2014-02-28 16:45:07 924

原创 POJ 1703 Find them, Catch them (关系并查集)

这道题目的描述我感觉还是抄啸爷的吧,这个描述太逗了啊。题意:某城市存在蛇帮和龙帮两大帮派(话说名字还能再挫一点点吗. . . )。在某一次像东莞这样的大规模的扫黄打非中,警察抓住了 n 个人,但是不缺定他们分别属于哪个帮派。现在给你一些条件,然后让你判断两个人是否属于同一个帮派。这是一道关系并查集的题目啊,第一次做。啸爷很耐心的讲解了思路。过程很好理解啊。就是这个并查集需要保存一下他自

2014-02-28 15:47:38 927

原创 POJ 3368 Frequent values (UVA 11235)(RMQ)

感觉不太好做吧,算法训练指南P198 UVA11235和这道题的解释一样。大家可以参考一下。Frequent valuesTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 12436 Accepted: 4554DescriptionYou

2014-02-27 19:37:01 853

原创 POJ 3264 Balanced Lineup(简单的RMQ)

话说刚开始学习线段树的时候就拿这题试了一下水,给过了。现在学习RMQ再过一遍,感觉这种方式即好写又快啊,不错啊。算法就不解释了啊。大家可以看一下刘汝佳写的大白书。感觉写的挺好的。RMQ第一题。#include #include #include #include #include #include #include #include #include #include #i

2014-02-26 20:46:25 878

转载 学习笔记----RMQ算法

1. 概述RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们暂不介绍。2.RMQ算法对于该问题,最容易想到的解决方案是遍历,复杂度是O(n)。但当数据量非常大

2014-02-26 20:42:48 731

原创 POJ 3321 Apple Tree(dfs+树状数组)

题目的意思是给你一棵树上面有很多苹果,你可以摘苹果树也会长苹果。让你求出树上某一节点上所有的苹果。从别人那里看的分析,感觉挺好的:分析:每个分支其实就是一个节点,先dfs整个树,求出每个节点的时间戳,即每个节点第一次访问的时间和最后一次访问的时间,分别用begin和end记录,以时间戳为编号,则在begin[x]和end[x]之间的编号的节点就是x的子树,以时间戳为树状数组的下标,查询时,

2014-02-26 18:37:50 1153

原创 POJ 1195 Mobile phones(二维树状数组)

题意很清晰就是对一个矩阵进行区间的更新与查询,代码写起来很简单。就是树状数组存贮方式的原理得知道,感觉树状数组,很强大啊、芳姐给指点的思路,每一个数组元素的子树是这个下标二进制的从右向左第一个1表示之前有多少个00。比如8->1000所以它可以由0100(4),0110(6),0111(7),组成。详解看之前的博客:http://blog.csdn.net/fulongxu/article/det

2014-02-26 15:22:35 898

原创 POJ 3468 A Simple Problem with Integers(线段树区间操作)

题目的意思很简单就是一个线段树的区间的增加数字,与区间的查询。说一下,区间操作的题目第一次做啊,我瞎搞了一下,超时了啊。于是求助于啸爷,啸爷又是“苦心教导”啊。。感激不近啊。。一个区间当有更新的时候,先把区间上的总和更新一下,然后标记一下更新的多少,然后如果以后还会找到这个区间的时候,要把他所标记的那个数字传到他的左右子树中去。因为,这样的话,只更新了这个区间。他的子区间能没有发生过改变。

2014-02-25 20:33:06 889

原创 URAL 1167. Bicolored Horses(二维dp或者记忆化搜索)

这道题是啸爷做的,然后跟我商量了一下。我感觉这个刚在杭电上做过的一道题目类似,推了一下状态转移公式。无奈,水平太差,竟然推出来,没有写对。只好看了一下,虎哥和催老师的题解。虎哥用的记忆化搜索。感觉挺好的,也学着写了一下。状态转移方程是:dp[i][j] = min(dp[i][j], dp[i-k][j-1]+(k-(num[i]-num[i-k])*(num[i]-num[i-k])))。这

2014-02-24 19:55:33 986

原创 HDU 1244 Max Sum Plus Plus Plus(二维dp)

一开始想到的状态转移方程是:dp[i][j] = max{dp[i-1][j], dp[i-1][j-1] + sum[k]-sum[k-l[j]]。表示从第i个数字中,已经选择了j个关系。枚举k来找到最优问题。但是这么是不对的啊,因为这样考虑的话你得考虑一下i-1个结束的位置。否则的话就会有重复子区间,不符合要求啊。后来 看了网上有一人把状态转移方程是这么写的:dp[i][j] = max(

2014-02-24 08:21:41 987

原创 HDU 1224 Free DIY Tour(简单dp?+记录路径)

说是dp感觉还不若说是最短路的求法啊,就是每个城市选不选则的依据是之前的是否比他还大。其实感觉就是bfs找到最大值,再记录路径。为毛在HDU的难度还是2啊。不理解啊。。。怎么分的啊、、、Free DIY TourTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T

2014-02-23 16:26:45 807

原创 HDU 1208 Pascal's Travels(记忆化搜索)

记忆化搜索这种东东以前好像没写过,这是第一次写吧,其实也挺好理解的啊。就是一个dp与搜索的结合,dfs后保存每一步的值,然后输出就行了啊。Pascal's TravelsTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1

2014-02-23 15:15:10 858

原创 HDU 1160 FatMouse's Speed(求最长递减序列+记录路径)

这道题的意思是:有人认为老鼠越胖跑得越快。现在给你n个老鼠,给出每个老鼠的重量和速度。按重量排序后求出来有多少老鼠的的速度是一个递减序列。看看是否那个人是否正确。输出序列的长度,还得输出这个序列上老鼠原来在输入时的位置。所以要用一个数组保存前驱。注意:Special JudgeFatMouse's SpeedTime Limit: 2000/1000 MS (Java/Ot

2014-02-23 09:47:31 846

原创 POJ 2352 Stars(简单树状数组)

什么是树状数组在这里就不说了啊,这里有解释了啊。http://blog.csdn.net/fulongxu/article/details/19701281就是一个模版题目,直接套模版都可以过。先建数组,再求和。StarsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 293

2014-02-22 21:16:01 970

转载 学习笔记----树状数组

感觉写的很好,转过来学习一下:http://www.cppblog.com/Ylemzy/articles/98322.html树状数组树状数组是对一个数组改变某个元素和求和比较实用的数据结构。两中操作都是O(logn)。  在解题过程中,我们有时需要维护一个数组的前缀和S[i]=A[1]+A[2]+...+A[i]。          但是不难发现,如果我们修改了任意

2014-02-22 20:54:11 1019

原创 POJ 2750 Potted Flower(线段树+dp)

题目大意:给定一个环形序列,每次修改一个元素,输出环上的最大连续子列的和。解题思路:用线段树记录当前区间的非空最大子列和当前区间的非空最小子列。如果环上的数都是正整数,答案是:环上数的总和-根结点的非空最小子列;这里面要注意的是:建树的时候要一遍输入一遍递归。Potted FlowerTime Limit: 2000MS Memory Limit:

2014-02-22 19:07:57 1032

原创 POJ 2886 Who Gets the Most Candies?(线段树+反素数)

这个反素数不太会,这道题目其实也不是自己想出来的看了别人的博客:http://blog.csdn.net/weiguang_123/article/details/7880875里面说的很详细,我就不在多说了啊。Who Gets the Most Candies?Time Limit: 5000MS Memory Limit: 131072K

2014-02-22 15:26:36 851

原创 HDU 1158 Employment Planning (简单二维dp)

先说一下题意:就是有一个工程要干m月,每个月需要num[i]个工人,每个工人雇佣、工资、解雇,分别需要花费,h、s、f的钱,让你求出这m个月怎么安排,才会使得花费最小。状态转移方程很好推啊,就是这个月的花费可以有三种情况组成。1.延续上月的,不再雇佣,不在解雇工人。发工资;2.解雇一部分人,付解雇的钱,再发工资;3.再雇佣一部分人,再发工资;所以方程式是:if(k > j)   dp[

2014-02-22 14:33:28 967

原创 HDU 2159 FATE (多重背包)

就是一个裸的多重背包,竟然想复杂了啊。状态转移方程:dp[i][j] = max(dp[i][j], dp[i-lose[k]][j-1]+add[k]);FATETime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 63

2014-02-21 20:46:03 765

原创 HDU 1203 I NEED A OFFER! (dp+概率)

这题其实没用到什么概率公式啊,就是相互独立事件求一个对立的事件。状态转移方程:dp[j] = min(dp[j], dp[j-f[i].w]*(1-f[i].p))。以所花费的钱dp,求出来录取不到的小值,反过来就是可以录取到的最大值。#include #include #include #include #include #include #include #include

2014-02-21 19:44:01 918

原创 HDU 1421 搬寝室 (dp+小贪心)

这个题目的意思就不解释了啊,就是找到最优的解,使消耗的体力最小。先说状态转移方程式:dp[i][j] = min(dp[i-1][j], dp[i-2][j-1]+(w[i]-w[i-1])^2)。解释一下:这里面的i代表当前取到了第几件物品,j表示当前已经选择了j对。dp[i-1][j]这里表示的是当前这件物品i没有选择,而最小的价值是之前i-1的状态延续过来的。dp[i-2][j-1]+(

2014-02-21 19:13:28 819

原创 Codeforces Round #231 (Div. 2) B Very Beautiful Number(数字递推)

一看到题目的时候就感觉很有思路,后写了几次试了一下,感觉对了。可惜代码能力不够强,一直在dbug,最后才过了样例。但是感觉怪怪的,要过不了,最后真的卡在了24组数据上了啊。sad、、、又是细节没注意啊、、递推的方法,枚举最后一位数字,因为这个数字里面的顺序是有关系的所以最后一位dp[q]*x一定等于dp[q-1]。比如样例:6 5 中的142857 和 714285。7*5 的个位

2014-02-21 10:00:06 1061

原创 POJ 2828 Buy Tickets 线段树入门(建树稍微有点抽象)

一开始看的时候真的不知道为什么是线段树的题目。后来看到了网上他们的讲解,发现原来也是线段树。先说一下题意:就是买票插队的问题,有n个人插队,他们都是插道a的后面,所以他的当前位置是a+1,然后也肯能会有别的人插到他的前面去,所以他的最终位置会发生变化,要你说出最终队伍的顺序。做的方法是:倒过来更新线段树,找到每个人应该存在的位置,然后记录下来,输出就行了。解释一下算法:这里建树保存

2014-02-20 21:17:36 1001

原创 HDU 1166 敌兵布阵 线段树入门题目

跟HDU1754 差不多,就是线段树的动态修改,与查询。敌兵布阵Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 34753    Accepted Submission(s): 14770Problem

2014-02-20 17:09:56 939

原创 POJ 2582 Mayor's posters 线段树入门题+离散化

本来线段树就学的不扎实,后来个什么离散化,乱乱的啊、、后来看了一人写的,用结构体记录的方法进行离散化。感觉写的挺好的。题意很简单:就是在一堵墙上涂色,然后输出你能看到的颜色的种类。离散化+涂色问题。Mayor's postersTime Limit: 1000MS Memory Limit: 65536KTotal Submissions:

2014-02-20 16:55:20 1060

原创 HDU 1754 I Hate It 线段树入门

线段树的建立与动态的更新和查询。在这里说一下啊,由于输入写的不对,一直RE,以后得注意一下,ctrl+Z一定得直接退出啊。I Hate ItTime Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 31303    Accep

2014-02-20 14:22:57 809

原创 HDU 1556 Color the ball 线段树入门题

典型的线段树,区间的更新,统计区间内元素的和。Color the ballTime Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7031    Accepted Submission(s): 3668Probl

2014-02-20 10:28:39 888

原创 HDU 1003 Max Sum 求最大连续和

就是一个求数列最大连续的和,然后记录初末位置。思想是dp[i] = {dp[i-1]+a[i], a[i]}Max SumTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 126645    Accepted Submis

2014-02-20 09:25:34 867

原创 POJ 3264 Balanced Lineup 线段树入门(点的查找)

这道题的意思是:给你n个点,每个数出现的位置对应着改点数的大小。然后给出m个区间输出每个区间上的最大值与最小值的差。典型的线段树啊,自己写的那个代码很搓,然后啸爷教了我,他怎么写的,就学习了一下。以后尽量写的好一点啊。主要是线段树的建立与查找。Balanced LineupTime Limit: 5000MS Memory Limit: 65536K

2014-02-20 08:49:17 927

原创 POJ 2777 Count Color 线段树入门题

今天开始看的线段树,感觉树存储的优势了啊,很强大、时间复杂度降低了很多啊。在这里先说一下题目的大体意思是:给区间进行染色,后染的颜色会会覆盖掉之前染过的颜色,然后输入C是代表给区间(a,b)染色成c。P代表输出区间(a,b)一共有几种颜色。典型的线段树的创建、修改、与查询问题啊。所以要用线段树来做啊、否则会超时的啊,我好像跑了969ms,有点龟速了啊,但是重点是学习算法,优化以后熟悉了再说

2014-02-19 20:06:16 929

转载 学习笔记——线段树算法学习

这是从网上看到的两篇博客感觉挺好的就转过来,留作复习的材料。转载来源:http://www.cnblogs.com/superbin/archive/2010/08/02/1790467.html线段树(interval tree) 是把区间逐次二分得到的一树状结构,它反映了包括归并排序在内的很多分治算法的问题求解方式。 上图是一棵典型的线段树,它对区间[1

2014-02-19 19:54:24 1415

原创 POJ 3686 The Windy's KM模版+拆点建图

题目的意思是:有N个订单和M个机器,给出第i个订单在第j个机器完成的时间Mij,每台机器同一时刻只能处理一个订单,机器必须完整地完成一个订单后才能接着完成下一个订单。问N个订单完成时间的平均值最少为多少。这里注意建图的时候的权值问题,因为物品被生产出来之后越早生产出来的等的时间越长:可以列一个式子:∑s = (s1)+(s1+s2)+.......+(s1+s2+...+sk)。所以可以合并一

2014-02-18 19:45:09 1105

原创 POJ 2392 Space Elevator 多重背包

看见啸爷再看这道题目,也跟着看了看,看懂之后感觉有戏,很裸的背包,果然1A,嘿嘿。题目大意:给你n种木块,然后让你输出最高可以组成的高度。限制条件是:每种木块的个数,与木块的在高度h以上就不可以再出现了。解题思路:根据每种木块可以到达的高度sort一遍然后就是多重背包,找到满足条件的最大的高度。注意可以到达的最大的高度不会超过sort之后木块可以到达的上限,f[n-1].lim,因

2014-02-18 16:34:23 815

转载 学习笔记----KM算法

话说KM这个东西看起来有点吃力啊,本来就笨再加上状态不是很好,看的好慢啊。一开始看的书,书上有好多的什么定理的东东说的很官方,不是那么的通俗易懂啊。我自己的理解就是在二分图中找一个最优的匹配。意思就是,先找到那个叫做相等子图的东东,然后在那个基础上进行想外的扩散。如果遇到一些点不能被是最优覆盖时,就要调整了啊。就把那个d找出来,然后调整那个顶标。总之,感觉乱乱的啊,先把这个东西,标记一下啊,我

2014-02-18 15:33:33 1119

转载 POJ 2400 Supervisor, Supervisee KM +dfs回溯

转载来源:http://www.cnblogs.com/E-star/archive/2012/07/22/2603809.html题意:有n个管理员需要雇佣n个工作人员。 每个管理员对每个工作人员的评价不同,评价值(score)从0-n-1,0代表评价最高,n-1代表评价最低,(这样处理用KMq求解时才能出现0)同样,每个工作人员对每个管理员也有不同 的评价,评价值也是从0-

2014-02-18 15:21:04 1056

原创 POJ 2976 Dropping tests 01分数规划

先从ZP那里粘了点东西过来,再加入自己的理解。摘:题目大意就 给定n个二元组(a,b),扔掉k个二元组,使得剩下的a元素之和与b元素之和的比率最大     题目求的是 max(∑a[i] * x[i] / (b[i] * x[i]))  其中a,b都是一一对应的。 x[i]取0,1  并且 ∑x[i] = n - k;    转:那么可以转化一下。  令r = ∑a

2014-02-17 20:56:28 924

原创 POJ 3308 Paratroopers 最小割、最大流

这道题目的建图是:从源点到行,在从行到列,最后从列到汇点。然后注意权值,因为这里让求的是乘积的最大值,所以要是用EK求最大时,用到的是加法,所以需要用对数转化一下。log(a)+log(b) = log(a*b),然后再转化回来就行了啊。这道题目数组开小了,但是poj一直返回wa,然后就提交了好多遍才找到原因啊,以后的注意一下。ParatroopersT

2014-02-17 14:53:33 995

原创 POJ 3422 Kaka's Matrix Travels 最小费用最大流

这道题目,题目意思虽然很好理解,但是建图不是很好建。题意:有个方阵,每个格子里都有一个非负数,从左上角走到右下角,每次走一步,只能往右或往下走,经过的数字拿走 每次都找可以拿到数字和最大的路径走,走k次,求最大和。可能是自己做的题目太少的原因,这道题目的建图,感觉不太好建。这道题要拆点,把每个点拆成两个点:一个v1->v1',在这里网络流的流量是1,费用就是这个点所有代表的数字,另一个

2014-02-16 21:13:22 902

原创 POJ 2195 Going Home 最小费用最大流

第二道费用流的题目,这道题目的建图还是很简单的啊,抽象出来一个超级源点,一个超级汇点。然后从每个人到房子的距离为花费,然后容量为1,建图。一开始在建图的问题上没太想明白、、、感觉就得这么建图,好像也是蒙对了啊。后来LYN给我点播了一下。一开始我是考虑到一个房子会有对应多个人的情况,然后想不明白怎么处理这些会有冲突的情况。后来想到了,spfa的时候就会把最优的一种情况先选出来。然后就是次优的情况了啊

2014-02-16 16:40:12 876

原创 POJ 2516 Minimum Cost 最小费用最大流

先说一下,第一道最小费用最大流,这些东西学习了别人的东西,尤其是这个题意,真的很不太好懂啊。题目的意思是百度的啊:有N个供应商,M个店主,K种物品。每个供应商对每种物品的的供应量已知,每个店主对每种物品的需求量的已知,从不同的供应商运送不同的货物到不同的店主手上需要不同的花费,又已知从供应商Mj送第kind种货物的单位数量到店主Ni手上所需的单位花费。还从别人那里搞来一张图片,一看就知道数

2014-02-15 21:16:02 1071

空空如也

空空如也

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

TA关注的人

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