摘要: hdu 4036 Rolling Hongshu题意:一个sweet potato想要去约会,从起点滚到终点,途经一个mountain,有m个峰顶,第一个峰顶,第m个峰顶分别为起点和终点,忽略摩擦力,在每一个斜坡上分布着bitter potatoes,每经过一个bitter potato,bitter potato就会以一定的初速度追赶sweet potato,问,sweet potato应该以最小多大的初速度滚动,保证不被bitter potato追到,完成约会;分析:根据能量守恒定律,首先,求出sweet potato到达每一个峰顶需要的最小速度,其次,求出sweet potato到达每一 阅读全文
posted @ 2011-09-12 14:50 枕边梦 阅读(366) 评论(0) 推荐(0) 编辑
摘要: hdu 4039 The Social Network题意:给出N对好友关系,之后Q次提问,问可以对该用户推荐的相识度最高的好友;推荐好友满足的条件:该用户的所有好友的好友中,出现次数最多的,而且推荐好友本身不是该用户的好友;若有多个推荐好友时,按字典序输出;分析:嘿嘿,我的做法有点暴力,600+ms;首先对所有用户的名字(字符串)标号,好处理一些,这里用了字典树实现了;接下来,用邻接矩阵表示任意俩个用户直接的关系,再者,对与每一次询问,遍历该用户所有好友的好友,找出出现次数最多的;最后,若有多个推荐好友时,要字典树输出,额,我用优先队列做了,重载操作符,之后直接丢进去,再输出就可以了View 阅读全文
posted @ 2011-09-12 12:04 枕边梦 阅读(558) 评论(0) 推荐(0) 编辑
摘要: 题目大概意思:给定一个图,任意俩点间的最短路已知,判断该图是否存在,若不存在,则输出impossible,存在,输出可能的最少边数分析:首先,判断该图是否存在,这个很容易,对已给的图求出任意点的最短路,若存在俩点最短路与原图不同(即所给图存在更短路),则不存在;若该图存在,求出最少的边数,其实就是一个删边的过程,起始的边数是n*(n-1),若俩点之间存在其他路径长等于直接相连时的路径长,则删去,注意,要判断是否重复删边(orz,这里WA了几次);求任意俩点之间的最短路,用floyd算法,复杂度O(n^3),因为n最大为100,无压力~~View Code #include<iostrea 阅读全文
posted @ 2011-09-12 11:46 枕边梦 阅读(222) 评论(0) 推荐(0) 编辑