hdu
liurui39660
这个作者很懒,什么都没留下…
展开
-
hdu 1465
题目概述一个人给n个人寄信,问有多少种每封信都装错信封的装法时限1000ms/2000ms输入每行一个正整数n限制2<=n<=20输出每行一个数,所求装法数样例输入 2 3 4 5 20样例输出 1 2 9 44 895014631192902121讨论递推,不过这个有现成公式,错排公式,f(1)=0,f(2)=1,f(n)=(n-1)*[原创 2016-07-15 10:30:42 · 310 阅读 · 0 评论 -
hdu 1203
题目概述一个人有N元,打算申请M个学校,每个学校申请费cost元,录取率value,求最大录取率时限1000ms/2000ms输入每组数据第一行两个正整数N,M,其后M行,每行一个正整数cost和一个正浮点数value,输入以N=M=0结束限制0<=N<=10000;0<=M<=10000输出每行一个浮点百分数和一个百分号,最大录取率,百分数精确到小数点后一位样例输入 10 3 4 0.1原创 2016-07-18 22:07:12 · 407 阅读 · 0 评论 -
hdu 1217
题目概述给定N种货币,和M条货币间的汇率,问是否可套汇 套汇是指某种货币通过和其他一系列货币兑换,最终兑换回起始币种时汇率大于1的情况时限1000ms/2000ms输入每组输入第一行正整数N,其后N行,每行一个字符串sa,代表一种货币名称,之后一行正整数M,其后M行,每行一个字符串sa,一个浮点数a,另一个字符串sb,表示1单位sa币可兑换a单位sb币,输入以N=0结束限制1<=N<=30输出每行原创 2016-07-19 01:09:41 · 264 阅读 · 0 评论 -
hdu 1171
题目概述有N种物品,每种有b个,单价a,需将所有物品按总价尽可能均分成两部分,求每部分分得的总价值时限5000ms/10000ms输入第一行正整数N,其后N行,每行两个正整数a,b,输入到N<0为止限制1<=N<=50;1<=a<=50;1<=b<=100输出每行两个数,两部分所得的总价值,且前者不得小于后者样例输入 2 10 1 20 1 3 10 1 20 2原创 2016-07-18 16:21:51 · 348 阅读 · 0 评论 -
hdu 2844
题目概述给定N种钱,每种面值v,数量n,问可凑出的总价值中有多少种在(0,M]范围之间时限1000ms/2000ms输入每组数据第一行两个正整数N,M,下一行前N个为正整数v,后N个为正整数n,面值与数量相互对应,输入以N=M=0结束限制1<=N<=100;M<=100000;1<=v<=100000;1<=n<=1000;输出每行一个数,范围内可凑出的总价值种类数样例输入 3 10 1原创 2016-07-19 21:43:47 · 446 阅读 · 0 评论 -
hdu 2577
题目概述一个人要打字,打的内容只有英文字母,打大写可以打开caps lock打,也可以不开但按下shift再打,打小写可以关掉caps lock打,也可以开着按下shift打,caps lock,shift以及英文字母按键在按下时计一次,给定要打的内容,问最少按下多少次打完时限1000ms/2000ms输入第一行一个正整数N,其后N行,每行一个字符串限制1<=N<=100;字符串长度<=100;字符原创 2016-07-19 15:43:50 · 328 阅读 · 0 评论 -
poj 1068
题目概述有一由左右括号构成的字符串,所有括号都可闭合,有两种编码,P编码记录每个右括号左侧有多少左括号,W编码记录令每个右括号闭合需向左侧遍历经过几个左括号,已经被右括号匹配的左括号不能再令右括号闭合,但会计为1个,给定P编码,求其W编码时限1000ms/3000ms输入第一行正整数times,其后times组数据,每组数据第一行正整数N,下一行N个正整数,代表P编码限制1<=times<=10;1原创 2016-07-20 01:33:24 · 270 阅读 · 0 评论 -
hdu 2845
题目概述有一矩阵R行C列的矩阵,每个位置有一个数a,在矩阵中可任意取数,但所取位置的左右一格和上下一行所有位置不可再取,给出矩阵,求所取数最大和时限1000ms/2000ms输入每组数据第一行正整数R,C,其后R行,每行C个整数,输入到EOF为止限制a<=1000;1<=R*C<=200000输出每行一个数,所求最大和样例输入 4 6 11 0 7 5 13 9 78 4 81 6原创 2016-07-20 12:01:12 · 304 阅读 · 0 评论 -
hdu 1231
题目概述给定一个有N个数的数列,求最大连续子序列和及该子序列的首尾元素 若序列元素全负,则其最大和为0,首尾元素为给定序列的首尾元素 若多有个子序列和相等,输出首尾元素序号最小的时限1000ms/2000ms输入每组数据第一行正整数N,下一行N个整数,为序列中元素,输入到N=0为止限制1<=N<10000输出每行三个数,子序列和,子序列首元素值,子序列末元素值样例输入 6 -2 11原创 2016-07-17 10:44:46 · 380 阅读 · 0 评论 -
hdu 1087
题目概述给定N个数构成的序列,求严格上升子序列中元素和的最大值时限1000ms/2000ms输入每行第一个正整数N,其后N个整数,为序列中的数,输入到N=0为止限制1<=N<=1000;序列中的数皆在32位整型范围内输出每行一个数,所求的和的最大值样例输入 3 1 3 2 4 1 2 3 4 4 3 3 2 1 0样例输出 4 10 3讨论dp,做过前面几个原创 2016-07-15 22:33:45 · 357 阅读 · 0 评论 -
poj 1177 && hdu 1828
题目概述给定N个矩形左下角和右上角顶点坐标,求其组合所得图形的总周长 矩形的边一定平行或垂直与坐标轴时限2000ms/6000ms输入第一行正整数N,其后N行,每行4个整数,描述两个顶点坐标,输入到EOF为止限制0<=N<=5000;-10000<=坐标值<=10000输出每行一个数,为所求图形周长样例输入 7 -15 0 5 10 -5 8 20 25 15 -4 24 1原创 2016-08-03 20:44:12 · 605 阅读 · 0 评论 -
hdu 1176
题目概述有一数轴,有0到10共11个位置,某人在第0秒时站在5位置,每秒至多移动1个位置,数轴的11个位置上空会不定时落下一张馅饼,但一定在每秒人移动后掉落,人只能接住自己移动后所在位置的馅饼,给出其降落的位置a和着陆的时刻b,求最多可接住多少馅饼时限1000ms/2000ms输入每组数据第一个正整数N,其后N行,每行两个正整数a,b,输入以N=0结束限制1<=N<=100000;1<=b<=100原创 2016-07-18 21:23:11 · 252 阅读 · 0 评论 -
hdu 1216
题目概述有一从2开始的自然数序列,每次选中序列中没被划掉的第一个数N,记录为一个幸运数,然后从N开始,每经过N个没被划掉的数,就划掉一个数,比如选中2,则4,6,8,..都被划掉,再选中3,则9,15,21,..被花掉,再选中5,则19,35,49,…被划掉,求第a个幸运数时限1000ms/2000ms输入每行一个正整数a,输入到a=0为止限制1<=a<=3000输出每行一个数,所求的幸运数样例输入原创 2016-07-18 14:25:34 · 2073 阅读 · 0 评论 -
hdu 1160
题目概述有若干老鼠的体重和速度,求一最长的存放老鼠序号的序列,使得体重严格递增,速度严格递减,答案可能有多种,任何一种都算对时限1000ms/2000ms输入每行两个正整数,老鼠的体重和速度,数据所在行号即是老鼠序号限制老鼠最多1000只;体重和速度均不超过10000输出第一行一个数,所求序列的长度,其后若干行,每行一个数,序列中老鼠的序号样例输入 6008 1300 6000 2100原创 2016-07-15 19:32:07 · 371 阅读 · 0 评论 -
hdu 2108
题目概述按逆时针顺序给定一个有N个顶点的多边形所有顶点的坐标x,y,求其凹凸性时限1000ms/2000ms输入第一行正整数N,下一行N对整数x,y,输入到N=0结束限制没有限制输出每行一个字符串,若多边形为凸,则为 convex 否则为 concave样例输入 4 0 0 1 0 1 1 0 1 0样例输出 convex讨论计算几何,判断凹凸性,由于确定是逆时针序,故原创 2016-07-26 23:24:28 · 402 阅读 · 0 评论 -
hdu 1950
题目概述给定N个数num,求其最长上升子序列长度时限1000ms/2000ms输入第一行正整数times,代表数据组数,每组数据第一行正整数N,其后N行,每行正整数num限制1<=N<40000输出每行一个数,最长上升子序列长度样例输入 4 6 4 2 6 3 1 5 10 2 3 4 5 6 7 8原创 2016-07-27 01:51:56 · 277 阅读 · 0 评论 -
hdu 1159
题目概述给定两个无空白字符的字符串a,b,求其最长公共子序列的长度时限1000ms/2000ms输入每行两个字符串a,b,输入到EOF为止限制没有限制输出每行一个数,最长公共子序列的长度样例输入 abcfbc abfcab programming contest abcd mnp样例输出 4 2 0讨论dp的最长公共子序列,有公式,但额不太理解 意思就是开原创 2016-07-15 21:40:26 · 254 阅读 · 0 评论 -
hdu 1421
题目概述有N件物品,要搬走其中2*K件,每件物品都有重量,每次搬两个物品,所得疲劳度为两件物品重量差的平方,求最终疲劳度和的最小值时限1000ms/2000ms输入第一行两个正整数N,K,下一行N个正整数,代表每件物品的重量,输入到EOF为止限制2<=2*K<=N<=2000;1<=物品重量<=2^15输出每行一个数,疲劳度和的最小值样例输入 2 1 1 3 4 1 1 2 3原创 2016-07-16 14:00:59 · 199 阅读 · 0 评论 -
hdu 1058
题目概述1和因子只有2,3,5,7的数称为丑数,给出序号N,求对应该序号的丑数时限1000ms/2000ms输入每行一个正整数N,输入到N=0结束限制1<=N<=5842输出每行一个字符串 The # humble number is @. 其中#为N和N在英文中对应的序数后缀,@为所求丑数样例输入 1 2 3 4 11 12 13 21 22原创 2016-07-16 19:18:15 · 441 阅读 · 0 评论 -
hdu 2955
题目概述一个人打算抢N家银行,被抓概率总计不超过P都算安全,每家银行有v元,被抓概率c,求安全状态下最多拿多少钱时限1000ms/2000ms输入第一行正整数times,其后times组数据,每组第一行一个浮点数P和一个正整数N,其后N行,每行一个正整数v和一个浮点数c限制1<=times<=100;0.0<=P<=1.0;1<=N<=100;1<=v<=100;0.0<=c<=1.0输出每行一个数原创 2016-07-16 22:00:10 · 407 阅读 · 0 评论 -
hdu 2571
题目概述一个幸运值为0的人站在一R行C列的矩阵左上角(1,1),需要到达其右下角(R,C),矩阵每个位置会导致幸运值变化,在矩阵中移动只能向右一格或向下一格或向右移动到同一行但列数是当前列数倍数(>1的整数)的位置,比如从(2,3)可移动到(2,4),(3,3),(2,6),(2,9),(2,12),…,每次移动都是瞬间到达,不需要经过中间的格子,求到目的地时的最大幸运值时限1000ms/2000m原创 2016-07-17 20:02:56 · 280 阅读 · 0 评论 -
hdu 1864
题目概述给定报销额上限Q,可报销同时满足下述条件的发票: 不含A,B,C类以外的物品,单类物品总价不超过600,整张发票总价不超过1000 发票不可拆分报销,任意条件不满足则整张发票不可报销,给定N张发票,求最多报销多少钱时限1000ms/1000ms输入每组数据第一行一个正浮点数Q和一个正整数N,其后N行,每行第一个正整数i,其后i个项目,每个项目格式为type:cost,type为一大写英文原创 2016-07-17 20:40:09 · 373 阅读 · 1 评论 -
hdu 1069
题目概述给定N种长方体的长宽高a,b,c,每种长方体有无限多个,且其可以以任意一个面作底面,不必局限于给定时的摆放方法,两个长方体只有当一个的底面长宽都严格小于另一个时才能堆叠到其上,求可堆叠出的最高高度时限1000ms/2000ms输入每组数据第一行一个正整数N,其后N行,每行三个正整数a,b,c,输入到N=0为止限制1<=N<=30输出每行一个字符串,符合以下格式 Case #: maximu原创 2016-07-17 23:51:20 · 332 阅读 · 0 评论 -
poj 1151 && hdu 1542
题目概述给定N个矩形左下角和右上角顶点的坐标,求其面积并 矩形的边一定与坐标轴平行或垂直时限1000ms/3000ms输入第一行正整数N,其后N行,每行四个浮点数,代表两个顶点的坐标,输入到N=0结束限制1<=N<=100;0<=坐标值<=100000输出每组数据输出在两行中,第一行 Test case #A 其中A为数据序数,从1开始,第二行 Total explored area: B原创 2016-08-03 13:32:19 · 668 阅读 · 0 评论 -
hdu 1213
题目概述给定N个人,编号1到N,如果两个人都认识同一个人,那么这两个人也视为互相认识,给定M条这样的关系,若只能将互相认识的人安排到同一张桌子,问最少需要多少桌子 自己必然认识自己,因而不会出现这样的数据时限1000ms/2000ms输入第一行正整数times,其后有times组数据,每组数据第一行正整数N,M,其后M行,每行两个正整数,代表这两个人互相认识,两组输入中间带一空行限制1<=time原创 2016-07-31 14:47:39 · 348 阅读 · 0 评论 -
hdu 1228
题目概述给定两个小于100的正整数A和B,计算A+B 需要注意的是:A和B的每一位数字由对应的英文单词给出时限1000ms/2000ms输入每行若干个字符串,均为题目所述格式,输入到EOF结束限制没有限制输出每行一个数,为结果样例输入 one + two = three four + five six = zero seven + eight nine = zero + ze原创 2016-08-12 19:23:16 · 271 阅读 · 0 评论 -
hdu 4463
题目概述城市中有N家商店,编号1到N,每家的坐标为x,y,其中有两家分别是Nike和Apple,现在要为这些商店修路,其中Nike和Apple必须直接相连,其他的只要能间接连通即可,求修路总长最小值时限1000ms/2000ms输入第一行整数N,下一行两个整数Nike,Apple,代表这两家店为Nike和Apple,其后N行,每行两个整数x,y,为一家店的坐标,店按编号升序给出,输入到N=0结束限制原创 2016-08-12 19:35:07 · 322 阅读 · 0 评论 -
hdu 4104
讨论递推,很巧妙,如果前i个价格,可以凑出1到S元,那么对于第i+1个价格A,只要他的价格在1到S+1之内(含),就可以将可以凑出的价格扩充到1到S+A元,这实际上就是个不等式的加法,而若A不在这个范围,则S+1就是第一个无法凑出的价格,之所以在S+1也行,是因为若这个物品价值S+1,而前面的物品可凑出S,中间并没有间断,而可凑出的价值也将被扩充到S+S+1 实现上,首先是一步排序,初始值为0,没原创 2016-09-16 21:56:22 · 225 阅读 · 0 评论 -
hdu 4112
讨论水题,只需要稍微开一下脑洞就能想到,人手和刀子的差别在于,人手一次只能把一块掰成两块,而刀子可以一次把若干块掰成两块,由于最后总是要弄成单位体积的,因而无可避免要将立体变平面,平面变线段,线段变成点这样三个过程,因而每次只需要考虑掰多少次就可以降维,然后对于掰成的每一块进行同样处理,对于刀子,由于一次可以处理若干块,因此每次切一块和每次切更多块是一样的,这个好处首先体现在降维上,只要每次都尽量沿原创 2016-09-17 07:27:15 · 288 阅读 · 0 评论 -
hdu 4417
讨论划分树,二分,以往是直接问区间第k个数是几,这回反过来,给数问是第几个,二分即可,划分树的构造是线性对数级,每次查询是对数级,这样综合复杂度就是构造的O(NlogN)O(NlogN)和查询的O(Q(logN)2)O(Q(logN)^2)题解状态343MS,15424K,1988 B,C++题解代码#include<cstdio>#include<cstring>#include<algori原创 2016-09-17 11:29:32 · 272 阅读 · 0 评论 -
hdu 5878
讨论水题,事先打好表,发现只有不到5200个不同的数,然后二分就可以了 怎么打表?写个四重循环,反正在本地跑,多跑一会也无所谓 所以下面给的代码不是提交的代码(5194个数,一点都不好看),而是生成的代码 其实生成代码里的另一部分是用另外一个代码生成的,那个就太好想了 然而比赛没想到……题解状态624MS,1432K,44328 B,G++题解代码#include<cstdio>#incl原创 2016-09-17 18:35:07 · 308 阅读 · 0 评论 -
hdu 5879
讨论水题,首先要知道这个数的极限是收敛的,收敛于π26\pi^2\over 6,得到估算值1.644934,然后打表找到这个数,不到12万,然后对于前面12万个数打表解决,往后的直接输出1.64493,但烦人的是题目的输入范围是很随便的,不但会有特别大的,而且会有带前导0的,简单利用字符串处理即可题解状态15M,2368K,662 B,G++题解代码#include<cstdio>#include原创 2016-09-17 18:53:45 · 350 阅读 · 0 评论 -
hdu 5882
讨论水题,对于每种情况,如果能将这些节点划分为若干个强联通的三角形,那就是可以,否则就不行,再具体一点,从多边形里任选3个点,连有向边,如果到构成完全图为止都不会出现需要双向边的情况就是可以,再具体一点,只要节点是偶数个就不行,奇数个就可以题解状态0MS,1412K,406B,G++题解代码#include<cstdio>#include<cstring>#include<algorithm>原创 2016-09-17 18:59:49 · 590 阅读 · 0 评论 -
hdu 1812
题目概述一个N*N的棋盘,用C种颜色染色,其中将棋盘旋转后重合,沿中线对称,沿对角线对称的不重复计数,问一共多少种染色方案时限1000ms/3000ms输入每行两个整数N,C,输入到EOF为止限制1<=N,C<=30输出每行一个数,为所求染色方案数样例输入 2 2 3 1 30 30样例输出 6 1 320655918792067344519812003636174原创 2016-08-26 14:41:25 · 462 阅读 · 0 评论 -
hdu 3549
题目概述有N个点,编号1到N,M条边,求从1到N的最大流时限5000ms/5000ms输入第一行整数times,其后times组数据,每组数据第一行整数N,M,其后M行,每行三个整数a,b,c,代表a到b的边,残量为c限制2<=N<=15;0<=M<=1000输出每行一个字符串 Case A: B A为数据序数,从1开始,B为所求最大流样例输入 2 3 2 1 2 1 2原创 2016-08-27 09:52:55 · 500 阅读 · 0 评论 -
hdu 5650
题目概述给定N个数构成的一个集合S,其非空子集为s,定义操作f(s)为对子集中所有数求异或,求所有f(s)结果的异或时限1000ms/2000ms输入第一行整数times,其后times组数据,每组数据第一行整数N,下一行N个整数限制1<=times<=20;1<=N<=1000输出每行一个数,为所求异或结果样例输入 1 3 1 2 3样例输出 0讨论原创 2016-08-12 19:16:17 · 250 阅读 · 0 评论 -
hdu 5875
讨论单调栈,构图,还有预处理,显然朴素的思想不可能过的,需要一点优化,可以发现,如果某数先对一个较小的数取模,然后对一个较大的数取模,则对较大的数取模并不会影响结果,于是可想到令每次取模的操作数严格递减,基于如此思路,可以构造一张图,前面较大的数指向后面第一个比他小的数,没有更小数的就不用向后指了,因而每个数最多只有一条出边,透过这张图加速取模过程,不过这顶多算剪枝,因为复杂度仍然是平方级,但已经足原创 2016-09-15 08:46:29 · 247 阅读 · 0 评论 -
hdu 1257
题目概述一序列有N个数,给出序列,问最少可划分为几个不上升子序列时限1000ms/2000ms输入每行第一个正整数N,其后N个正整数,为序列中的数限制1<=序列中的数<=30000输出每行一个数,最少划分数样例输入 8 389 207 155 300 299 170 158 65 4 1 2 1 2样例输出 2 2讨论dp,是的,这是dp,不过确切说,这是dilworth定理原创 2016-07-20 23:46:36 · 249 阅读 · 0 评论 -
poj 3695 && hdu 2461
题目概述有N个矩形,编号1到N,给定其左下角和右上角顶点坐标,其后进行M次查询,每次问其中R个矩形面积并时限2000ms/6000ms输入第一行两个正整数N,M,其后N行,每行四个整数,描述两个顶点坐标,其后M行,每行第一个数R,之后R个数为查询的矩形编号,输入到N=M=0结束限制1<=N<=20;1<=M<=1e5;0<=坐标值<=1000输出每组数据输出在M+1行中,第一行 Case #:原创 2016-08-04 16:28:31 · 893 阅读 · 0 评论 -
hdu 1166
题目概述有N个营地,编号1到N,起初都有人,根据调查,每个营地的人会增加(Add),减少(Sub),上司会不定时询问(Query)连续几个营地总人数,求每次上司询问时回答的结果时限1000ms/2000ms输入第一行正整数times,其后times组数据,每组数据第一行正整数N,下一行N个正整数,代表初始人数,其后若干行,每行一个字符串以及两个正整数a,b,对Add和Sub,a为变动的营地序号,b为原创 2016-08-02 16:58:55 · 428 阅读 · 0 评论