2011年7月31日

POJ1184-Smart typist

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1311864665大致题意:l 通过给定的六种操作将一个六位数变为另一个六位数,求需要的最少操作数。l 六种操作:l 左移和右移:将光标位置左移一位或右移一位,在第一位时无法左移,最后一位时无法右移。l 左交换和右交换:将光标位置的数字与第一位或最后一位交换l 增大或减小:将光标位置的数字增大或减小1解题思路:BFS+状态压缩初步想法l 很难找到有效的贪心算法l 没有明显的局部最优特性,无法动态规划l 考虑搜索直观的想法l 直接进行搜索,从初态开始,知道找到末态的最优解为止。l 无论空间, 阅读全文

posted @ 2011-07-31 18:05 小優YoU 阅读(534) 评论(0) 推荐(0)

POJ2983-Is the Information Reliable

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1307201897题目大意:给出M个表达式,判断这些信息是否可靠。解题思路:差分约束+Bellman-Ford(建议用优化的Bellman-Ford)设dist[i]为超级源点到i点的距离,则建立<=的差分系统:由于P A B X 指“确定A到B的距离(边权)为X”从P A B X得到的差分系统为dist[A] - dist[B] >= X && dist[A] - dist[B] <= X 等价于dist[B] <= dist[A] - X &a 阅读全文

posted @ 2011-07-31 18:03 小優YoU 阅读(292) 评论(0) 推荐(0)

POJ1201-Intervals

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1307063918大致题意:给出数轴上的n个区间[ai,bi],每个区间都是连续的int区间。现在要在数轴上任意取一堆元素,构成一个元素集合V要求每个区间[ai,bi]和元素集合V的交集至少有ci不同的元素求集合V最小的元素个数。解题思路:POJ1716的升级版,只是边权不是固定,而是变化的而已其实只要把POJ1716的 范围 和“固定边权2”改为ci 就能直接AC了注意本题只能用差分约束+Relax解决,不能像POJ1716那样用贪心。POJ1716:http://user.qzone. 阅读全文

posted @ 2011-07-31 18:00 小優YoU 阅读(257) 评论(0) 推荐(0)

POJ1716-Integer Intervals

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1306975576大致题意:给出数轴上的n个区间,每个区间都是连续的int区间。现在要在数轴上任意取一堆元素,构成一个元素集合V要求每个区间和元素集合V的交集至少有两个不同的元素求集合V最小的元素个数。解题思路:一、贪心算法先对所有区间按末端点排序取第i个区间的最后两个元素Selem和Eelem若第i+1个区间包含了这两个元素,则跳到下一个区间所取的元素个数+0若第i+1个区间只包含了这两个元素中的一个(由于有序,所以必定是包含Eelem),则取第i+1个区间的最后一个元素,所取的元素个数 阅读全文

posted @ 2011-07-31 17:58 小優YoU 阅读(372) 评论(0) 推荐(1)

POJ1009-Edge Detection

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1311227000大致题意:某种卫星使用一种叫做“run length encoding”的方式来储存大尺寸图片,有一种简单的 edge detection 算法 是将 图像中的每一个点的值与他周围的八个点相减,然后记录下绝对值最大的,上面的右图是左图经过这种算法转换之后的结果。现在你的任务就是实现这个算法,输入的图片是以 run length encoding 的形式表示的,同时也要求转换后的图片也以 run length encoding 的形式表示。解题思路:非常令人纠结的模拟题, 阅读全文

posted @ 2011-07-31 17:53 小優YoU 阅读(769) 评论(0) 推荐(1)

POJ2706-Connect

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1308890557­­大致题意:­一种类似围棋的游戏,有黑白两种颜色的棋子。­规定黑棋为先手,白棋为后手。­放下棋子A后,若A的8个马步方位(即中国象棋的“马”或国际象棋的“骑士”的“日”字走法)至少存在1个同色的棋子,且当连接A与这些棋子时,其连线不切割已经有的线,则连接。­黑棋的目标是连出一条从X轴的0列到N列的路;­白棋的目标是连出一条从Y轴的0行到N行的路。­就是说某一方要赢棋,当且仅当其把自己的两个 阅读全文

posted @ 2011-07-31 17:46 小優YoU 阅读(436) 评论(0) 推荐(1)

POJ1027-The Same Game

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1308971668大致题意:在一个固定大小为10x15的矩形区域A内被RGB三种颜色的小球填满现在按如下步骤操作:1、 删除区域A内最大的一片区域M(任意颜色都可以,只要其占有区域最大)2、 删除M后,自然会出现空的位置,在M区域上方的小球自然下落;当删除M后出现空列时,右边的列往左填充。注意是以“列”为单位填充,非空列只能整列往空列移动。移动后,各个小球之间的相对顺序 与 移动前一样。3、 当区域A剩余小球数为0,或A内的最大区域为1时,游戏结束。否则返回1。输出每一步的得分,最后输出 阅读全文

posted @ 2011-07-31 17:41 小優YoU 阅读(358) 评论(0) 推荐(0)

POJ3371-Flesch Reading Ease

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1308452631大致题意:给出一篇规范的文章,求其 句子数、单词数 和 音节数把这3个值代入题目给出的公式,输出其结果,保留2位小数。PS:“规范”即文章没有错误的标点符号,字母在适当的位置有大小写。解题思路:我做了整整5天的BT题,,就是被标点符号害的!!!别听信网上谗言,我个人总结出这题的标点符号只有6个!!!注:下面的分隔符不包括 括号(),所有分隔符均为 英式标点符号标记单词分隔符: 逗号(,) 和 空格( )句子分隔符:句号(.) 问号(?) 冒号(:) 分号(;) 感叹号(! 阅读全文

posted @ 2011-07-31 17:39 小優YoU 阅读(402) 评论(0) 推荐(0)

POJ1472-Instant Complexity

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1308998858大致题意:给出一段Pascial程序,计算其时间复杂度(能计算的项则计算,不能计算则化到最简的关于n的表达式O(n),并把各项根据n的指数从高到低排列),输出时,系数为0的项不输出,系数为1的项不输出系数,指数为1的项不输出指数。一段程序只有唯一一个BEGIN,代表程序的开始。与其对应的为最后的END,代表程序的结束。一段程序最多只有10层循环嵌套,循环的入口为LOOP,一个LOOP对应一个END,代表该层循环的结束。一段程序中OP的个数不限。LOOP是循环的入口,其后 阅读全文

posted @ 2011-07-31 17:32 小優YoU 阅读(359) 评论(0) 推荐(0)

POJ3393-Lucky and Good Months by Gregorian Calendar

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1307664479大致题意:科普文一篇,文章80%都是无用信息,因为都是常识,但是又不得不看,因为有20%是常人不知道的历史常识。定义:Goog month : 该月第一个工作日为星期一的月份Luckly month: 该月最后一个工作日为星期五的月份问: 给定一个Gregorian Calendar格里高公历的 时间闭区间(就是包括端点的年月了) 【开始年、月】~【结束年、月】 在这个时间区间内,有多少个Goog month,有多少个Luckly month文章要点:Gregorian 阅读全文

posted @ 2011-07-31 17:29 小優YoU 阅读(548) 评论(0) 推荐(0)

POJ3007-Organize Your Train part II

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1307515870大致题意:给定一个字符串,从任意位置把它切为两半,得到两条子串定义 子串1为s1,子串2为s2,子串1的反串为s3,子串2的反串为s4现在从s1 s2 s3 s4中任意取出两个串组合,问有多少种不同的组合方法规定:(1) 串Si不能和其 反串 组合(2) Si+Sj 与 Sj+Si 是两种组合方式(但未必是不同的组合方式)解题思路:利用hash表查重穷举全部组合的情况,每枚举一个就记录一次,假如后面枚举的组合已经存在记录,说明组合重复,计数器不变,否则计数器+1本题不能 阅读全文

posted @ 2011-07-31 17:21 小優YoU 阅读(449) 评论(0) 推荐(0)

POJ3096-Surprising Strings

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1307434869大致题意:定义D-pairs表示取字符串s中相距为D的两个字母所构成的字母对,该字母对中两个字母的位置顺序与他们在主串s中的位置顺序一致定义D-unique表示,若从字符串s中取出所有相距为D的字母对D-pairs,且这些D-pairs都是独一无二的,那么成字符串s是一个D-unique串D的取值范围为0~s.len()-2假如字符串s对于所有的D都有D-unique成立,则字符串s是令人惊讶的 = =现在输入一些字符串,问他们能不能令人惊讶= =解题思路:令人惊讶的中级 阅读全文

posted @ 2011-07-31 17:19 小優YoU 阅读(377) 评论(0) 推荐(1)

POJ1113-Wall

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303097935大致题意:给定多边形城堡的n个顶点,绕城堡外面建一个围墙,围住所有点,并且墙与所有点的距离至少为L,求这个墙最小的长度。解题思路:推导公式(1):城堡围墙长度最小值 = 城堡顶点坐标构成的散点集的凸包总边长 + 半径为L的圆周长由于数据规模较大,必须用GrahamScan Algorithm构造凸包(详细的算法可以参考我的POJ2187,这里就不再啰嗦了),然后顺序枚举凸包相邻的两点并计算其距离,得到凸包的总边长,最后加上圆周长2πL根据圆形的性质,其实就相当于多加了一 阅读全文

posted @ 2011-07-31 17:14 小優YoU 阅读(339) 评论(0) 推荐(0)

POJ2187-Beauty Contest

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1302882180大致题意:给定平面上的一些散点集,求最远两点距离的平方值。解题思路:别想着暴力枚举任意亮点距离找最大,行不通,想想三点共线吧!平面上的散点集的最远的两点距离必然在这个散点集的凸包的某两个顶点上出现。那么先求凸包,再枚举顶点距离就OK了。别看是3000ms就想用简单的卷包裹,这题数据规模极大,卷包裹铁超(我一开始就是这么做的。。。) 万般无奈不得不用GrahamScan Algorithm。。。。O(nlogn)用来做这题还是相当可观的。GrahamScan理解是不困难的 阅读全文

posted @ 2011-07-31 17:12 小優YoU 阅读(492) 评论(0) 推荐(0)

POJ1696-Space Ant

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1302880751大致题意:一只蚂蚁,只会向左转,现在给出平面上很多个点,求解一种走法,能使得蚂蚁能经过的点最多,每个顶点该蚂蚁只能经过一次,且所行走的路线不能发生交叉.解题思路:凸包的入门水题,是凸包的一个变形网上看到很多人copy别人的,说什么“极坐标排序”,那是Graham Scan Algoruthm的做法!虽然Graham只有O(nlogn) ,但是这题完全没必要用它,因为题目的规模很小,我用卷包裹算法照样0 ms 一次AC 。确实理论上卷包裹的O(n^2)不如Graham快, 阅读全文

posted @ 2011-07-31 17:11 小優YoU 阅读(594) 评论(0) 推荐(0)

POJ1584-A Round Peg in a Ground Hole

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309142308大致题意:按照顺时针或逆时针方向输入一个n边形的顶点坐标集,先判断这个n边形是否为凸包。再给定一个圆形(圆心坐标和半径),判断这个圆是否完全在n变形内部。解题思路:题意已经很直白了。。就是那个思路。。。注意输入完顶点集后,要封闭多边形,方便后面枚举边。封闭方法:定义点集数组Vectex[1~n]记录n个顶点,再令Vectex[0]=Vectex[n],Vectex[n+1]=Vectex[1]1、判断凸包: 由于点集已经按某个时针方向有序,因此可以先定义一个方向系数di 阅读全文

posted @ 2011-07-31 17:08 小優YoU 阅读(527) 评论(1) 推荐(1)

POJ1408-Fishnet

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1302523813大致题意:一个1X1的正方形,每条边上有n个不同的点(不包括顶点),并给出它们的坐标。现在把对边相对应的点相连,将正方形分割成(n+1)*(n+1)个小四边形。问最大的四边形的面积是多少。解题思路:计算几何求面积的题,算半条水题吧。。基本思路:构造所有的线段,然后枚举每对水平-竖直线段,求交点,然后计算四边形面积,求最大值。应用知识:叉积(规范相交)多边形分解三角形基于计算几何的面积公式(注意正负)我先建立一个数学模型说明问题:以n=3为例画图 (当然实际上内部的线不一定 阅读全文

posted @ 2011-07-31 17:02 小優YoU 阅读(275) 评论(0) 推荐(0)

POJ1039-Pipe

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1302329342大致题意:有一宽度为1的折线管道,上面顶点为(xi,yi),所对应的下面顶点为(xi,yi-1),假设管道都是不透明的,不反射的,光线从左边入口处的(x1,y1),(x1,y1-1)之间射入,向四面八方传播,求解光线最远能传播到哪里(取x坐标)或者是否能穿透整个管道.解题思路:刘汝佳《算法艺术与信息学艺术》第三章 计算几何初步 的例2 P359(别人叫它黑书,小菜们看不懂什么意思,我稍微解释了,确实这书表面内里一般黑。。。)一模一样的题把那本书3.1节读透了,就能理解这题 阅读全文

posted @ 2011-07-31 16:58 小優YoU 阅读(554) 评论(0) 推荐(0)

POJ2031-Building a Space Station

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303311018大致题意:就是给出三维坐标系上的一些球的球心坐标和其半径,搭建通路,使得他们能够相互连通。如果两个球有重叠的部分则算为已连通,无需再搭桥。求搭建通路的最小费用(费用就是边权,就是两个球面之间的距离)。解题思路:不要被三维吓到了,其实就是图论的最小生成树问题球心坐标和半径是用来求 两点之间的边权 的,求出边权后,把球看做点,用邻接矩阵存储这个无向图,再求最小生成树,非常简单的水题。把球A和球B看做无向图图的两个结点,那么边权 = AB球面距离 = A球心到B球心的距离 – 阅读全文

posted @ 2011-07-31 16:55 小優YoU 阅读(272) 评论(0) 推荐(0)

POJ2151-Check the difficulty of problems

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1304863551大致题意:ACM比赛中,共M道题,T个队,pij表示第i队解出第j题的概率问 每队至少解出一题且冠军队至少解出N道题的概率。解题思路:真费解为什么这题被划分到了Hash。。。明明是 概率+DP ,概率不好真的拿不下这题T .T,建议数学不好的同学直接放弃算了。。。这题难点不在编程,在于问题的转化和理解= =只要能用笔算出答案,离AC也就不远了。。。要求:每队至少解出一题 且 冠军队至少解出N道题的概率由于冠军队可以不止一队,即允许存在并列冠军则原来的所求的概率可以转化为: 阅读全文

posted @ 2011-07-31 16:52 小優YoU 阅读(437) 评论(0) 推荐(0)

POJ2531-Network Saboteur

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303612537题目大意:把一个完全图分成两部分,使得连接这两部分边的权和最大。解题思路:图论的无向完全图的最大割问题 (做网络最大流的时候同学们应该看过最小割,所以别问我什么是最大割了。。。不懂的百度去。。。)可以用 随机化算法 Random Algorithm 去做一开始我没读懂题,以为是求最大权。。。傻呼呼的用最了最小生成树的算法去做= =一直RERERE。。。还以为是数组开得不够大。。。悲剧啊。。。虽然是图论,但不懂得为什么人家要把这题归类到 搜索题 去,用搜索我完全没思路去做 阅读全文

posted @ 2011-07-31 16:48 小優YoU 阅读(316) 评论(0) 推荐(0)

POJ3122-Pie

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1301969415大致题意:就是公平地分披萨pie我生日,买了n个pie,找来f个朋友,那么总人数共f+1人每个pie都是高为1的圆柱体,输入这n个pie的每一个尺寸(半径),如果要公平地把pie分给每一个人(就是所有人得到的pie尺寸一致,但是形状可以不同),而且每个人得到的那份pie必须是从同一个pie上得到的后面那句很重要,就是说如果有3个pie, 尺寸分别为1,2,3,如果要给每人尺寸为2的pie,那么最多分给2个人,而不是3个人因为第一个pie尺寸为1,小于2,扔掉第二个pie 阅读全文

posted @ 2011-07-31 16:46 小優YoU 阅读(479) 评论(1) 推荐(0)

POJ1905-Expanding Rods

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1301845324大致题意:一根两端固定在两面墙上的杆 受热弯曲后变弯曲求前后两个状态的杆的中点位置的距离解题思路:几何和二分的混合体如图,蓝色为杆弯曲前,长度为L红色为杆弯曲后,长度为sh是所求依题意知S=(1+n*C)*L又从图中得到三条关系式;(1) 角度→弧度公式 θr = 1/2*s(2) 三角函数公式 sinθ= 1/2*L/r(3) 勾股定理 r^2 – ( r – h)^2 = (1/2*L)^2把四条关系式化简可以得到逆向思维解二元方程组:要求(1)式的h,唯有先求r但 阅读全文

posted @ 2011-07-31 16:44 小優YoU 阅读(234) 评论(0) 推荐(0)

POJ3258-River Hopscotch

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1301820293大致题意:一条河长度为 L,河的起点(Start)和终点(End)分别有2块石头,S到E的距离就是L。河中有n块石头,每块石头到S都有唯一的距离问现在要移除m块石头(S和E除外),每次移除的是与当前最短距离相关联的石头,要求移除m块石头后,使得那时的最短距离尽可能大,输出那个最短距离。解题思路:经典的二分,理解题意就不怎么难了 (其实编程不难,要理解就非常难。。。。)详细的解释看我的程序,实在看不懂就参考一下我POJ3273的做法,看上去不同,几时思路是差不多的,数学题 阅读全文

posted @ 2011-07-31 16:41 小優YoU 阅读(364) 评论(0) 推荐(0)

POJ3273-Monthly Expense

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1301655498大致题意:给出农夫在n天中每天的花费,要求把这n天分作m组,每组的天数必然是连续的,要求分得各组的花费之和应该尽可能地小,最后输出各组花费之和中的最大值解题思路:经典的二分穷举详细的思路我写在程序注释中,这样会更容易懂看完我的程序还是无法切入题目的同学,建议先用 朴素的穷举 去左这题,虽然很大机会会超时,但是只是为了辅助理解。本题的二分纯粹是一个优化穷举的工具。 1 //Memory Time 2 //612K 297MS 3 4 #include<iostrea 阅读全文

posted @ 2011-07-31 16:39 小優YoU 阅读(934) 评论(0) 推荐(0)

POJ1006-Biorhythms

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1309411846大致题意:这题在POJ上有译文(原文右上角)解题思路:中国剩余定理,本题难点不在编程,而是分析题目并转化为数学公式要引入本题解法,先来看一个故事“韩信点兵”:传说西汉大将韩信,由于比较年轻,开始他的部下对他不很佩服。有一次阅兵时,韩信要求士兵分三路纵队,结果末尾多2人,改成五路纵队,结果末尾多3人,再改成七路纵队,结果又余下2人,后来下级军官向他报告共有士兵2395人,韩信立即笑笑说不对(因2395除以3余数是1,不是2),由于已经知道士兵总人数在2300~2400之间, 阅读全文

posted @ 2011-07-31 16:38 小優YoU 阅读(282) 评论(0) 推荐(0)

POJ2115-C Looooops

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309394009大致题意:对于C的for(i=A ; i!=B ;i +=C)循环语句,问在k位存储系统中循环几次才会结束。若在有限次内结束,则输出循环次数。否则输出死循环。解题思路:题意不难理解,只是利用了 k位存储系统 的数据特性进行循环。例如int型是16位的,那么int能保存2^16个数据,即最大数为65535(本题默认为无符号),当循环使得i超过65535时,则i会返回0重新开始计数如i=65534,当i+=3时,i=1其实就是 i=(65534+3)%(2^16)=1有了这 阅读全文

posted @ 2011-07-31 16:34 小優YoU 阅读(221) 评论(0) 推荐(1)

POJ1845-Sumdiv

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309237394大致题意:求A^B的所有约数(即因子)之和,并对其取模 9901再输出。解题思路:要求有较强 数学思维 的题应用定理主要有三个:要求有较强 数学思维 的题应用定理主要有三个:(1) 整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式。 A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn) 其中pi均为素数(2) 约数和公式:对于已经分解的整数A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)有A的 阅读全文

posted @ 2011-07-31 16:30 小優YoU 阅读(557) 评论(0) 推荐(1)

POJ3292-Semi-prime H-numbers

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309336489大致题意:一个H-number是所有的模四余一的数。如果一个H-number是H-primes 当且仅当它的因数只有1和它本身(除1外)。一个H-number是H-semi-prime当且仅当它只由两个H-primes的乘积表示。H-number剩下其他的数均为H-composite。给你一个数h,问1到h有多少个H-semi-prime数。解题思路:感觉跟同余模扯不上关系。。。筛法打表,再直接输出。。。水题。。。 1 //Memory Time 2 //4172K 6 阅读全文

posted @ 2011-07-31 16:29 小優YoU 阅读(321) 评论(0) 推荐(0)

POJ2635-The Embarrassed Cryptographer

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309305108大致题意:给定一个大数K,K是两个大素数的乘积的值。再给定一个int内的数L问这两个大素数中最小的一个是否小于L,如果小于则输出这个素数。解题思路:首先对题目的插图表示无语。。。高精度求模+同余模定理1、 Char格式读入K。把K转成千进制Kt,同时变为int型。把数字往大进制转换能够加快运算效率。若用十进制则耗费很多时间,会TLE。千进制的性质与十进制相似。例如,把K=1234567890转成千进制,就变成了:Kt=[ 1][234][567][890]。为了方便处理 阅读全文

posted @ 2011-07-31 16:26 小優YoU 阅读(718) 评论(0) 推荐(1)

POJ2305-Basic remains

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309151264大致题意:在b进制下,求p%m其中p为b进制大数1000位以内,m为b进制数9位以内解题思路:以字符串形式保存p,m利用进制转换公式先把m逐位转换为10进制,由于m只有9位,因此直接转换用int保存即可。再利用进制转换公式把p逐位转换为10进制,为了避免处理大数,转换过程中,若出现比m大的时候,则对m取模,继续转换。根据同余模公式知,这是允许的。此时得到的p值就是 (10进制p)%(10进制m)当p==0时,直接输出,否则把p逐位转换回去n进制再输出。n进制的p必须用数 阅读全文

posted @ 2011-07-31 16:24 小優YoU 阅读(323) 评论(0) 推荐(0)

POJ1942-Paths on a Grid

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1301543725大致题意:给定一个矩形网格的长m和高n,其中m和n都是unsigned int32类型,一格代表一个单位,就是一步,求从左下角到右上角有多少种走法,每步只能向上或者向右走解题思路:非常水的中学数学题,用组合做先简单建立一个数学模型:只要给定了长m和高n,那么要从左下角走到右上角,不管怎么走,一定要往右走m次,往上走n次例如给定 m=5,n=4那么可以 上上上上上右右右右又可以 上右上右上右上右上等等。。。关键是“上”和“右”的先后问题,就是组合问题了那么数学模型就是从n 阅读全文

posted @ 2011-07-31 16:23 小優YoU 阅读(372) 评论(0) 推荐(0)

POJ1019-Number Sequence

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1301527312大致题意:有一串数字串,其规律为1 12 123 1234 12345 123456 1234567 12345678 123456789 12345678910 1234567891011 123456789101112······k输入位置n,计算这一串数字第n位是什么数字,注意是数字,不是数!例如12345678910的第10位是1,而不是10,第11位是0,也不是10。总之多位的数在序列中要被拆分为几位数 阅读全文

posted @ 2011-07-31 16:12 小優YoU 阅读(396) 评论(0) 推荐(1)

POJ1496-Word Index

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1301474058大致题意:(与POJ1850基本一致)输出某个str字符串在字典中的位置,由于字典是从a=1开始的,因此str的位置值就是 在str前面所有字符串的个数 +1规定输入的字符串必须是升序排列。不降序列是非法字符串要求用循环输入,输入若干组字符串,若输入非法字符串则输出0,但不结束程序,这是和POJ1850最猥琐的区别,很多同学只注意到规定str的长度不同,以为把str数组长度改一下直接复制就能AC拿下一题了,殊不知老是WA却找不到原因,大概就是这里出问题了本题Str最长为5 阅读全文

posted @ 2011-07-31 16:10 小優YoU 阅读(463) 评论(0) 推荐(0)

POJ1850-Code

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1301473705大致题意:(与POJ1496基本一致)输出某个str字符串在字典中的位置,由于字典是从a=1开始的,因此str的位置值就是 在str前面所有字符串的个数 +1规定输入的字符串必须是升序排列。不降序列是非法字符串不要求用循环输入去输入若干组字符串,但若输入非法字符串则输出0,且结束程序,这是和POJ1496最猥琐的区别,很多同学只注意到规定str的长度不同,以为把str数组长度改一下直接复制就能AC再多刷一题了,殊不知老是WA却找不到原因,大概就是这里出问题了本题Str最长 阅读全文

posted @ 2011-07-31 16:01 小優YoU 阅读(939) 评论(0) 推荐(1)

POJ3252-Round Numbers

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1301472836大致题意:输入两个十进制正整数a和b,求闭区间 [a ,b] 内有多少个Round number所谓的Round Number就是把一个十进制数转换为一个无符号二进制数,若该二进制数中0的个数大于等于1的个数,则它就是一个Round Number注意,转换所得的二进制数,最高位必然是1,最高位的前面不允许有0规定输入范围: 1<= a <b<=2E用组合做很猥琐的题,我首先说说猥琐的地方,再说说解题思路,有四点很猥琐:(1)规定输入范围: 1<= 阅读全文

posted @ 2011-07-31 15:53 小優YoU 阅读(1638) 评论(0) 推荐(0)

poj1012-Joseph

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303803255大致题意:有k个坏人k个好人坐成一圈,前k个为好人(编号1~k),后k个为坏人(编号k+1~2k)现在有一个报数m,从编号为1的人开始报数,报到m的人就要自动死去。问当m为什么值时,可以使得在出现好人死亡之前,k个坏人先全部死掉?PS:当前一轮第m个人死去后,下一轮的编号为1的人 为 前一轮编号为m+1的人 前一轮恰好是最后一个人死掉,则下一轮循环回到开头那个人报“1”解题思路:经典的约瑟夫水题由于k值比较少(1~13),暴力枚举m就可以了递推公式为:ans[i]; / 阅读全文

posted @ 2011-07-31 15:43 小優YoU 阅读(438) 评论(0) 推荐(1)

POJ1159-Palindrome

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1300587979设原序列S的逆序列为S' ,则这道题目的关键在于,最少需要补充的字母数 = 原序列S的长度 — S和S'的最长公共子串长度这个公式我不证明,不难证剩下的就小意思了,最基础的LCS题。注意本题空间开销非常大,需要适当的处理手法先看看几种不同的申请空间方法的区别:1. 静态数组 开销大小为5001*5001的int是铁定超的.据说用short int的话不会MLE,有兴趣的同学可以试试2. 动态数组 单纯的申请动态数组是不能解决这个问题的,动态数组只能增加空间 阅读全文

posted @ 2011-07-31 12:19 小優YoU 阅读(389) 评论(0) 推荐(1)

POJ1080-Human Gene Functions

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1300550378LCS的变形而已 注意LCS的子串可以是离散的,不必连续,用动态规划设dp[i][j]为取s1第i个字符,s2第j个字符时的最大分值则决定dp为最优的情况有三种(score[][]为s1[i]和s2[j]两符号的分数):1、 s1取第i个字母,s2取“ - ”: dp[i-1][j]+score[ s1[i-1] ]['-'];2、 s1取“ - ”,s2取第j个字母:dp[i][j-1]+score['-'][ s2[j-1] ];3、 阅读全文

posted @ 2011-07-31 12:16 小優YoU 阅读(280) 评论(1) 推荐(1)

POJ1163-The Triangle

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1300454092和POJ3176一模一样,不懂做这题的去看看我对3176的解释这是地址http://blog.csdn.net/lyy289065406/article/details/6648150不骗人,确实是一模一样的代码O(∩_∩)O哈哈~ 1 //Memory Time 2 //232K 0MS 3 4 #include<iostream> 5 using namespace std; 6 7 int max(int a,int b) 8 { 9 return a& 阅读全文

posted @ 2011-07-31 12:14 小優YoU 阅读(158) 评论(0) 推荐(0)

POJ3176-Cow Bowling

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1300453935大致题意:输入一个n层的三角形,第i层有i个数,求从第1层到第n层的所有路线中,权值之和最大的路线。规定:第i层的某个数只能连线走到第i+1层中与它位置相邻的两个数中的一个。解题方法:用二维数组way[][]靠左存储三角形内的数据,那么连线规则变更为way[i][j] → Way[i+1][j]或 Way[i][j] → Way[i+1][j+1]注意:way[][]初始化为输入时的三角形数值,此时way[i][j]表示该点位置上的权值,没输入的位置初始化为0。解题思路: 阅读全文

posted @ 2011-07-31 12:12 小優YoU 阅读(243) 评论(0) 推荐(1)

POJ2533-Longest Ordered Subsequence

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1300023619提示:动态规划,求LIS最大不下降子序列O(n^2)和O(n*logn)算法都能完美AC不懂的就去看看LIS的概念就会做了我把两种算法都贴出来: 1 //Memory Time 2 //228K 16MS 3 4 //O(n^2)算法 5 #include<iostream> 6 using namespace std; 7 8 int main(int i,int j) 9 {10 int n;11 while(cin>>n)12 {13 in 阅读全文

posted @ 2011-07-31 12:07 小優YoU 阅读(261) 评论(0) 推荐(0)

POJ1260-Pearls

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1300164274大致题意:给出几类珍珠,以及它们的单价,要求用最少的钱就可以买到相同数量的,相同(或更高)质量的珍珠。【规定买任一类的珍珠n个(价格为p),都要支付(n+10)*p的钱,即额外支付10*p】例如样例Input的第二个例子:31 101 11100 12需要买第一类1个,第二类1个,第三类100个按常规支付为 (1+10)*10 + (1+10)*11 + (100+10)*12 = 1551元(一共买了102个珍珠)但是如果全部都按照第三类珍珠的价格支付,同样是买102 阅读全文

posted @ 2011-07-31 12:03 小優YoU 阅读(706) 评论(0) 推荐(0)

POJ1836-Alignment

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1300076744解题思路:是POJ2533的扩展题。题意不难,令到原队列的最少士兵出列后,使得新队列任意一个士兵都能看到左边或者右边的无穷远处。就是使新队列呈三角形分布就对了。但这里有一个陷阱,看了一些别人的解题报告说“任一士兵旁边不能存在等高的士兵”,然后又举了一个例子说注意35 5 5 的情况,我没看他们的程序,不知道他们是不是把这些例子特殊处理了,但完全没必要,因为“允许处于三角形顶部的两个士兵等高”,图形化就是如下图:其实蓝色士兵的身高和红色士兵的身高是完全没有关系的。要求最少出 阅读全文

posted @ 2011-07-31 12:00 小優YoU 阅读(1191) 评论(1) 推荐(1)

POJ3267-The Cow Lexicon

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299653270解题思路动态规划题意就是给出一个主串,和一本字典,问最少在主串删除多少字母,可以使其匹配到字典的单词序列。PS:是匹配单词序列,而不是一个单词不多说,看程序主要是知道状态方程的含义dp[i]表示从message中第i个字符开始,到第L个字符(结尾处)这段区间所删除的字符数,初始化为dp[L]=0由于我的程序是从message尾部向头部检索匹配,所以是下面的状态方程:从程序可以看出,第i个位置到L所删除的字符数,总是先取最坏情况,只有可以匹配单词时才进入第二条方程进行状态 阅读全文

posted @ 2011-07-31 11:47 小優YoU 阅读(518) 评论(0) 推荐(0)

POJ1276-Cash Machine

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299341477提示:动态规划,多重背包题目大意:有各种不同面值的货币,每种面值的货币有不同的数量,请找出利用这些货币可以凑成的最接近且小于等于给定的数字cash的金额。初始思路:多重背包问题,第i种面额d[i]有 n[i]+1种选择方案可以转化为01背包问题处理转化的大概思路就是把 每种面值乘以其不同的个数,把得到的不同金额作为一件新的独一无二的货币,但是这样存在两个问题,一是 d[i]*ki 可能等于 d[j]*kj ,其中ki ∈n[i],kj∈n[j],二是这样做一定TLE超时 阅读全文

posted @ 2011-07-31 11:42 小優YoU 阅读(1422) 评论(1) 推荐(0)

POJ1837-Balance

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299341345提示:动态规划,01背包初看此题第一个冲动就是穷举。。。。不过再细想肯定行不通= =O(20^20)等着超时吧。。。我也是看了前辈的意见才联想到01背包,用动态规划来解题目大意:有一个天平,天平左右两边各有若干个钩子,总共有C个钩子,有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数。其中可以把天枰看做一个以x轴0点作为平衡点的横轴输入:2 4 //C 钩子数 与 G钩码数-2 3 //负数:左边的钩子距离天平中央的距离;正数:右边的钩子距离天平中央的距离c[k] 阅读全文

posted @ 2011-07-31 11:39 小優YoU 阅读(918) 评论(0) 推荐(2)

POJ1129-Channel Allocation

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1303954302题目翻译:当一个广播电台在一个非常大的地区,广播站会用中继器来转播信号以使得每一个接收器都能接收到一个强烈的信号。然而,每个中继器必须慎重选择使用,使相邻的中继器不互相干扰。如果相邻的中继器使用不同的频道,那么就不会相互干扰。由于无线电频道是一有限的,一个给定的网络所需的中继频道数目应减至最低。编写一个程序,读取一个中继网络,然后求出需要的最低的不同频道数。建模:一个有N个节点的无向图,要求对每个节点进行染色,使得相邻两个节点颜色都不同,问最少需要多少种颜色?那么题目就变 阅读全文

posted @ 2011-07-31 10:46 小優YoU 阅读(1553) 评论(0) 推荐(0)

POJ2676-Sudoku

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303713313大致题意:九宫格问题,也有人叫数独问题把一个9行9列的网格,再细分为9个3*3的子网格,要求每行、每列、每个子网格内都只能使用一次1~9中的一个数字,即每行、每列、每个子网格内都不允许出现相同的数字。0是待填位置,其他均为已填入的数字。要求填完九宫格并输出(如果有多种结果,则只需输出其中一种)如果给定的九宫格无法按要求填出来,则输出原来所输入的未填的九宫格解题思路:DFS试探,失败则回溯用三个数组进行标记每行、每列、每个子网格已用的数字,用于剪枝bool row[10] 阅读全文

posted @ 2011-07-31 10:38 小優YoU 阅读(263) 评论(0) 推荐(0)

POJ1416-Shredding Company

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1304031265题目翻译:公司现在要发明一种新的碎纸机,要求新的碎纸机能够把纸条上的数字切成最接近而不超过target值。比如,target的值是50,而纸条上的数字是12346,应该把数字切成四部分,分别是1、2、34、6。因为这样所得到的和43 (= 1 + 2 + 34 + 6) 是所有可能中最接近而不超过50的。(比如1, 23, 4, 和6 就不可以,因为它们的和不如43接近50,而12, 34, 6也不可以,因为它们的和超过50了。碎纸还有以下三个要求:1、如果target的 阅读全文

posted @ 2011-07-31 10:33 小優YoU 阅读(851) 评论(0) 推荐(2)

POJ1011-Sticks

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1311647833大致题意:2011 POJ暑假集训题Problem E,POJ上有中文版解题思路:DFS+剪枝POJ2362的强化版,重点在于剪枝令InitLen为所求的最短原始棒长,maxlen为给定的棒子堆中最长的棒子,sumlen为这堆棒子的长度之和,那么InitLen必定在范围[maxlen,sumlen]中根据棒子的灵活度(棒子越长,灵活度越低) DFS前先对所有棒子降序排序剪枝:1、 由于所有原始棒子等长,那么必有sumlen%Initlen==0;2、 若能在[maxlen 阅读全文

posted @ 2011-07-31 10:29 小優YoU 阅读(2553) 评论(0) 推荐(1)

POJ2362-Square

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1311605012大致题意:给定一堆不定长度的小棒子,问他们能否构成一个正方形。解题思路:POJ1011的热身题,DFS+剪枝本题大致做法就是对所有小棒子长度求和sum,sum就是正方形的周长,sum/4就是边长side。问题就转变为:这堆小棒子能否刚好组合成为4根长度均为side的大棒子不难了解,小棒子的长度越长,其灵活性越差。例如长度为5的一根棒子的组合方式要比5根长度为1的棒子的组合方式少,这就是灵活性的体现。由此,我们首先要对这堆小棒子降序排序,从最长的棒子开始进行DFS剪枝,有 阅读全文

posted @ 2011-07-31 10:26 小優YoU 阅读(422) 评论(0) 推荐(0)

POJ1010-STAMPS

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1311305814大致题意:题意比较难懂。大致如下:第一行数字是邮票的面值,每一个数字就是一个不同的种类,哪怕面值相同。以0结束。第二行数字是顾客所需要的邮票总面值。每个数字就是一个顾客的需求,以0结束。每两行是一组case。以EOF结束输入。顾客是集邮爱好者,所以你必须尽可能的给他不同种类的邮票。但是一位顾客最多只能拿4张邮票。显然,我们拥有的邮票就是第一行中的数据。解题思路:DFS寻找所有的解,再逐一比较寻找最优解,剪枝是关键。关于tie。满足顾客需求的解就是可行解。邮票种类最多的可 阅读全文

posted @ 2011-07-31 10:20 小優YoU 阅读(410) 评论(0) 推荐(1)

POJ2251-Dungeon Master

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303446571题目大意: 给出一三维空间的地牢,要求求出由字符'S'到字符'E'的最短路径移动方向可以是上,下,左,右,前,后,六个方向每移动一次就耗费一分钟,要求输出最快的走出时间。不同L层的地图,相同RC坐标处是连通的解题思路:我越看这题就越觉得是 XX地下城 = =水题一道,求最短路问题,直接BFS得了开三维数组,每次搜索方向由二维的4个方向增加到6个,但是方法还是那个方法没难度注意若果三维数组恰好开到极限的30*30*30是会RE的,别替人家电 阅读全文

posted @ 2011-07-31 10:17 小優YoU 阅读(435) 评论(0) 推荐(0)

POJ3414-Pots

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303732259题目大意:给出了两个瓶子的容量A,B, 以及一个目标水量C,对A、B可以有如下操作:FILL(i) fill the pot i (1 ≤ i ≤ 2) from the tap;DROP(i) empty the pot i to the drain;POUR(i,j) pour from pot i to pot j; after this operation either the pot j is full (and there may be some water 阅读全文

posted @ 2011-07-31 10:11 小優YoU 阅读(354) 评论(0) 推荐(0)

POJ3126-Prime Path

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303623014大致题意:给定两个四位素数a b,要求把a变换到b变换的过程要保证 每次变换出来的数都是一个 四位素数,而且当前这步的变换所得的素数 与 前一步得到的素数 只能有一个位不同,而且每步得到的素数都不能重复。求从a到b最少需要的变换次数。无法变换则输出Impossible解题思路:超级水题,40入口的BFS + 素数判定不过剪枝之后就没有40入口了,入口数远小于40无论是判定素数还是搜索素数,首先排除偶数,这样就剪掉一半枝叶了判断素数用根号法判断,如果一个数X不能被 [2, 阅读全文

posted @ 2011-07-31 10:07 小優YoU 阅读(2314) 评论(2) 推荐(1)

POJ1426-Find The Multiple

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303946967大致题意:给出一个整数n,(1 <= n <= 200)。求出任意一个它的倍数m,要求m必须只由十进制的'0'或'1'组成。解题思路:首先暴力枚举肯定是不可能的 1000ms 想不超时都难,而且枚举还要解决大数问题。。要不是人家把这题放到搜索,怎么也想不到用BFS。。。解题方法: BFS+同余模定理不说废话。首先说说朴素的不剪枝搜索方法:我以n=6为例首先十进制数,开头第一个数字(最高位)一定不能为0,即最高位必为1设6的 ” 阅读全文

posted @ 2011-07-31 09:49 小優YoU 阅读(837) 评论(0) 推荐(1)

POJ3278-Catch That Cow

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303558739大致题意:给定两个整数n和k通过 n+1或n-1 或n*2 这3种操作,使得n==k输出最少的操作次数解题思路:说实话,要不是人家把这题归类到BFS,我怎么也想不到用广搜的= = 自卑ing。。。水题水题,三入口的BFS注意的地方有二:1、 由于用于广搜的 队列数组 和 标记数组 相当大,如果定义这两个数组时把它们扔到局部去,编译是可以的,但肯定执行不了,提交就等RE吧= =大数组必须开为 全局 。。。常识常识。。。2、 剪枝。直接广搜一样等着RE吧= = 不剪枝的同学 阅读全文

posted @ 2011-07-31 09:47 小優YoU 阅读(1757) 评论(0) 推荐(0)

POJ1321-Chess Problem

摘要: 大致题意:中文题。。我没什么好说的解题思路:DFS,没想法就很难很难,有想法就很容易的题棋盘规则与否不是难点,无论规则不规则都可以用标记去解决难点在于 棋盘的行数(列数)n 与 待摆放的棋子总数k 的关系为k<=nK==n时还是比较好办的K<n时就让人有点迷糊不知怎样处理了网上普遍做法都是 逐行深搜,效率不错,我也稍微借鉴了,具体看程序,不多说了,搜索的题抽象性太强,文字很难说清楚 1 //Memory Time 2 //184K 32MS 3 4 #include<iostream> 5 using namespace std; 6 7 bool chess[9][9 阅读全文

posted @ 2011-07-31 01:24 小優YoU 阅读(293) 评论(0) 推荐(2)

POJ3009-Curling 2.0

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303548481大致题意:哈哈,玩过“GBA口袋怪兽”的同学看到这题都应该非常容易理解了,“游戏也不过是这样写出来的”O(∩_∩)O哈~题意不难懂,我大致翻译一下:就是要求把一个冰壶从起点“2”用最少的步数移动到终点“3”其中0为移动区域,1为石头区域,冰壶一旦想着某个方向运动就不会停止,也不会改变方向(想想冰壶在冰上滑动),除非冰壶撞到石头1 或者 到达终点 3注意的是:冰壶撞到石头后,冰壶会停在石头前面,此时(静止状态)才允许改变冰壶的运动方向,而该块石头会破裂,石头所在的区域由1 阅读全文

posted @ 2011-07-31 01:22 小優YoU 阅读(330) 评论(1) 推荐(0)

POJ3083-Children of the Candy Corn

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303432339题目大意:给定一个迷宫,S是起点,E是终点,#是墙不可走,.可以走先输出左转优先时,从S到E的步数再输出右转优先时,从S到E的步数最后输出S到E的最短步数W为宽,列数H为高,行数解题思路:DFS和BFS的综合题水题,难度不大,但是写代码时要注意几方面:1、 左转、右转优先搜索时必须标记当前位置时的方向,我定义的方向是 最初的方向由起点S确定,而下一步的方向则由前一步的走向决定例如 左边优先搜索:当前位置的方向指向 1(向左),(这同时说明前一步是在第“3”的位置走过来的 阅读全文

posted @ 2011-07-31 01:16 小優YoU 阅读(1774) 评论(0) 推荐(0)

POJ2488-A Knight's Journey【骑士游历】

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303350143大致题意:给出一个国际棋盘的大小,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径。经典的“骑士游历”问题,DFS水题一道解题思路:难度不大,但要注意的地方有3点:1、 题目要求以"lexicographically"方式输出,也就是字典序...要以字典序输出路径,那么搜索的方向(我的程序是path()函数)就要以特殊的顺序排列了...这样只要每次从dfs(A,1)开始搜索,第一个成功遍历的路径一定是以字典序排列...下图是搜索的次 阅读全文

posted @ 2011-07-31 01:12 小優YoU 阅读(392) 评论(0) 推荐(1)

导航