11 2012 档案

摘要:题意: 求第n个斐波那契数,结果mod10000. 阅读全文
posted @ 2012-11-28 12:31 kedebug 阅读(384) 评论(0) 推荐(0) 编辑
摘要:题意: 给定3个字符串,求前2个字符串的子串组成第三个字符串的情况的个数。 阅读全文
posted @ 2012-11-27 22:59 kedebug 阅读(420) 评论(0) 推荐(0) 编辑
摘要:题意: 给L升酒,有n个酒瓶,每个酒瓶有个最大容量和最小容量,酒瓶的个数不限。 问最多剩多少毫升酒没有装进去。 阅读全文
posted @ 2012-11-27 16:15 kedebug 阅读(398) 评论(0) 推荐(0) 编辑
摘要:题意: 有n个仓库(最多100个),m个管理员(最多30个),每个管理员有一个能力值P(接下来的一行有m个数,表示每个管理员的能力值) 每个仓库只能由一个管理员看管,但是每个管理员可以看管k个仓库(但是这个仓库分配到的安全值只有p/k,k=0,1,...), 每个月公司都要给看管员工资,雇用的管理员的工资即为他们的能力值p和,问,使每个仓库的安全值最高的前提下,使的工资总和最小。 输出最大安全值,并且输出最少的花费。 阅读全文
posted @ 2012-11-27 01:05 kedebug 阅读(719) 评论(0) 推荐(0) 编辑
摘要:题意: 给出一个矩阵的长和宽n,m,然后输入一些坐标,表示那个坐标上有垃圾(这道题里面每个坐标只有一个垃圾),然后机器人从(1,1)开始运动终点是(n,m) 运动的方向只能是向下或者向右走,途中它要捡垃圾,目的是要令它捡的垃圾数最多,然后在能保证捡到的垃圾数最多的情况下,统计出有多少种方法,然后输出其中任意的一种方案。 阅读全文
posted @ 2012-11-26 14:44 kedebug 阅读(608) 评论(0) 推荐(0) 编辑
摘要:题意: 有一个学校想要聘请老师,要求每个学科都有两个以上的老师授课,并且要使总费用最小。有S(最多8个)个学科,现任的M(最多20个)个老师(你必须继续聘请他们),N(最多100个)份申请。后来的M行每行有至少两个整数,表示现任的老师的工资,和他所教授的课程(可能不止一个)。再后来的N行每行有也有至少两个整数表示聘请这个老师所需的费用,以及他所教授的课程(可能不止一个)。 阅读全文
posted @ 2012-11-26 11:38 kedebug 阅读(596) 评论(0) 推荐(0) 编辑
摘要:题意: 每组数据由一串不超过200个字符的字符串构成,问把它们分成不超过int类型的数,组合起来最大是多少? 阅读全文
posted @ 2012-11-25 21:12 kedebug 阅读(454) 评论(0) 推荐(0) 编辑
摘要:题意: 每组测试数据有两个DNA,目标串为能保持两个给出的DNA的相对序列且为最小长度的串,并且要输出有多少种构造方法。 阅读全文
posted @ 2012-11-25 20:17 kedebug 阅读(593) 评论(0) 推荐(0) 编辑
摘要:题意: n个坐标上面分别有n棵树,每发射一次枪,可以把一条直线上面的树都消灭掉。 问要消灭到m棵树,最少需要几枪。 阅读全文
posted @ 2012-11-25 17:01 kedebug 阅读(320) 评论(0) 推荐(0) 编辑
摘要:题意: 每组数据开始有一个整数n,表示有n种试剂(最多6种)。接下来的n*n行列出来了每种试剂混合产生的化合物以及放出的热量。 然后一个整数m,代表有m个试管(最多10个)。 接下来一行有m个数,表示m个试管里分别装了哪几种试剂。 问怎么组合能产生最少的热量。测试样例之间用/分开,结果用.表示 阅读全文
posted @ 2012-11-25 14:37 kedebug 阅读(393) 评论(0) 推荐(0) 编辑
摘要:题意: 有n个主题。每堂课的时间是L。每个主题各要求t1,t2,...tn(1=ti=L)。对于每个主题,你要决定要哪堂课教。并且有如下的规则: 1.每个主题必须完整地包含在一堂课里。不能分成两部分教。 2.主题之间的顺序不能调换,即主题i必须在主题i+1之前教。 同时,如果在每堂课的最后如果能留有10分钟以内的时候,那么学生的不满意程序是最小的。不满意程度的计算如下所示: D=0(如果剩下的时间是0)。 D=-c(如果剩下的时间在10分钟以内)。 D=(t-10)^2(剩下的情况) 阅读全文
posted @ 2012-11-25 12:55 kedebug 阅读(715) 评论(0) 推荐(0) 编辑
摘要:题意: 有1, 5, 10三种硬币,分别有n1, n5, n10个,用来买c罐可乐。 每次只能买一罐,并且机器会自动按照用最少的硬币来组合最多的钱来找零。 问最少投入多少硬币,才能买到c罐可乐。(口袋里面的钱一定够买c可乐) 阅读全文
posted @ 2012-11-23 21:38 kedebug 阅读(444) 评论(0) 推荐(0) 编辑
摘要:题意: 给定两个序列,求两个序列的最长公共子序列。 阅读全文
posted @ 2012-11-22 20:21 kedebug 阅读(997) 评论(0) 推荐(1) 编辑
摘要:题意: 有2*n个点,使其组成n对,求n对点集的最小距离之和。 阅读全文
posted @ 2012-11-22 13:35 kedebug 阅读(477) 评论(0) 推荐(0) 编辑
摘要:题意: 给定n个数字,A和B可以从这串数字的两端任意选数字,一次只能从一端选取。 并且A B都尽力使自己选择的结果为最大的,可以理解成A B每一步走的都是最优的。 如果A先选择,则A B差值最大是多少。 阅读全文
posted @ 2012-11-22 10:56 kedebug 阅读(1091) 评论(0) 推荐(0) 编辑
摘要:题意: 受伤的皇后只能攻击它这一列的,和它周围的九个格子。 给定一个字符串,如果第i个字符是?则表示皇后能放在任意位置,如果不是?则表示它指定了必须放在哪一行,问有几种放法。 阅读全文
posted @ 2012-11-21 21:36 kedebug 阅读(1188) 评论(0) 推荐(0) 编辑
摘要:题意: 把一个整数i拆分成不大于j的数字组合。 阅读全文
posted @ 2012-11-21 17:06 kedebug 阅读(636) 评论(0) 推荐(0) 编辑
摘要:题意: 给定多个字符串,是按照字典顺序排列的。一个字符串如果能够可以通过改变一个字母,删除一个字母,增加一个字母变成后面的某一个字符串, 那么称这两个字符串之间存在一个阶梯,问最多有多少个阶梯。 阅读全文
posted @ 2012-11-21 15:45 kedebug 阅读(673) 评论(1) 推荐(0) 编辑
摘要:题意: 给定一个字符串,问最少插入多少个字符使其变成回文字符串,并输出。 阅读全文
posted @ 2012-11-21 13:18 kedebug 阅读(488) 评论(0) 推荐(0) 编辑
摘要:题意: 有一辆车,原始装有100L汽油,到达距离为d的目的地,中间有x个加油站,每升油的价格为p。 汽车每跑一公里耗油1L,求到达目的地油箱仍然有100L的最小花费。 阅读全文
posted @ 2012-11-21 12:06 kedebug 阅读(660) 评论(0) 推荐(0) 编辑
摘要:题意: 有n只乌龟,每只乌龟有个体重w以及力量s,乌龟所能承载的最大重量就是s,包括其体重。 问乌龟最多能叠几层? 阅读全文
posted @ 2012-11-20 23:00 kedebug 阅读(1276) 评论(0) 推荐(1) 编辑
摘要:题意: 有1^3, 2^3, ...... , 21^3 种货币,给定一个价钱n,问有多少种组合方法。 阅读全文
posted @ 2012-11-20 17:14 kedebug 阅读(433) 评论(0) 推荐(0) 编辑
摘要:题意: 给定一个字符串s,对s进行删除操作,使得剩下的子串是回文字符串,问最多有多少种这种子串。 阅读全文
posted @ 2012-11-20 16:46 kedebug 阅读(656) 评论(0) 推荐(0) 编辑
摘要:题意: 有n个数据,给定k,要从中选出k+8个三元组(x,y,z,其中x=y=z),每选一次的代价为(x-y)^2,求最小代价和。 阅读全文
posted @ 2012-11-19 20:42 kedebug 阅读(1310) 评论(1) 推荐(0) 编辑
摘要:题意: 前提要了解什么是二叉查找树,然后再是最优二叉查找树。 最优二叉查找树是指,在二叉查找树的基础上,要求总的编码长度最小(类似huffman编码)。 阅读全文
posted @ 2012-11-19 19:01 kedebug 阅读(1442) 评论(0) 推荐(0) 编辑
摘要:题意: 给定一个字符串,可以对其进行删除,插入,替换操作。 问最少经过几次操作,可以使这个字符串变成回文字符串。 阅读全文
posted @ 2012-11-19 14:34 kedebug 阅读(404) 评论(0) 推荐(0) 编辑
摘要:题目: 有n种物品,每种物品有x, y两个价值,并且可以有无限多个。 给定s,使得(x1+x2+....)^2 + (y1+y2+....)^2 = s ^ 2。并且物品个数最少。 阅读全文
posted @ 2012-11-19 13:31 kedebug 阅读(716) 评论(0) 推荐(0) 编辑
摘要:题意: 有n座城市,Trisha要求在这n座城市旅游k天,从城市1出发,第k天到达城市n。 输入有n*(n-1)行,每n-1行代表i到除了i之外的其他城市航班的时间以及价格。 求出Trisha的最小花费。 思路: 链式dp,dp[i][d]代表第d天到达i城市所需要的最小代价,于是dp[i][d] = min(dp[i][d], dp[j][d-1] + price[j][i][X])。 意思是:第d天到达i城市所花费的代价是,第d-1天到达j城市 + j到i的价格 最小的一个。 阅读全文
posted @ 2012-11-19 10:58 kedebug 阅读(575) 评论(0) 推荐(0) 编辑
摘要:题意: 类似于跳棋,当两颗石子左或者右有空位置时,移动。每次转移之后移去经过的石子。 思路: 有12个格子,所以状态最多有2^12=4096个。把每次搜索过的状态存在dp[]数组中,以后再次查询类似的直接返回即可。 阅读全文
posted @ 2012-11-18 20:46 kedebug 阅读(1187) 评论(0) 推荐(0) 编辑
摘要:题意: 一些重量递增而且各个面都有颜色的立方体,要将这些立方体堆成一个塔,要求两个接触面同色,而且下面的立方体更重。求塔的最大高度。 阅读全文
posted @ 2012-11-17 00:40 kedebug 阅读(500) 评论(0) 推荐(0) 编辑
摘要:题意: 找一个最长(假设长度为2N-1)的子序列,使得前N个元素递增,后N个元素递减。 思路: LIS。从1-n遍历求出最长上升子序列,再从n-1遍历求出逆序的最长上升子序列。 用最朴素的LIS算法是O(n*n),这一题就tle了。于是网上搜索出来一种O(nlogn)的算法。 阅读全文
posted @ 2012-11-16 22:38 kedebug 阅读(1637) 评论(0) 推荐(0) 编辑
摘要:题意: 给定2个字符串a, b,求b在a中出现的次数。要求可以是不连续的,但是b在a中的顺序必须和b以前的一致。 思路: 类似于数字分解的题目。dp[i][j]表示:b的前j个字符在a的前i个字符中出现的次数。 似乎这种表示方法司空见惯,但是一开始我还真没能搞懂如何去递推。事情的真相是: 如果a[i] == b[j]则 dp[i][j] = dp[i-1][j] + dp[i-1][j-1] 如果a[i] != b[j]则 dp[i][j] = dp[i-1][j] 阅读全文
posted @ 2012-11-16 11:26 kedebug 阅读(4761) 评论(0) 推荐(0) 编辑
摘要:题意: 有t组测试数据,每组测试数据给一个矩阵n,m。 接下来给出n行,每行第一个数字为该行的编号(从1开始),然后给出这行不能走的y坐标。 问从出发点(1,1),到(n,m)有多少种不同的路径。 阅读全文
posted @ 2012-11-15 22:27 kedebug 阅读(501) 评论(0) 推荐(0) 编辑
摘要:题意: 一堆石子,两个人每次可以拿X个,X有m种拿法。拿到最后石子的人获胜。 思路: 简单的状态递推dp,dp[i]=true表示有i个石子,首先选的人可以获胜。 阅读全文
posted @ 2012-11-15 15:20 kedebug 阅读(395) 评论(0) 推荐(0) 编辑
摘要:题意: 给你n种石头,长x,宽y,高z,每种石头数目无限,一块石头能放到另一块上的条件是:长和宽严格小于下面的石头。问叠起来的最大高度。 阅读全文
posted @ 2012-11-15 14:45 kedebug 阅读(691) 评论(0) 推荐(0) 编辑
摘要:题意: 求规定时间内并且时间最小剩余的情况下,最多能吃多少汉堡,有2类汉堡,吃每类汉堡所要的时间分别是n, m。 思路: 多重背包,需要变换的是要把汉堡的个数当成是汉堡的价值。一个汉堡的价值是1。 dp[w] w的背包容量,必须装满最多能拿多少个汉堡。注意按照此时条件来说dp数列并不是递增的(w1, w2装满,w1w2,但是dp[w1]并不一定小于dp[w2]) 阅读全文
posted @ 2012-11-14 12:33 kedebug 阅读(649) 评论(0) 推荐(0) 编辑
摘要:第一次做把选择的打印出来的题目,于是还是更新下,把代码贴出来。 题目很简单,为了让打印更加顺利,选择从后往前选择物品。 阅读全文
posted @ 2012-11-14 00:20 kedebug 阅读(367) 评论(1) 推荐(0) 编辑
摘要:题意: 有N个矩阵相乘,不同的相乘顺序会有不同的次数,求一种顺序,使相乘的次数最小。 阅读全文
posted @ 2012-11-13 23:37 kedebug 阅读(323) 评论(0) 推荐(0) 编辑
摘要:题意: 给你若干硬币,让你分成两份,使其绝对值之差尽量的小。 思路: 算出硬币的总和,然后把背包容量设置为硬币总和的一半,这个背包能拿到的最大价值即是2个人中某个人要拿到的价值。 01背包的思路就可以解决了。 阅读全文
posted @ 2012-11-13 16:37 kedebug 阅读(233) 评论(0) 推荐(0) 编辑
摘要:题意: 有N头象,找出其中体重从小到大,智商从高到底的X只,并输出。 思路: 先对于象的体重进行从小到大排序,然后对其智商进行最长下降子序列选择 阅读全文
posted @ 2012-11-13 00:29 kedebug 阅读(209) 评论(0) 推荐(0) 编辑
摘要:题意: 求代价最小的一条路径。 思路: 由于要求路径,并且要求输出字典顺序最小的序列。所以逆向求DP,模仿dfs,将降低解题难度。 阅读全文
posted @ 2012-11-12 00:31 kedebug 阅读(464) 评论(0) 推荐(0) 编辑
摘要:题意: 给定一个l长得木棍,要把它从给定的n个点截断,每截断一次需要的费用为木棍的长度。 求截断这个木棍所要花费的最小代价。 思路: 典型的区间DP,要额外添加2个点:0和l,于是区间从1不断扩展到n+1,dp[i][j]代表点i到点j所要花费的最大代价。 阅读全文
posted @ 2012-11-11 22:09 kedebug 阅读(238) 评论(0) 推荐(0) 编辑
摘要:题意: 有1,5,15,25,50五种货币,问n元最多有多少种兑换方法 阅读全文
posted @ 2012-11-11 19:59 kedebug 阅读(399) 评论(0) 推荐(0) 编辑
摘要:UVa 10405 Longest Common Subsequence(最长公共子序列) 阅读全文
posted @ 2012-11-11 18:45 kedebug 阅读(193) 评论(0) 推荐(0) 编辑
摘要:题意: 有n个箱子,每个箱子有m的维度,箱子a能装到箱子b里面的条件是,存在一个序列,使a的任意一个维度大小小于b。 求最多能套几层箱子。 阅读全文
posted @ 2012-11-11 11:33 kedebug 阅读(284) 评论(0) 推荐(0) 编辑
摘要:题意: 求两个事件序列的最长公共子序列,而题目中输入的是每个事件发生的时间,因而要先根据每个事件发生的时间把事件的序列的找到。 比如如果输入是1 3 4 2,那么实际上事件序列是1 4 2 3 阅读全文
posted @ 2012-11-10 17:13 kedebug 阅读(260) 评论(0) 推荐(0) 编辑
摘要:题意: 一棵具有n个节点的树,一开始,每个节点上都有一个苹果。现在给出m组动态的操作: (C,i)是摘掉第i个节点上面的苹果(若苹果不存在,则为加上一个苹果),(Q,i)是查询以第i个节点为根的子树有几个苹果(包括第i个节点)。 阅读全文
posted @ 2012-11-09 23:23 kedebug 阅读(272) 评论(0) 推荐(0) 编辑
摘要:初识树状数组,确实是一种优美的数据结构,夹杂着很强的数学模型在里面。 http://poj.org/summerschool/1_interval_tree.pdf 这里已经说明的非常清楚。 http://dongxicheng.org/structure/binary_indexed_tree/ 这篇文章说的也是差不多的。 阅读全文
posted @ 2012-11-09 21:35 kedebug 阅读(714) 评论(0) 推荐(0) 编辑
摘要:题意: 有很多个箱子,想买箱子中的物品必须先买下箱子 思路: 依赖背包,实际的操作过程中依然需要注意几个点:01背包的时候,背包容量是由max-p到ci,而非max到p+ci。 至于为什么,因为后一种则就是表示每个物品代价是p+ci,而非ci了,所以此时就会计算错误 阅读全文
posted @ 2012-11-08 23:10 kedebug 阅读(257) 评论(0) 推荐(0) 编辑
摘要:题意: 一棵树,每个节点有一个权值,求从根节点出发,最多走K步,能够取得的最大权值(可以往回走)。 思路: dp[0][u][j] 从u节点出发,最多走j步(可以小于j步),可以获得的最大权值。 dp[1][u][j] 从u节点出发,最多走j步,最终停留在u的子树节点,可以获得的最大权值。 阅读全文
posted @ 2012-11-08 21:29 kedebug 阅读(296) 评论(0) 推荐(0) 编辑
摘要:思路: 看完背包9讲,感觉这一题还是不难理解的。首先,对于没有组的限制的X类物品,进行一遍背包(01背包、完全背包、多重背包)。 其次,对于有组的限制的物品,就需要再次考虑下了。这次要用到泛化背包和分组背包的思想。每一组只能选择组里面的一类物品。 于是试图考虑,如果我分给这个组V(range from 0 to D)的容量,能够最多拿到多少价值。因为这个组有X类物品,只能选择一类, 所以需要先对这个组的每一类物品进行一次01背包,获得分配给这类物品V的容量取得的最大价值,然后再对这个组的X类物品进行分组背包。 最后,针对上述组进行一次分组背包,问题得以解决。 阅读全文
posted @ 2012-11-08 17:18 kedebug 阅读(415) 评论(0) 推荐(0) 编辑
摘要:母函数入门(杭电教程题目) 阅读全文
posted @ 2012-11-07 00:26 kedebug 阅读(329) 评论(0) 推荐(0) 编辑
摘要:题意: 求最长的公共子串 阅读全文
posted @ 2012-11-05 23:17 kedebug 阅读(196) 评论(0) 推荐(0) 编辑
摘要:题意: 在字符矩阵中找出一个最小子矩阵,使其多次复制所得的矩阵包含原矩阵。 阅读全文
posted @ 2012-11-05 21:27 kedebug 阅读(286) 评论(0) 推荐(0) 编辑
摘要:以前写过一点字符串匹配方面的题目,但是理解不深刻,这次打算从入门级的步步深入 题意:求字符串子串的最大周期,至于要对字符串进行一遍预处理即可 阅读全文
posted @ 2012-11-04 16:33 kedebug 阅读(326) 评论(0) 推荐(0) 编辑
摘要:给你一个数N(1=N=1000),求这么N有多少个不同的旋转长度。旋转长度是指,一个数最少经过多少步可以回到原来的数。例如N=6时,假如123、45、6分别为三个旋转周期,则旋转顺序为:123456,312546, 231456, 123546, 312456, 231546,123456,旋转长度为6。当然你也可以12,34,56旋转周期,旋转长度为2。 阅读全文
posted @ 2012-11-04 15:07 kedebug 阅读(237) 评论(0) 推荐(0) 编辑
摘要:就题目来说还是属于比较常规的分组DP,处理点与点之间的关系稍微麻烦点,借鉴了网上结构体重载的方法 阅读全文
posted @ 2012-11-04 01:05 kedebug 阅读(302) 评论(0) 推荐(0) 编辑
摘要:很好的树形DP题目 阅读全文
posted @ 2012-11-03 22:08 kedebug 阅读(239) 评论(0) 推荐(0) 编辑
摘要:和普通的分组DP还是有点差别的,要求背包容量固定的变化,而非1->V之类的 现在渐渐理解分组背包,1. 每组最多选择一个 2. 每组选择一个 ,这两类的差别就是在与dp数组的初始化问题 阅读全文
posted @ 2012-11-03 19:32 kedebug 阅读(385) 评论(0) 推荐(0) 编辑
摘要:HDOJ 3496 基本二维背包 阅读全文
posted @ 2012-11-03 00:03 kedebug 阅读(226) 评论(0) 推荐(0) 编辑
摘要:此题很好,很费脑力,还好以前把背包9讲看完了,这次容易理解点 阅读全文
posted @ 2012-11-02 23:01 kedebug 阅读(354) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示