10 2013 档案

CodeChef A
摘要:问题是求出斐波那契数列的第n个,这里要用大数加法预处理,然后就可以了代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #define esp 1e-615 #define pi acos(-1.0)16 #define pb push_back17 #define lson l, m, rt VI;31 typedef pa... 阅读全文

posted @ 2013-10-20 23:37 rootial 阅读(194) 评论(0) 推荐(0)

CodeForces - 7D Palindrome Degree
摘要:最近接触了一点字符串算法,其实也就是一个简单的最大回文串算法,给定字符串s,求出最大字符串长度。 算法是这样的, 用'#'将s字符串中的每个字符分隔,比如s = “aba”,分割后变成#a#b#a#,然后利用下面的算法: pre: mx ←0 for i: = 1 to n-1 if(mx>i) p[i] = min(p[2*id-i], mx... 阅读全文

posted @ 2013-10-20 11:01 rootial 阅读(822) 评论(1) 推荐(0)

LCA问题的ST,tarjan离线算法解法
摘要:一 ST算法与LCA 介绍 第一次算法笔记这样的东西,以前学算法只是笔上画画写写,理解了下,刷几道题,其实都没深入理解,以后遇到新的算法要把自己的理解想法写下来,方便日后回顾嘛>=< RMQ问题就是询问一个给定数组相应区间i…j的最大值。 ST算法的思路是:f(i,j)表示i开始的2^j个数中最大值/最小值,通过运用dp的思想初始化f(i,j)求出每个i(1….n)出发长度为2... 阅读全文

posted @ 2013-10-12 23:41 rootial 阅读(355) 评论(0) 推荐(0)

HDU Traffic Real Time Query System
摘要:题目大意是:对于(n, m)的图,给定边a, b查询从a到b要经过的割点的最少数目。先tarjan算法求双连通然后缩点,即对于每个割点将周围的每个双连通看成一个点与之相连。然后求解LCA即可,距离dis[u]表示从根出发到u的遍历过程中经过的割顶的数目,利用tarjan离线算法, 最后答案是:dis[u] + dis[v] - 2*dis[findset(v)] + (findset(v) > bcc_cnt)。注意findset(v) > bcc_cnt表示当LCA(u,v) 为割顶时的判断,此时必须加1。代码: 1 #include 2 #include 3 #include 阅读全文

posted @ 2013-10-12 23:13 rootial 阅读(371) 评论(0) 推荐(0)

ZOJ - 3195 Design the city
摘要:题目要对每次询问将一个树形图的三个点连接,输出最短距离。利用tarjan离线算法,算出每次询问的任意两个点的最短公共祖先,并在dfs过程中求出离根的距离。把每次询问的三个点两两求出最短距离,这样最终结果就是3个值一半。其实开始我用的一种很挫的方法才AC的,具体思路就不说了,感觉很麻烦又不好写的样子。怎么没想到上面的简便方法呢。初始代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include ... 阅读全文

posted @ 2013-10-12 15:51 rootial 阅读(241) 评论(0) 推荐(0)

UVALive 5903 Piece it together
摘要:一开始用的STL一直超时不能过,后来发现AC的代码基本都用的普通邻接表,然后改了一下13s,T=T,效率太低了。然后把某大神,详情戳链接http://acm.hust.edu.cn/vjudge/problem/viewSource.action?id=1199083的300+ms的代码加上自己的优化成功到了85ms,限时30s的程序还是挺有成就感的。 题目分析: 一个黑格子要和相邻的两个白格... 阅读全文

posted @ 2013-10-08 17:00 rootial 阅读(338) 评论(0) 推荐(0)

导航