- 博客(34)
- 收藏
- 关注
原创 hdu5125 magic balls BIT求LIS
分析:我们可以用dp[i][j]表示i为结尾的使用了j点体力的最大值,因为分a和b,所以再加1维,dp[i][j][0]表示a,dp[i][j][1]表示b,然后状态转移方程是这样的dp[i]j[j][0] = max{dp[k][j][0], k dp[i][j][1] = max{dp[k][j-1][0], k 但是这样时间复杂度是指数级的然后我们可以用把a,b数组离散化后用
2014-12-01 23:58:16
801
原创 BestCoder Round #20小结
第一题:就是找到出现数目最多的,直接用数组记录即可#include#includeint v[105];int main(){ int T; scanf("%d", &T); while(T--){ int n,x; memset(v, 0, sizeof(v)); scanf("%d", &n);
2014-12-01 23:39:08
564
原创 POJ 1036 Gangsters 水dp。。
分析:假设大家都知道题意的基础上, - -,题目的数据中 s 是必然在[0,K]之间的, t是在[0,T]之间的,所以每个点都是合法的,然后我们按照时间排序,然后以从当前点到结束能获得的最大值为状态进行转移,转移方程是d[i] = max(d[j] + person[i].p) (person[j].t-person[i].t >= abs(person[j].s - person[i].s),值
2014-11-29 00:49:56
504
原创 poj2482 Stars in Your Window hdu 5091 Beam Cannon 线段树 扫描线
今天把线段树神题2482过了,然后把弱化版的28
2014-11-04 23:19:22
921
原创 (重温)poj 2528 Mayor's posters 线段树 染色+离散化
这题算是比较经典的线段染色问题了,但是我在POJ上很多人数据有问题,或者说无限WA,我刚
2014-05-13 20:09:53
620
原创 POJ 1077 Eight(据说此题不做人生不完整~~~)
分析:八数码问题,典型的搜索题。本题有3个点。一个是搜索方式,一个是判重,一个是状态表示。搜索方法有多种,速度从低到高是bfs,双向bfs,A*,IDA*。POJ的discuss说BFS一般在500MS左右。但是本人只会BFS,就先用了BFS的做法。网上最通俗的做法是用康托展开和逆展开来判重和表示状态,再慢一点的就是用一个数组表示状态。我是不想用康托展开,又觉得数组太慢。所以想了很
2013-06-19 10:12:26
1082
2
原创 poj 3321 Apple Tree DFS时间戳预处理+树状数组
分析:本题的操作乍一看很像树状数组,单点更新,查询连续子序列和。多完美,可仔细一想不对,如何用一种序列来表示枝叉呢,这是一个麻烦的问题。换个角度想想,如果表示一个树枝上所有节点呢。答案是有的,dfs。从根开始深搜这棵树,访问每个点并加上时间戳。那么一个树枝上的所有节点就可以用时间表示,就是访问树枝的根的时间和后的时间之间。但是要注意的是,每个点都可以用两个时间表示,dfs前的时间和dfs后的时间。
2013-06-11 22:52:13
1023
原创 poj 2761 Feed the dogs 平衡树,线段树,树状数组
分析:这题就是求区间第k小数,但是这题和poj2104的区别就是,2104的区间是可以完全包含的,就是说某个点进出区间不止一次,所以平衡树和线段树是超时的,只能用划分树或者归并树,这题是可以用平衡树解的。先把区间从左到右排序,然后依次插入平衡树,线段树,然后利用树的性质在log n 内找到第k小。这题也可以用树状数组解,但是需要二分第k小,我一直觉得二分不是最好的做法,考虑能不能在log n内用树
2013-06-08 11:46:26
995
原创 hdu 1540 Tunnel Warfare 线段树
这题目典型的线段树做法,但是网上很多人对每个节点都记录了3个值,左端起最长,右端起最长和中间最长,实际没有必要。因为这题本质上我理解为是求所在序列的长度,举例,n为7,d 3 d 5,那么4所在的长度为1,1,2,3所在的长度为3。谈不上最大最小。只需要维护左端起最长的连续区间和右端起最长的连续区间即可。对于查询,Q k,如果k在左儿子的右区间内并且k在右儿子的左区间内,那么就返回
2013-06-07 10:43:13
504
原创 从断更到今天小结
我去看看,从什么时候断更的,好吧,4月7号。确实是不应该的,虽然期间去了南京两趟,还有两门课结课了,考试复习。但是我每天都有做题,只是因为个人感情问题,没什么心思写。过了那么久,那么久。还是无法挣脱吧,我的心情始终由你主宰,但是该干活了。生活在天朝的survival的模式下,如果每天只用来感叹,是不会有明天的,况且这是我热爱的ACM啊。无论是基于功利还是非功利的心态,我必须要把ACM做到我
2013-06-06 20:03:29
553
原创 网络流与线性规划24题11航空路线问题
问题描述:给定一张航空图,图中顶点代表城市,边代表2城市间的直通航线。现要求找出一条满足下述限制条件的且途经城市最多的旅行路线。(1)从最西端城市出发,单向从西向东途经若干城市到达最东端城市,然后再单向从东向西飞回起点(可途经若干城市)。(2)除起点城市外,任何城市只能访问1次。编程任务:对于给定的航空图,试设计一个算法找出一条满足要求的最佳航空旅行路线。数据输
2013-04-07 20:39:47
1695
原创 网络流与线性规划24题10餐巾计划问题
问题描述:一个餐厅在相继的N 天里,每天需用的餐巾数不尽相同。假设第i天需要ri块餐巾(i=1,2,…,N)。餐厅可以购买新的餐巾,每块餐巾的费用为p分;或者把旧餐巾送到快洗部,洗一块需m天,其费用为f 分;或者送到慢洗部,洗一块需n 天(n>m),其费用为s每天结束时,餐厅必须决定将多少块脏的餐巾送到快洗部,多少块餐巾送到慢洗部,以及多少块保存起来延期送洗。但是每天洗好的餐巾
2013-04-06 17:19:23
1212
原创 网络流与线性规划24题09方格取数问题
问题描述:在一个有m*n 个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意2 个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。编程任务:对于给定的方格棋盘,按照取数要求编程找出总和最大的数。数据输入:由文件input.txt提供输入数据。文件第1 行有2 个正整数m和n,分别表示棋盘的行数和列数。接下来的m行,每行有n个正整数,表
2013-04-03 21:22:20
1148
原创 网络流与线性规划24题08机器人路径规划问题之初探索(未完成版)
问题描述:机器人Rob可在一个树状路径上自由移动。给定树状路径T上的起点s 和终点t,机器人Rob要从s运动到t。树状路径T上有若干可移动的障碍物。由于路径狭窄,任何时刻在路径的任何位置不能同时容纳2 个物体。每一步可以将障碍物或机器人移到相邻的空顶点上。设计一个有效算法用最少移动次数使机器人从s运动到t。编程任务:对于给定的树T,以及障碍物在树T中的分布情况。计算机器
2013-04-02 15:17:36
2293
1
原创 网络流与线性规划24题07试题库问题
问题描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m 道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算法。编程任务:对于给定的组卷要求,计算满足要求的组卷方案。数据输入:由文件input.txt提供输入数据。文件第1行有2个正整数n和k (2 k 表示题库中试题类型总数,n 表示题库中试
2013-03-29 13:07:27
787
原创 网络流与线性规划24题06最长递增子序列问题
问题描述:给定正整数序列X1....... Xn 。(1)计算其最长递增子序列的长度s。(2)计算从给定的序列中最多可取出多少个长度为s的递增子序列。(3)如果允许在取出的序列中多次使用X1和Xn,则从给定序列中最多可取出多少个长度为s的递增子序列。编程任务:设计有效算法完成(1)(2)(3)提出的计算任务。数据输入:由文件input.txt提供输入数据。文件第
2013-03-28 20:46:44
895
原创 网络流与线性规划24题05圆桌问题
问题描述:假设有来自n 个不同单位的代表参加一次国际会议。每个单位的代表数分别为r i n i , =1,2,, 。会议餐厅共有m张餐桌,每张餐桌可容纳c (i 1,2, ,m) i = 个代表就餐。为了使代表们充分交流,希望从同一个单位来的代表不在同一个餐桌就餐。试设计一个算法,给出满足要求的代表就餐方案。编程任务:对于给定的代表数和餐桌数以及餐桌容量,编程计算满足
2013-03-25 16:37:21
938
1
原创 网络流与线性规划24题04魔术球问题
问题描述:假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,...的球。(1)每次只能在某根柱子的最上面放球。(2)在同一根柱子中,任何2个相邻球的编号之和为完全平方数。试设计一个算法,计算出在n根柱子上最多能放多少个球。例如,在4 根柱子上最多可放11 个球。编程任务:对于给定的n,计算在n根柱子上最多能放多少个球。数据输入:由文件inpu
2013-03-21 18:20:48
1029
原创 网络流与线性规划24题03最小路径覆盖问题
问题描述:给定有向图G=(V,E)。设P 是G 的一个简单路(顶点不相交)的集合。如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖。P 中路径可以从V 的任何一个顶点开始,长度也是任意的,特别地,可以为0。G 的最小路径覆盖是G 的所含路径条数最少的路径覆盖。设计一个有效算法求一个有向无环图G 的最小路径覆盖。编程任务:对于给定的给定有向无环图G,编程
2013-03-19 22:42:00
1151
原创 网络流与线性规划24题02太空飞行计划问题
问题描述:W 教授正在为国家航天中心计划一系列的太空飞行。每次太空飞行可进行一系列商业性实验而获取利润。现已确定了一个可供选择的实验集合E={E1,E2,…,Em},和进行这些实验需要使用的全部仪器的集合I={I1,I2,…In}。实验Ej需要用到的仪器是I的子集RjÍI。配置仪器Ik的费用为ck美元。实验Ej的赞助商已同意为该实验结果支付pj美元。W教授的任务是找出一个有效算
2013-03-17 14:10:59
1083
1
原创 网络流与线性规划24题01飞行员配对方案问题
看了那么久的算法导论和其他资料,终于懂了一点网络流,下面一段时间的目标是做完网络流24题。 问题描述: 第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2名飞行员,其中1名是英国飞行员,另1名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。如何选择配对飞行的飞行员才能
2013-03-14 09:47:56
1246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人