上一页 1 ··· 5 6 7 8 9 10 11 下一页
摘要: 原题传送:http://poj.org/problem?id=2287贪心算法: 1. 田忌要尽可能用最慢的马去赢齐王最快的马。 2. 能赢就赢。 一开始我不是这么想的,我是用田忌最快的马和齐王最快的马比较,如果田忌慢,那么换田忌最慢的马和谐掉齐王最快的马,那么田忌剩下的马赢的次数就能多点。但是这种想法是错的,这样过不了下面这组测试数据:35 5 35 4 2答案:400View Code 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #define MAXN 1005 阅读全文
posted @ 2012-09-20 23:32 芒果布丁 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 原题传送:http://acm.hdu.edu.cn/showproblem.php?pid=4288 线段树。 技巧有一下几个: 1. 先把数据全部输入完毕后再统一查询,进行排序预处理方便计算出元素位置(线段树的堆底是静态的); 2. 每个区间节点保存mod 5 = 0...4这5个值; 3. 合并区间时,左孩子起点就是当前区间起点,可以直接合并,但是相应的右孩子节点变为(k + 5 - num(lson) % 5 ) % 5 (k为合并前mod5的点,num(lson)为左孩子的点数)。线段树 1 #include <stdio.h> 2 #include <st... 阅读全文
posted @ 2012-09-20 12:22 芒果布丁 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 对菜鸟来说题目有三种:会算法且能AC的,会算法但不能AC的,不会做的 对大牛来说题目有两种:会做的,不会做的 对教主来说题目有两种:能AC的,数据有错的 菜鸟提交WA了,找了N久找不出错时,在论坛大骂数据有错,但是没人理 大牛提交WA了,找了N久找不出错时,写暴力程序或者求别人的AC程序对拍 教主提交WA了,Judge马上修正数据 菜鸟面对一道难题,直接暴搜 大牛面对一道难题,算了算时间复杂度不对,或者证明出是NP难,果断放弃 教主面对一道难题,说,虽然我不会做,但AC还是没有问题的 菜鸟AC了一道难题,巴不得召告天下 大牛AC了一道难题,会写一篇解题报告,第一句话... 阅读全文
posted @ 2012-09-20 00:05 芒果布丁 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 原题传送:http://acm.hdu.edu.cn/showproblem.php?pid=4289 网络流,最大流 + 拆点。 最大流:sap算法 常用的两种拆点方式: 1. 对于每个节点id,拆成 id<<1 和 id<<1|1 两个点 2.对于每个节点id,拆成 id 和 id+n 两个点View Code 1 #include <stdio.h> 2 #include <string.h> 3 #define L(u) ((u) << 1) 4 #define R(u) ((u) << 1 | 1) 5 #def 阅读全文
posted @ 2012-09-19 23:58 芒果布丁 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 原题传送:http://acm.hdu.edu.cn/showproblem.php?pid=4277 水搜索也不会,说明自己真心水。 直接dfs,对于每条rail,分别可以放到三条边a,b,c,复杂度3^15,最后判重和a+b>c条件,毫无剪枝可过。View Code 1 #include <stdio.h> 2 #include <string.h> 3 #include <set> 4 5 using namespace std; 6 7 int n; 8 int v[20], sum[20]; 9 set<int> s;10 11 阅读全文
posted @ 2012-09-18 23:44 芒果布丁 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://acm.nefu.edu.cn/JudgeOnline/problem/119.jsp 本来数论就弱爆,又忽略了精度调整wa了一下午。 直接用公式表示为: sum = ([2n / p] - 2[n / p]) +([2n / p2] - 2[n / p2]) +……+([2n / pt] - 2[n / pt]) 其中 t = [logp(2n)]。 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 5 int main() 6 { 7 int t, n 阅读全文
posted @ 2012-09-18 16:50 芒果布丁 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 原题传送:http://poj.org/problem?id=2689 求相连素数最小距离和最大距离。 由于n很大,但是U-L较小,所以筛素数时只筛到sqrt(n)就可以了,利用这个已经筛出的素数表把[U,L]之间的素数筛出来。View Code 1 #include <stdio.h> 2 #include <math.h> 3 #include <stdlib.h> 4 #include <string.h> 5 #define LL long long 6 #define N 50000 7 #define M 1000001 8 9 LL 阅读全文
posted @ 2012-09-18 13:26 芒果布丁 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 我把感想打出来又删掉,再打出来再删掉,因为感慨实在太多。才发现,其实只是一句话: 有什么比活着更重要? 阅读全文
posted @ 2012-09-18 13:14 芒果布丁 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 原题传送:http://acm.hdu.edu.cn/showproblem.php?pid=4268 贪心算法。 对a、b数组进行二维排序(先按长h从小到大排序,相同的h按宽w从小到大排序),对于b的h小于a的h,把b的w添加到集合中,并从集合里面选择一个可以覆盖的最大的w即可(因为此时由于第一维h已经满足覆盖条件,只需要考虑第二维的w)。 这道题在比赛的时候没做出来,后来看了解题报告,才发现STL神器之multiset,这就是比赛时苦苦寻找的数据结构啊!这东西自己从来没用过的,此刻必须记录下它的两个重要特点: 1.它有优先队列的性质,插入的元素是有序的,插入复杂度和priori... 阅读全文
posted @ 2012-09-17 18:40 芒果布丁 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 原题传送:http://poj.org/problem?id=2418 用的是STL神器,map + priority_queue。(C++提交和G++提交相差6s !)View Code 1 #include <map> 2 #include <queue> 3 #include <string> 4 #include <iostream> 5 #include <iterator> 6 #include <stdio.h> 7 using namespace std; 8 9 typedef pair<strin 阅读全文
posted @ 2012-09-15 10:18 芒果布丁 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 劳资六年前开始搞ACM啊!!!!!!!!!!从此踏上了尼玛不归路啊!!!!!!!!!!!!谁特么跟劳资讲算法是程序设计的核心啊!!!!!!尼玛除了面试题就没见过用算法的地方啊!!!!!!谁再跟劳资讲算法之美算法的力量,劳资一本算法导论拍死你啊!!!!!!!!那是搞ACM的入门书啊!!!!特么的入门书就一千多页啊!!!!!!!还没有习题答案啊,学完了你特么都不知道自己到底会不会啊有木有!!!!!!然后你就得看lrj的黑书啊!!!!!!还是特么的没有习题答案啊!!!!那书难的一B啊!!!!人家一个“显然”得出的结论够你想一礼拜啊有木有!!!!一个课后题够你想几个月啊有木有!!!!然后还有一堆堆的书 阅读全文
posted @ 2012-09-14 20:30 芒果布丁 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 原题传送:http://acm.hdu.edu.cn/showproblem.php?pid=1392 以下内容转自http://dev.gameres.com/Program/Abstract/Geometry.htm#凸包的求法 求凸包。凸包的概念: 点集Q的凸包(convex hull)是指一个最小凸多边形,满足Q中的点或者在多边形边上或者在其内。下图中由红色线段表示的多边形就是点集Q={p0,p1,...p12}的凸包。凸包的求法: 现在已经证明了凸包算法的时间复杂度下界是O(n*logn),但是当凸包的顶点数h也被考虑进去的话,Krikpatrick和Seidel的剪枝搜... 阅读全文
posted @ 2012-09-14 18:06 芒果布丁 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 原题传送:http://poj.org/problem?id=2159 排序。题目说了两个加密方法,判断是否可以完成从加密串到原串的转换。这道题的本质是字符出现的频率按升序(或降序)排列后是否一样,而不关心该频率是从哪一个字母转换来的。 做这道题的过程中出现了这样的错误需要惊醒自己: if(len = strlen(s1) != strlen(s2) { ...... } 我以为会先把strlen(s1)的值赋给len再和strlen(s2)比较,但不是这样的,是先比较了strlen(s1)和strlen(s2),然后把得到的布尔值赋给len。 这道题不需要判断字符长度... 阅读全文
posted @ 2012-09-14 15:47 芒果布丁 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 原题传送:http://poj.org/problem?id=2299 归并排序求逆序数,nlog(n),500多ms。答案最大可以达到n * (n + 1) / 2,要开long long。View Code 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 500005 4 #define LL __int64 5 LL a[N], b[N]; 6 int n; 7 8 LL cal(LL s, LL t) 9 {10 LL i, j, k, mid;11 LL res;12 ... 阅读全文
posted @ 2012-09-14 12:09 芒果布丁 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 今天在终端删除一个需要root权限的文件夹,我去,差点儿就把/home目录给灭了!!! 一般不建议在终端输入权限删除,我们可以先给想要删除的文件夹一个root权限,可以用下面这条命令: sudo chmod 777 /XXX (也就是设置为可读可写) 输入权限密码后到该目录下del就可以了。 这个命令的形式是: sudo chmod -(类型) xxx(位置) 三位数的每一位都表示一个用户类型的权限设置。取值是0~7,即二进制的[000]~[111]。 这个三位的二进制数的每一位分别表示读、写、执行权限。 如000表示三项权限均无,而100表示只读。这样,我们就有了下面... 阅读全文
posted @ 2012-09-14 00:09 芒果布丁 阅读(3431) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 下一页