2014多校联合训练
画船听雨
和梦想谈一次恋爱,也要疯狂,也要坚持
展开
-
HDU 4864 Task(贪心)
很明显的贪心但是策略不对就会各种跪啊原创 2014-07-23 09:06:46 · 690 阅读 · 0 评论 -
HDU 4927 Series 1(瞎搞)
不化简直接进行计算,比如:1,2,3原创 2014-08-07 21:26:58 · 842 阅读 · 0 评论 -
HDU 4937 Lucky Number(枚举进制)
题目大意:给你一个十进制的数字n,然后问你转化为某一进制后它的每一位的数字只可能为3,4,5,6.求这种符合条件的进制有多少种。解题思路:这题虽然没说进制有多大但是我们可以简单的分析一下,n的上限是10^12,如果有四位数字的话,那至少要出现三次方,所以进制最大为10000。所以我们枚举一下,一位的时候3,4,5,6显然为-1.两位的时候解一下a*x+b = n。三位时解一下:a*原创 2014-08-26 11:06:20 · 1060 阅读 · 0 评论 -
HDU 4945 2048(dp+快速幂取模)
题目大意:给你一个序列让你求出有多少种组合可以得到2048.结果要对998244353取余。解题思路:求出不能满足条件的方案数,然后用总的减去不满足的然后乘上其他无关的组合方式,比如3,5这些数字是在构成2048的过程中无用的,所以乘上这些组合出来的情况。dp[i][j]表示取到第i个2^i的数,其最大的和在j*2^i至(j+1)*2^i-1的方案数。所以有dp[i][j] += ((原创 2014-08-26 16:47:04 · 1339 阅读 · 0 评论 -
HDU 4960 Another OCD Patient(区间dp记忆化搜索)
题目大意:给你一串数字让你判断经过若干次合并,使得这个数字串变成回文串的最小成本是多少。第一行是数字串,第二行是合并连续i个数字的成本是多少。解题思路:区间dp,可以进行记忆化搜索,如果左边比右边和大那么右边一定是小了,右边比左边大那么左边一定小了。因为保证有解。具体不太好说,直接看代码吧。Another OCD PatientTime Limit: 2000/1000 MS原创 2014-08-26 20:49:41 · 899 阅读 · 0 评论 -
HDU 4951 Multiplication table(找规律)
题目大意:原创 2014-08-26 17:49:11 · 949 阅读 · 0 评论 -
HDU 4939 Stupid Tower Defense(dp+贪心)
dp[i][j]表示到了第i步放了j个减速,造成的伤害。我们用贪心的策略把造成一段伤害的放在最后面,造成持续伤害的与减速放在前i个中这样得到的伤害是最高的。所以前(i,j)中的伤害为dp[i][j] = max(dp[i-1][j]+(j*z+t)*(max(0LL, i-1-j))*y, dp[i-1][j-1]+((j-1)*z+t)*(i-j)*y);每次造成的伤害就为:dp[i][原创 2014-08-14 09:02:00 · 984 阅读 · 0 评论 -
HDU 4940 Destroy Transportation system(图论)
这道题目当时做的时候想的是,如果找到一个点他的d值之和大于 d+b值之和,就可以。竟然就这么过了啊。不过题解上还有一种做法,好像有点难。以后在补一补那种做法吧。Destroy Transportation systemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other原创 2014-08-14 09:26:49 · 1042 阅读 · 0 评论 -
HDU 4965 Fast Matrix Calculation(矩阵快速幂)
题目大意:给你两个数字n和k,然后给你两个矩阵a是n*k的和b是k*n的,矩阵c = a*b,让你求c^(n*n)。直接求的话c是n*n的矩阵所以是1000*1000,会超时的啊。可以转化一下:(a*b)^(n-1) = a*b*(a*b)^(n*n-1)。a*b可以得到一个k*k的矩阵,k很小所以不会超时,快速幂一下就可以了啊。Fast Matrix Calculation原创 2014-08-27 09:44:13 · 1134 阅读 · 0 评论 -
HDU 4971 A simple brute force problem.(最大流)
题目大意:给你一些技术和任务,你完成一个人物会获利x元,但是你得学习技术,每个技术之间又有一个先后的关系你学习这个技术之前你得先学其他的技术。每个技术学一次就可以了啊,也就是说你这次学会了这个技术那么以后用到就不用学习了。听说这题是最大权闭合图,后来看了看,这里有链接:http://www.cnblogs.com/wuyiqi/archive/2012/03/12/2391960.html原创 2014-08-27 21:05:11 · 1025 阅读 · 0 评论 -
HDU 4946 Area of Mushroom(凸包)
如果一个人能统治无穷远处,那么他的速度一定是最大的。除了原创 2014-08-14 20:30:39 · 1093 阅读 · 0 评论 -
HDU 4925 Apple Tree (瞎搞)
找到规律,各一个种一棵树,或者施肥。先施肥,先种树一样。Apple TreeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 197 Accepted Submission(s): 135Prob原创 2014-08-07 21:24:08 · 1151 阅读 · 0 评论 -
HDU 4923 Room and Moor(瞎搞题)
瞎搞题啊。找出1 1 0 0这种序列,然后存起来,这种情况下最好的选择是1的个数除以这段的总和。然后从前向后扫一遍,变扫边进行合并。每次合并,合并的是他的前驱。这样到最后从t-1找出的那条链就是最后满足条件的数的大小。Room and MoorTime Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144原创 2014-08-07 21:19:15 · 1036 阅读 · 0 评论 -
HDU 4888 Redraw Beautiful Drawings(最大流)
题目大意:给你一个n,m,k。n行,m列。然后给你每一行的总和,与每一列的总和,让你在这个n*m的矩阵里面填一个小于等于k的数字,使得满足每一列,每一行的和。如果没有输出“Impossible”,有多解输出“Not Unique”,有唯一的解输出“Unique”,并输出他的解。从源点到每一行的和建边容量为它的总和,从汇点到列建边容量为它的总和。然后行到列建边容量为数据上限K。然后求是否存在原创 2014-08-18 16:24:33 · 856 阅读 · 0 评论 -
HDU 4865 Peter's Hobby(输出路径的dp)
这道题最主要的是要原创 2014-07-23 14:37:37 · 899 阅读 · 0 评论 -
HDU 4869 Turn the pokers(瞎搞+逆元快速幂)
多校第一场,悲惨虐。还是水平原创 2014-07-22 20:55:09 · 923 阅读 · 0 评论 -
HDU 4870 Rating(概率dp+高斯消元)
这是题解上给的描述:令(x, y)表示高分为x,低分为y的状态(x >= y),E(x, y)表示从(x, y)到达(1000, ?)的比赛场数期望。容易得到E(x, y) = P * E(x1, y1) + (1 - P) * E(x2, y2) + 1,其中,(x1, y1)表示rating上升后的状态,(x2, y2)表示rating下降后的状态。把E(1000, ?) = 0带入可以得到包原创 2014-07-23 19:46:09 · 960 阅读 · 0 评论 -
HDU 4891 The Great Pan(模拟)
题目的意思还是比较好看懂的。注意以下几点:1.所有的{}与$$都是唯一匹配的啊,$$ $$这种情况按前两个一组后两个一组来算。2.换行不会打破连续的空格。3.{}与$$之间的不会有嵌套的形式。4.中间计算过程有可能超int要用long long 来存。The Great PanTime Limit: 2000/1000 MS (Java/Others) Mem原创 2014-07-30 08:22:59 · 1201 阅读 · 0 评论 -
HDU 4893 Wow! Such Sequence!(线段树)
很典型的线段树,注意就是一个数字如果变成了斐波那契数字之后如果在change的话,它是不会反生改变的,因为最近的斐波那契数字就是它本身了啊。用一个flag表示这一段上的数字是否change过,如果flag == 1已经change过,就不会在向下更新。否则的话就进行更新,最后会到达一个节点,更新这个节点。这里用暴力更新就行,找到最近的斐波那契数字。Add就是一个点更新,sum求和就是一个区原创 2014-07-30 08:31:08 · 960 阅读 · 0 评论 -
HDU 4915 Parenthese sequence(瞎搞题)
从左向右扫一遍左括号的最大值,与最小值。从右向左扫一遍右括号的最大值,与最小值。比较最大值中的最小数与最小中的最大数看能否有交集,0个,1个或者多个。Parenthese sequenceTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total S原创 2014-08-06 09:07:06 · 1028 阅读 · 0 评论 -
HDU 4920 Matrix multiplication(矩阵相乘)
各种TEL,233啊。没想到是处理掉0的情况就可以过啊。一直以为会有极端数据。没想到竟然是这样的啊、、在网上看到了一个AC的神奇的代码,经典的矩阵乘法,只不过把最内层的枚举,移到外面就过了啊、、、有点不理解啊,复杂度不是一样的吗、、Matrix multiplicationTime Limit: 4000/2000 MS (Java/Others) Memory Limit:原创 2014-08-05 19:37:10 · 1139 阅读 · 0 评论 -
HDU 4911 Inversion(归并排序求逆序数)
归并排序求逆序数,然后ans-k与0取一个最大值就可以了。也可以用树状数组做,比赛的时候可能姿势不对,树状数组wa了、、InversionTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 578 Accept原创 2014-08-06 09:41:21 · 1178 阅读 · 0 评论 -
HDU 4901 The Romantic Hero(二维dp)
题目大意:给你n个数字,然后分成两份,前边的一份里面的元素进行异或,后面的一份里面的元素进行与。分的时候按照给的先后数序取数,后面的里面的所有的元素的下标一定比前面的大。问你有多上种放元素的方法可以使得前面异或的值和后面与的值相等。dp[x][y] 表示走到第x步,得到y这个数字一共有多少种方法。但是需要注意这里得分一下,不能直接用dp数组存种数,你需要分一下从上一层过来的次数,和这一层自原创 2014-07-31 21:22:41 · 931 阅读 · 0 评论 -
HDU 4902 Nice boat(线段树)
多校中的线段树,看题解出题人的意思这道题目应该不简单。但是好像数据比较弱啊。竟然可以水过去啊、、、用一个标记,标记当前这一段是否被更新过,如果更新过就为1,否则为0。一定要注意最后一个空格输出。Nice boatTime Limit: 30000/15000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Ot原创 2014-08-01 09:45:15 · 1145 阅读 · 4 评论 -
HDU 4973 A simple simulation problem.(线段树)
题目大意:D表示在区间x,y内所有的元素扩充一倍;Q表示查询在这个下表以内的数字最多的个数为多少。如:1,2,3.D 1 3 之后就变成了 1 1 2 2 3 3.Q 1 4 输出 2.解题思路:每个节点记录两个信息:最大值的个数以及这个点一共有多少个数字。A simple simulation problem.Time Limit: 10000/5000 MS (Java/O原创 2014-08-29 21:37:31 · 1150 阅读 · 0 评论