自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDU3920

HDU3920 Clear All of Them I现在你在一个大地图上,给出你所在的坐标(x,y),然后给出2*n个敌人的坐标,要你消灭这2*n个敌人.你手上有一把激光枪,每次射击你都可以任意选择两个目标,激光先从你的位置到第一个目标,然后再从第一个目标到第二个目标的位置,这样就消灭了这两个目标,激光枪消耗的能量是它总共走过的距离.你可以选择先攻击哪个目标.你的位置不可以变.每

2014-02-28 12:42:10 826

原创 HDU3681

HDU3681 Prison Break一个机器人身处N*M的矩阵中,它想要越狱逃出来,这个矩阵由N行M列的字符组成,含义如下:(1) S表示空格子(2) F表示机器人的起始位置(3) G表示能量池,对于同一个能量池只能使用一次,且经过能量池的时候可以选择用或者不用,用的话能量就会变满.(4) D表示坏格子,机器人不能走D格子(5) Y表示开关格子,机器人必须把所有开关格子

2014-02-27 18:51:54 1186 2

原创 ZOJ3471

ZOJ3471 Most Powerful有n个原子,任意两个原子互相撞击会产生一定的能量,并且被撞击的那个会消失,然后要你求当n个原子发生了n-1次撞击后能产生的最大能量.输入:包含多组实例.每个实例的第一行是N(2输出:对于每个实例输出能量最大值.分析:本题和TSP问题很相似,使用类似的状态定义方式解即可.令d[i][S]表示当前在原子i且已经用过的原子集合为S(S包括i)

2014-02-26 18:36:42 989

原创 POJ1038

POJ1038Bugs Integrated, Inc.现在给你一个N*M的矩阵,然后矩阵有K个坏了的格子,矩阵中黑格子表示坏的格子,要你在所有好的格子中选出尽量多的2*3(或3*2)小矩阵,问你最多能选多少个这样的小矩阵.输入:首先是一个t,(1输出:输出最多能选多少个2*3小矩阵.分析:由题意我们可知假设从上到下开始摆放2*3(或3*2,后文统称为小矩阵)矩阵,那么当我们放

2014-02-26 12:19:21 2469 1

原创 POJ2288

POJ2288Islands and Bridges现在有n个点和m条边的无向图,每个节点有一个权值vi,我们要求这个图的最优三角哈密顿路,哈密顿路是一条经过所有节点一次的路。最优三角哈密顿路是这么定义的:对于一条哈密顿路c1c2…cn,我们首先令sum = sum(vi),1对于所有存在的哈密顿路,具有最大sum值的那些就是最优三角哈密顿路。输入:首先是T(1输出:输出对应的

2014-02-24 22:07:41 1000

原创 HDU3001

HDU3001Travelling现在有一个具有n个顶点和m条边的无向图(每条边都有一个距离权值),小明可以从任意的顶点出发,他想走过所有的顶点而且要求走的总距离最小,并且他要求过程中走过任何一个点的次数不超过2次。输入:包含多组实例。每个实例第一行为n(1输出:输出他需要走的最短距离,如果不存在这样的路,输出-1.分析:   首先本题的图一定要是一个连通的无向图,否则肯定不存

2014-02-24 17:17:10 1247

原创 POJ1185

POJ1185炮兵阵地司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色

2014-02-23 17:59:28 1078 1

原创 POJ3311

POJ3311 Hie with the Pie给你一个有n+1(1输入:包含多组实例。每个实例第一个为n,然后是n+1行矩阵,每行矩阵有n+1个数字,第i行第j个数字表示从i-1到j-1号点的距离。当输入n=0时表示输入结束。输出:最小距离。分析;本题和经典TSP旅行商问题类似,但是TSP要求每个节点仅走过1次,本题要求每个节点至少走过一次。同样的是本题也用状态压缩DP来解。

2014-02-22 17:27:17 2165

原创 POJ3254

POJ3254Corn Fields有一个n*m的矩阵,这个矩阵以01的形式给出,其中标为1的格子可以选择,标为0的格子不能被选。现在要你在可以选的所有格子中选择一种方案,使得被选的任意两个格子不邻接(即无公共边)。问你共有多少种选择方案?(被你选中的格子总数没有要求,一个格子都不选也可以作为一个方案)输入:第一行为n*m(1输出:方案总数%10^8.分析:本题先假设以行为计算

2014-02-22 12:01:37 974

原创 POJ3420 递推/状态压缩DP +矩阵幂加速处理

POJ3420 Quad Tiling现在我们有一个4*n(1输入:包含多组实例,每组为n和m(0输出:输出摆放总数对m求余的结果。分析:做本题首先要知道它的基础题型。见:http://blog.csdn.net/u013480600/article/details/19612171这道题由于数据规模很大,且是4*n类型,所以不能用轮廓线DP来解。解法一:递推+矩阵加速

2014-02-21 22:52:49 2359 1

原创 POJ2663

POJ2663 Tri Tiling现在给出一个3*n(0分析:解法一:首先这道题n的规模比较小我先试下用轮廓线DP来解。(轮廓线DP见:http://blog.csdn.net/u013480600/article/details/19499899)注意POJ的这道题目测试数据当n==0时输出的是1,否则WA。AC代码:47MS#include#include

2014-02-21 11:23:18 2292

原创 POJ2411 状态压缩DP

POJ2411 Mondriaan's Dream给你n*m(1矩阵,要求用1*2的多米诺骨牌去填充,问有多少种填充方法。分析:首先我们定义如下这种填充表示方式:如果一个骨牌是横着放的,那么它所在的两个方格都填充1.如果它是竖着放的,那么它所在的两个格子中,上面的那个填0,下面的这个填1.如下图所示: 由此可以得到断言:该矩阵的骨牌摆放方法和该矩阵的二进制表示法是一一对应的。

2014-02-20 20:17:00 9717 8

原创 POJ2411 轮廓线动态规划典型例题

Poj2411 Mondriaan's Dream给出一个n*m的矩形,然后用1*2大小的多米若骨牌去填充n*m的这个矩形,问有多少种填充方法。分析:典型的轮廓线动态规划题目。详见刘汝佳新书:算法竞赛入门经典:训练指南P384.首先本题目是以一个一个的格子为基础来计算状态的,即每次都是考虑当前位置的格子如何放左上骨牌(以当前位置为最右下角,即只不放,左放,和上放3种情况,没有右放和

2014-02-19 19:31:43 7744

原创 HrbustOJ1176

HrbustOJ1176 小陈老师、雪人东北的冬季,尤其是过年的时候,小陈老师喜欢去堆雪人。每个雪人主要由三个雪球构成:大雪球、中雪球、小雪球。他已经准备好了N个雪球,半径分别等于r1, r2, ..., rn。如果要堆一个雪人,就需要三个半径互不相等的雪球。例如:三个雪球的半径为1、2、3,能够用来堆一个雪人。但是半径为2、2、3或者2、2、2的三个雪球就不可以。快帮帮小

2014-02-16 14:08:46 898

原创 HDU1228

HDU1228 A + B读入两个小于100的正整数A和B,计算A+B.需要注意的是:A和B的每一位数字由对应的英文单词给出.输入:测试输入包含若干测试用例,每个测试用例占一行,格式为"A+ B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出.输出:对每个测试用例输出1行,即A+B的值.分析:直接用string进行读取然后做对应判断即可。AC代

2014-02-14 22:11:14 1448 1

原创 HDU1229

HDU1229 还是A+B读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)位数字相同,请直接输出-1。输入:测试输入包含若干测试用例,每个测试用例占一行,格式为"A B K",相邻两数字有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。输出:对每个测试用例输出1行,即A+B的值或者是-1。分析:由于数值比较小,直接读入a和

2014-02-14 21:39:28 1150

原创 HDU 1022 Train Problem I(判断出栈序列是否可行)

HDU1022 Train Problem I现在有一组数字序列,该序列中每个数字都是1到n之间的数,其中n输入实例:3 123 3213 123 312输出实例:Yes.inininoutoutoutFINISHNo.FINISH输入:输入包含多个实例。每个实例第一个数字为n,接下来是进栈的数字顺序,然后是要求的出栈数字顺序。

2014-02-14 20:39:02 1091

原创 HDU1049

HDU1049 Climbing Worm一只蠕虫在深n英寸的井中,它每分钟会向上爬u英寸,然后它会休息1分钟并且下滑d英寸,现在要求它要多少分钟能到达进口(它就算刚到井口然后会下滑,也算它到达井口)。我们把不足1分钟的时间也算是1分钟。输入:包含多组实例。每行代表一个实例,包括3个正整数,n,u 和 d。d 输出:对于每个实例,输出蠕虫爬到井口所需要的整数分钟时间。分析:蠕虫到达

2014-02-14 12:21:25 1502

原创 求 a^b mod mod 的模板

long long pow_mod(long long x,long long a,long long n)//a^b mod mod{ if(a==0) return 1; long long ans = pow_mod(x,a/2,n); long long temp = (ans*ans)%n; if(a%2) temp = (temp*x)%n;

2014-02-14 01:09:19 860

原创 HDU2817

HDU2817 A sequence of numbers现在有一个由整数组成的序列,可能是等差数列,也可能是等比数列,但是只给出前3个数,要求你求数列中第k个数% 200907的结果。所给数列是一个非递减数列。输入:首先是一个t表示输入的实例个数,以下t行每行代表一个实例。每行包括4个整数,前3个整数在[0, 2^63)范围内,表示数列的头3个数,第4个数是k表示要求的数列中的第k个数。

2014-02-14 01:07:08 1383

原创 HDU1033 Edge

HDU1033 Edge现在有一个固定初始坐标(300.420)的点,它按照一定的操作命令序列每向前走10个单位长度的距离就左转(V)或右转(A)。现在要每个操作命令序列来输出这个点的轨迹(并遵循一定的格式)。输入:每一行是一个实例。每行包含一个非空的长度不超过200的由A和V构成的字符串。以文件结束符表示输入结束。输出:对于每个输入实例,以以下的例子作为输入标准。以上图片

2014-02-13 22:47:55 1514

原创 HDU1038

HDU1038 Biker's Trip Odometer现在用自行车去旅行,给出自行车轮胎的直径,自行车轮胎转的总圈数,以及总共花的时间。输入:包含多个实例。每个实例一行,分别为直径(浮点数),圈数(整数),时间(浮点数)。当圈数为0时,表输入结束,不用计算。其中直径以英寸为单位,时间以秒为单位。输出:对于每个实例以格式:Trip #N: distance MPH 输出。Dist

2014-02-07 16:43:37 945

原创 HDU1039

HDU1039 Easier Done Than Said?现在输入一行密码,要你判断这个密码是否是可行的。可行的密码要符合以下3个要求:1.密码至少包含一个元音字母2.密码不能包括连续3个的元音或连续3个辅音字母3.密码不能包括两个连续的相同字母,但是ee或oo是允许的。输入:包含多个实例,每个实例占一行,最后一行以“end”表示结束。每行最少包含一个最多由20个小写字母组成

2014-02-06 20:28:30 1467

原创 HDU 1943 Ball bearings(简单计算几何)

HDU1943 Ball bearings现在给出一个大圆圈,然后在大圆圈里面要放多个小圆圈,且要求所有的小圆圈必须与大圆圈的内表面相切,且依序相邻的两个小圆圈之间的距离要大于等于给定值s。输入:首先是一个t,表示输入实例数。以下每行是一个实例,有3个浮点正数,D,d,s。D是大圆的直径,d是小圆的直径,s是依序相邻的小圆之间的最小距离。所有参数都是在[0.0001, 500.0]范围

2014-02-05 17:04:24 983

原创 HDU1047

HDU1047 Integer Inquiry输入:首先是一个T,代表有多少个输入实例。对于每个实例最多可能包含100行,每行是一串最多由100个数字组成的数,以单行0代表该行的输入结束。输出:对于每个输入实例,输出所有大数的和。分析:对于每个实例直接加上每个大数即可,判断下是否是0表示结尾。此题WA数次,原因未考虑总和为0的时候的情况,原题说大数非负,没说不能为0AC代码:

2014-02-05 01:01:13 1524

原创 HDU4278

HDU4278 Faulty Odometer你有一个错误的里程表,里程表只会显示整数的里程数,但是这个表有个问题,它从2到4计数和从7到9计数时,会跳过数字3和8,即你从它看到的里程数中永远也看不到数字3和8.例如:当前里程显示15229时,当车再走一公里,则显示新的里程数为15240(而不是15230)输入:每行代表一个输入实例,为一个从1到999999999的正整数,且无首部0.最后

2014-02-04 17:24:51 986

0day安全代码

0day安全的这本书第二版的所有源代码和信息可以来看看

2014-09-09

空空如也

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

TA关注的人

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