HDU
文章平均质量分 82
满赋诸机
这个作者很懒,什么都没留下…
展开
-
HDU-2871 Memory Control(线段树)
Memory units are numbered from 1 up to N.A sequence of memory units is called a memory block. The memory control system we consider now has four kinds of operations:1. Reset Reset all memory units free.2. New x Allocate a memory block consisted of x原创 2015-06-24 22:35:54 · 459 阅读 · 0 评论 -
HDU-1043 Eight(A*)
The 15-puzzle has been around for over 100 years; even if you don't know it by that name, you've seen it. It is constructed with 15 sliding tiles, each with a number from 1 to 15 on it, and all packed into a 4 by 4 frame with one tile missing. Let's call t原创 2015-08-10 20:34:03 · 471 阅读 · 0 评论 -
HDU-1667 The Rotation Game(IDA*)
The rotation game uses a # shaped board, which can hold 24 pieces of square blocks (see Fig.1). The blocks are marked with symbols 1, 2 and 3, with exactly 8 pieces of each kind.原创 2015-08-10 21:48:20 · 421 阅读 · 0 评论 -
HDU-1059 Dividing(DP)
Marsha and Bill own a collection of marbles. They want to split the collection among themselves so that both receive an equal share of the marbles. This would be easy if all the marbles had the same value, because then they could just split the collection原创 2015-04-26 09:28:30 · 458 阅读 · 0 评论 -
HDU-2059 龟兔赛跑(DP)
据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能够毫不休息得以恒定的速度(VR m/s)一直跑。兔子一直想找机会好好得教训一下乌龟,以雪前耻。最近正值HDU举办50周年校庆,社会各大名流齐聚下沙,兔子也趁此机会向乌龟发起挑战。虽然乌龟深知获胜希望不大,不过迫于舆论压力,只能接受挑战。比赛是设在一条笔直的道路上,长度为L米,规则很简单,谁先到达终点谁就算获胜。无奈乌龟自从上次获胜以后,成了名龟原创 2015-05-18 19:58:36 · 483 阅读 · 0 评论 -
HDU-2234 无题I(IDA*)
一天机器人小A在玩一个简单的智力游戏,这个游戏是这样的,在一个4*4的矩阵中分别有4个1,4个2,4个3和4个4分别表示4种不同的东西,每一步小A可以把同一行的4个数往左移或者往右移一步或者把同一列的4个数字往上移或者往下移一步(1,2,3,4往左移后是2,3,4,1),小A现在想知道进过最少的几步移动可以将矩阵的每行上的4个数字都一样或者每列上的4个数字都一样。但是小A又不想走太多步,他只要知道最少步数是否少于等于5步,是的话输出准确的步数,否则输出-1。原创 2015-08-11 09:58:00 · 743 阅读 · 0 评论 -
HDU-2845 Beans(DP)
Bean-eating is an interesting game, everyone owns an M*N matrix, which is filled with different qualities beans. Meantime, there is only one bean in any 1*1 grid. Now you want to eat the beans and collect the qualities, but everyone must obey by the follow原创 2015-05-10 20:11:12 · 519 阅读 · 0 评论 -
HDU-2871 Flood-it!(IDA*)
Flood-it is a fascinating puzzle game on Google+ platform. The game interface is like follows:At the beginning of the game, system will randomly generate an N×N square board and each grid of the board is painted by one of the six colors. The player starts原创 2015-08-09 20:51:43 · 484 阅读 · 0 评论 -
HDU-2546 饭卡(DP)
电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。原创 2015-04-25 17:50:57 · 411 阅读 · 0 评论 -
HDU-4394 Digital Square(DFS)
Given an integer N,you should come up with the minimum nonnegative integer M.M meets the follow condition: M2%10x=N (x=0,1,2,3....)原创 2015-02-22 14:37:53 · 641 阅读 · 2 评论 -
HDU-1285 确定比赛名次(拓扑排序)
刚开始以为是同一层次的按照编号从小到大排名,结果样例都过不了,手动跑了一边,发现所有在队列中(即入度为0)的按照编号从小到大排名感觉优先队列对int从小到大出队是保存在结构体内,并重载小于运算符,看来还是知道的太少了原创 2015-08-14 22:55:22 · 493 阅读 · 0 评论 -
HDU-2647 Reward(拓扑排序)
第一道拓扑排序题目,很简单,但是书上讲的是用栈实现的,不会应用在这道需要分层的题,看了别人用队列实现的感觉很简单易懂,便按照类似的思路写了一次,效率貌似有点低,毕竟用了vector和队列,还需要更多的练习原创 2015-08-14 20:04:08 · 787 阅读 · 1 评论 -
HDU-1560 DNA sequence(IDA*)
数据不是很大,AC后又进入前25了。开始TLE 5次,一直以为是自己的估价函数没写好,不停的改成现在这个样子,结果还是TLE,百度到大神的代码后发现他的优化比我还少,就想到了一定是初始化的问题,改过之后立刻AC,debug真是一个艰辛的过程。经过测试后,发现如果只有以DNA最大剩余长度为估价函数返回值,几乎要TLE,所以主要起作用的是剩余DNA中ACGT分别出现的次数的最大值的和原创 2015-08-11 14:02:11 · 628 阅读 · 0 评论 -
HDU-5402 Travelling Salesman Problem(模拟)
比赛时已经想出和题解大致一样的思路,只是绕格子的方式分的太细,结果没时间写完(主要是自己太渣)题解:原创 2015-08-18 20:52:40 · 451 阅读 · 0 评论 -
HUD-5399 Too Simple(数学)
思路与官方的一样:首先要求每个f_ifi 是个排列,否则如果某个f_ifi 将两个数映射向同一个数,那么最后这两个数得到的值一定相同。如果还剩一个位置为-1−1,那么这个排列是唯一确定的,假设X*f_i*Y=IX∗fi ∗Y=I,那么f_i=X^{-1}*Y^{-1}fi =X−1 ∗Y−1 .所以假设有c(c\geq 1)c(c≥1)个-1−1,那么答案为(n!)^{c-1}(n!)c−1 个可行的方案。注意特判所有函数都原创 2015-08-18 19:20:41 · 375 阅读 · 0 评论 -
HDU-5400 Arithmetic Sequence(数学 || DP)
法一:和队友讨论之后,觉得每一个序列,只要其符合(①公差为d1②公差为d2③前面公差为d1,后面公差为d2)三者任意一个就满足题意然后求出每一个最长的符合题目条件的序列,然后求其连续子序列(元素个数>=2)假设一个最长的符合题目条件的序列的元素个数为tmp,则其连续子序列中:元素个数为tmp个的有1个,元素个数为tmp-1个的有2个……以此类推,将所有连续子序列(元素个数>=2)加起来得:((tmp-1)*tmp)/2原创 2015-08-18 18:51:47 · 507 阅读 · 0 评论 -
HDU-5392 Infoplane in Tina Town(分解质因数法求最小公倍数)
题意:给出一个置换,求它的循环长度。数据范围 :3*10^6思路:求出每一个循环的长度,然后再求他们的最小公倍数(题解说最小公倍数要:分解质因数,然后用快速幂和乘法)我按照这样的方法做还是用时5s+(写的又太渣了),幸亏hdu将时间从3500ms放宽到7000ms。不知道那些1400ms的大神怎么做的。。。原创 2015-08-16 17:12:13 · 1560 阅读 · 0 评论 -
HDU-3342 Legal or Not(拓扑排序)
看题的时候第一反应是并查集,想写但是20天就忘光了并查集(还是需要好好练习),找模板的过程中反应过来无法表示,只能老实的写拓扑排序一次AC,用的书上讲的栈方法实现,又是31ms,大家的效率好高,然后看见讨论版有人说会卡重边,不知道为什么会卡住...原创 2015-08-14 21:50:01 · 388 阅读 · 0 评论 -
HDU-5122 K.Bro Sorting(贪心)
题目大意:给一个1~n的一种排列,每次随机选一个数,如果下一个数比他小,则交换,一直进行上述过程直到下一个数比他大。最少经过多少次这样的循环能将其变成升序?大致思路:想要这样的循环次数最少必定是 每次选最大的不符合位置的数,将其交换至正确的位置。从后面扫一遍数组,如果当前的位置的数不符合其位置,则循环次数+1,标记当前的数,假设其已移动到正确的位置原创 2015-10-03 16:15:43 · 1183 阅读 · 0 评论 -
HDU-5568 sequence2(DP+高精度)
看到上升子序列就往DP想,但是本题不是求最大上升子序列,而是求序列长度为k的不同方案数一维表示不了,再添一维,则dp[i][j]表示以第i个数为终止数的一个长度为j的序列的不同方案数状态转移方程:dp[i][j]=dp[i][j]+sum{dp[k][j-1]},(k=1,2,3...i-1);原创 2015-11-21 22:29:29 · 1102 阅读 · 0 评论 -
HDU-5569 matrix(DP)
对于任意i,j,且i+j为奇数时,dp[i][j]只能从dp[i-2][j],dp[i-1][j-1],dp[i][j-2]转移过来。其中:①dp[i-2][j]只能经过a[i-1][j]到达a[i][j],状态转移方程为:dp[i][j]=min(dp[i][j],dp[i-2][j],a[i-1][j]*a[i][j]);②dp[i][j-2]只能经过a[i][j-1]到达a[i][j],状态转移方程为:dp[i][j]=min(dp[i][j],dp[i][j-2],a[i][j-1]*a[i]原创 2015-11-21 21:49:07 · 629 阅读 · 0 评论 -
HDU-5585 Numbers(数学)
只要末尾为偶数就能被2整除只要末尾为0或5就能被5整除只要所有位的数字之和能被3整除,则该数就能被3整除原创 2015-11-28 21:40:43 · 499 阅读 · 0 评论 -
HDU-5586 Sum(DP)
和官方的DP方法不一样,感觉自己的DP方法好像更快点可以用dp[i][j](j=0,1,2)来表示当前状态dp[i][0]表示当前未进入置换区间,其只能由dp[i-1][0]转移而来dp[i][1]表示当前正处于置换区间,可由dp[i-1][0]和dp[i-1][1]转移而来dp[i][2]表示当前已离开置换区间,可由dp[i-1][1]和dp[i-1][2]转移而来则状态转移方程为:dp[i][0]=dp[i-1][0]+a[i];dp[i][1]=max(dp[i-1][0],dp[i原创 2015-11-28 21:08:01 · 944 阅读 · 2 评论 -
HDU-5475 An easy problem(模拟||(倒着计算+线段树))
题目大意:初始时 x=1,每次有2种操作: 操作 1:给x乘以一个数 操作 2:给x除以第n次操作出现的数(n只出现1次) 对每次操作输出 x%mod;①刚开始就想到直接计算,但认为会超时就直接放弃了,没想到直接计算(乘法直接乘即可;除法时先标记除法,然后重新计算即可)就能过,大概3400ms;②后来听过大神讲解,了解到:有些数一定会乘,计算为tmp[i],然后从后计算除法除以的数n原创 2015-09-26 22:48:29 · 494 阅读 · 0 评论 -
HDU-5587 Array(DFS)
通过观察数列可以发现递推公式:f(n)=2*f(n-1)+2^(n-1),n表示天数,f(n)表示第n天数列的和本来想求出通项公式,直接算第n天的数列和,然后再通过函数递推得到最终结果,但高中数学能力已远离我,这么简单的求通项公式都能算错好几次,导致最终没时间理清递推关系式。通项公式:f(n)=(n+1)*2^(n-1)原创 2015-11-28 23:59:45 · 474 阅读 · 0 评论 -
HDU-计算机学院大学生程序设计竞赛(2015’11)1005 ACM组队安排(排列组合)
n个人中有i个人一人一组,2*j个人两人一组,3*k个人三人一组(i+2*j+3*k=n),枚举i,j,k,用排列组合公式直接算结果即可幸亏还记得点高中数学:无序地将mn分成m等份=[C(mn,2)*C(mn-2,2)*...*C(2,2)]/A(m,m)计算公式:f[n]=∑{ com(n,i)*com(n-i,j*2)*equa(j*2,2)/fac[j]*equa(k*3,3)/fac[k] },(i+2*j+3*k=n)一人一组:com(n,i) 从n个人中选i个人两人一组:com(n原创 2015-11-29 18:26:54 · 1649 阅读 · 0 评论 -
HDU-计算机学院大学生程序设计竞赛(2015’11)1006 逆袭指数(枚举)
如果枚举的话,随着ansLen和sta的增加,从sta开始的ansLen+1个数的积很快便会大于n,可以大幅降低枚举的个数超时后发现,如果n是质数,则会超时,没想到如何有效判断,都已经想用Miller_Rabin先判断是否为素数,再计算看到别人思路,才想起O(sqrt(n))判断一个数是否为素数的方法,而且能直接融合进枚举过程中原创 2015-11-29 18:44:09 · 1099 阅读 · 0 评论 -
HDU-计算机学院大学生程序设计竞赛(2015’11)1003 玩骰子(枚举)
直接枚举所有情况,算出概率即可,只是判断略麻烦(可能是我想的太麻烦了)刚开始没有把所有骰子重新投算在一起,样例都过不了,看了别人的思路后,才明白应该分开算,取最大的胜率即可原创 2015-11-29 17:25:07 · 1345 阅读 · 0 评论 -
HDU-计算机学院大学生程序设计竞赛(2015’11)1008 游乐场(贪心)
如果能体验完所有推荐的项目,则可以用贪心体验其他景点,从花费最小的景点开始体验,直至不能体验当前景点为止原创 2015-11-29 17:09:23 · 1208 阅读 · 0 评论 -
HDU-计算机学院大学生程序设计竞赛(2015’11)1004 质方数(打表)
在水题中,也总想着优化时间,明明枚举更简单。由于1<=n<=10^8,所以只需用找到10^4以内的质数(共1229个),防止极限数据出错,需要找到大于10^4的第一个质数10007将所有的质数的平方按升序存入质方数表每次读入数n后,找到大于等于n的第一个质方数lst[index],然后在lst[index]与lst[index-1]中取离n更近的数原创 2015-11-29 16:48:29 · 1530 阅读 · 0 评论 -
HDU-计算机学院大学生程序设计竞赛(2015’11)1002 投币洗衣机(模拟)
水题,直接模拟即可原创 2015-11-29 16:26:57 · 1403 阅读 · 0 评论 -
HDU-计算机学院大学生程序设计竞赛(2015’11)1001 搬砖(贪心)
由于只能将一个数分成两个小一点的数,则这两个数越接近,花费越小原创 2015-11-29 16:24:57 · 1155 阅读 · 0 评论 -
HDU-2222 Keywords Search(AC自动机)
AC自动机代码简单又容易理解,终于明白为什么写Trie图的那么少了原创 2016-02-06 16:21:45 · 434 阅读 · 0 评论 -
HDU-5611 Baby Ming and phone number(模拟)
水题,按照题意判断即可忘了0开头的数字表示8进制,01234导致数字错误,浪费好长时间原创 2016-02-06 22:07:55 · 658 阅读 · 0 评论 -
HDU-2489 Minimal Ratio Tree(最小生成树[Prim])
好多次都能想到正解,但是不敢去写,还是需要勇于尝试,不断地尝试才能有更多的理解。数据范围很小,枚举每一种点的组合情况即可。原创 2015-08-24 15:28:48 · 694 阅读 · 0 评论 -
HDU-4081 Qin Shi Huang's National Road System(最小生成树[Prim])
题目給的稠密图,怕超时只得放弃Kruskal算法。第一反应是贪心,直接在人口最多的两座城市建立magic rode,仔细一想明显会错,A虽然取得最大,但是B也可能会大。然后就想到枚举任意两点的边为magic rode,求最小生成树,但这样又会超时。最后看到大家都是先求最小生成树,再枚举每条边去掉,然后在两部分分别找人口最大的城市添上magic rode即可原创 2015-08-20 20:45:52 · 580 阅读 · 0 评论 -
HDU-4786 Fibonacci Tree(最小生成树[Kruskal])
区域赛都是有思维难度的题吧,果然还是不够熟悉图,完全没有头绪。看了别人的题解也才知道:如果一棵生成树最少含有low条白边,最多含有hig条白边,那么含有x(low<=x&&x<=hig)条白边的生成树一定存在不知道为什么中间的每一个生成树都存在(望大神告知),但我自己画了几个图还没找出反例原创 2015-08-20 13:33:17 · 1074 阅读 · 2 评论 -
HDU-1162 Eddy's picture(最小生成树[Kruskal])
Kruskal算法就是并查集,学习的同时还能复习并查集原创 2015-08-20 10:52:25 · 561 阅读 · 0 评论 -
HDU-1301 Jungle Roads(最小生成树[Prim])
最后一道Prim的最小生成树,看题意应该用邻接表+优先队列更快,但只有26个点,没区别,作为最后一道Prim的最小生成树,两个方法都写一次。邻接矩阵:原创 2015-08-19 21:46:04 · 517 阅读 · 0 评论 -
HDU-1102 Constructing Roads(最小生成树[Prim])
邻接矩阵的prim和Dijkstra真的好像,都一样简洁易懂原创 2015-08-19 16:45:05 · 429 阅读 · 0 评论