上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 25 下一页
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4556 题目是要求Farey数列:分子和分母小于等于n的所有最简分数的个数,n每增加1,由于分数最简,那么分子只能与分母互素,个数即为phi(n)。 1 //STATUS:C++_AC_109MS_15896KB 2 #include <functional> 3 #include <algorithm> 4 #include <iostream> 5 //#include <ext/rope> 6 #include <fstream> 7 阅读全文
posted @ 2013-05-21 13:13 zhsl 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4554 本来是拿这题的FB的,结果脑残把变量命敲错了,wa一次。。。。 1 //STATUS:C++_AC_0MS_228KB 2 #include <functional> 3 #include <algorithm> 4 #include <iostream> 5 //#include <ext/rope> 6 #include <fstream> 7 #include <sstream> 8 #include <io 阅读全文
posted @ 2013-05-21 13:06 zhsl 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4553 POJ3667的加强版。 建立两颗线段树,一个是DS区间,另一个是NS区间。那么根据题意,如果是DS的请求,那么首先查找DS的区间,如果有满足的区间就更新DS区间,NS的区间不需要更新。如果是NS的请求,首先看DS区间是否有满足的区间,否则查找NS区间,如果有就同时更新DS区间和NS区间。那么可以归纳为,只要是NS的请求,就同时更新两颗线段树,否则只更新DS的线段树。提交后,发现时间效率还是不错的256ms。 PS:写pushdown() 和 pushup()写得眼睛都写花了= =。... 阅读全文
posted @ 2013-05-21 13:02 zhsl 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4552 题意:求字符串中所有前缀的出现的次数。 比赛的时候使用后缀数组写的,后来比完后发现KMP+DP完全可以搞,当时沙茶了- -。然后更神奇的是,这题数据太弱了,暴力完全够了,对于随机数据,基本上就是O(n)的算法,当然如果完全每个字符都一样,那么就是O( n^2 )了。然后...我就缩代码到151B,刷到status第一了~后缀数组: 1 //STATUS:C++_AC_78MS_3204KB 2 #include <functional> 3 #include <algori 阅读全文
posted @ 2013-05-21 12:50 zhsl 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4551 水题一道。 1 //STATUS:C++_AC_15MS_232KB 2 #include <functional> 3 #include <algorithm> 4 #include <iostream> 5 //#include <ext/rope> 6 #include <fstream> 7 #include <sstream> 8 #include <iomanip> 9 #include < 阅读全文
posted @ 2013-05-21 12:39 zhsl 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3667 题意:有一个旅馆,有N个房间排成一排,现在有两种操作,第一是有X个顾客要入住连续的X个房间,要求输出最小的左端点的位置,不能满足就输出0,第二是将以l开始,长度为X的连续房间清空。 线段树区间合并的经典题目。每个域维护三个值,左端开始的最长连续长度,整个区间的最长连续长度,右端开始的最长连续长度。 1 //STATUS:C++_AC_641MS_2240KB 2 #include <functional> 3 #include <algorithm> 4 #include <iostream& 阅读全文
posted @ 2013-05-21 12:36 zhsl 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2287 题目很容易误以为是最大匹配,不过O( n^3 )的复杂度承受不了,必须用贪心或者DP策略了。 容易想到先排序,然后贪心,贪心策略如下: 1.如果田忌最慢的马比齐王最慢的马快,那么赢一局。 2.如果田忌最慢的马比齐王最慢的马慢,那么拿田忌最慢的马浪费掉齐王最快的马,输一局。 3.如果田忌最慢的马和齐王最慢的马一样快: (1)如果田忌最快的马比齐王最快的马快,那么赢一局。 (2)如果田忌最快的马比齐王最慢的马慢,那么拿田忌最慢的马浪费掉齐王最快的马,输一局。 (3)如果田... 阅读全文
posted @ 2013-05-21 12:11 zhsl 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1835 模拟,很无聊的题目-_-||,把转换方向映射好就可以了,我是对宇航员保存三个方向的向量,那么每次变化方向的时候就方便了。 1 //STATUS:C++_AC_188MS_172KB 2 #include <functional> 3 #include <algorithm> 4 #include <iostream> 5 //#include <ext/rope> 6 #include <fstream> 7 #include <sstream> 8 阅读全文
posted @ 2013-05-21 11:58 zhsl 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3249 DAG图上的最短路,记忆化搜索。 1 //STATUS:C++_AC_2000MS_14272KB 2 #include <functional> 3 #include <algorithm> 4 #include <iostream> 5 //#include <ext/rope> 6 #include <fstream> 7 #include <sstream> 8 #include <iomanip> 9 #include <n 阅读全文
posted @ 2013-05-21 11:55 zhsl 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3352 本题要求的就是最少添加多少条边可变无桥的连通图,和POJ3177一样,(度为1的边双连通分量的个数+1)/2。 1 //STATUS:C++_AC_16MS_276KB 2 #include <functional> 3 #include <algorithm> 4 #include <iostream> 5 //#include <ext/rope> 6 #include <fstream> 7 #include <sstream> 8 #inclu 阅读全文
posted @ 2013-05-21 11:51 zhsl 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3177 本题要求的就是最少添加多少条边可变无桥的连通图,和POJ1236差不多,(度为1的边双连通分量的个数+1)/2。 1 //STATUS:C++_AC_47MS_12568KB 2 #include <functional> 3 #include <algorithm> 4 #include <iostream> 5 //#include <ext/rope> 6 #include <fstream> 7 #include <sstream> 8 #in 阅读全文
posted @ 2013-05-21 11:46 zhsl 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2942 题意:有n个骑士要举行圆桌会议。有如下几个限制条件: 1.每次会议至少要3名骑士,且骑士个数为奇数。 2.相互憎恨的骑士不能坐在一起。 统计有多少个骑士不能参加任何一个会议。 以骑士为结点建立无向图,如果骑士互相憎恨,那么建立无向边,题目转换为不在任何一个简单奇圈上的结点的个数。简单圈上的点必然属于个一个双连通分量,因此找出所有的双连通分量,判断哪些双连通分量不是二分图。因为二分图中一定没有奇圈,而非二分图中一定有一个奇圈,那么其他点都可以靠这个奇圈形成一个奇圈。那么算法就很清楚了,对于每个双... 阅读全文
posted @ 2013-05-21 11:40 zhsl 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2914 求无源无汇又向图中的最小割。 如果枚举源点和汇点然后用最大流求最小割,复杂度O( n^4 )的样子,肯定会超时。 解决此类问题有一个Stoer Wagner算法,其思想类似于最小生成树的prim算法。 推荐两篇文章:<文章一> <文章二> 下面是模板:/* Stoer_Wagner O(n^3) (POJ 2914) 求无向图的最小割,把图分为两个子图的最小花费 邻接矩阵建图,w[][]点从0开始 算法流程: 1.min=MAXINT,固定一个顶点P 2.从点P用“类似... 阅读全文
posted @ 2013-05-21 11:23 zhsl 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2762 判断在一个有向图中,是否任意的两点存在一条通路。 首先用tarjan算法进行边-双连通分量缩点,接下来就是判断树的分支只有一个,那么就用拓扑排序每次判断入度为0的点是否只有一个。 1 //STATUS:C++_AC_360MS_340KB 2 #include <functional> 3 #include <algorithm> 4 #include <iostream> 5 //#include <ext/rope> 6 #include <fstream> 阅读全文
posted @ 2013-05-21 11:12 zhsl 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2186 求出度为0的强连通分量的点的个数。 1 //STATUS:C++_AC_94MS_920KB 2 #include <functional> 3 #include <algorithm> 4 #include <iostream> 5 //#include <ext/rope> 6 #include <fstream> 7 #include <sstream> 8 #include <iomanip> 9 #include <nume 阅读全文
posted @ 2013-05-21 11:00 zhsl 阅读(200) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 25 下一页