上一页 1 2 3 4 5 6 7 8 ··· 15 下一页
摘要: 在CF上做了两场比赛,又在ural上尝试做了几道题,最后还是决定以后的训练还是主要集中在CF上吧,是时候把学的知识融合一下了,而且在POJ上总是会习惯的去看discuss里的讨论,不会自己认真去想,应该换个地方练练了。不过貌似有点“出师不利”啊,昨天做了一道题,WA了整整一版也没过,最后终于想不出是哪里错了,参考了一下别人的代码,结果他们都是用STL做的,思路都一样,SPFA求最短路。于是改用STL做了一下,开始初始化小了,WA了一次就过了,然后改用二维数组又写了一遍,还是过不了第66个样例,不知道怎么办了,应该是第66的样例中有时间延迟数据很多的,我开的数组不要够大,但是二维数组不能再开大, 阅读全文
posted @ 2012-10-29 20:58 Misty_1 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 最近做了两场CF比赛,战况惨烈,Rating已经跌到底了,但是仍觉得收获颇丰。第一场比赛没什么经验,就按平时的练习来做的,500的题1A后,信心倍增的去做1000的题,结果就卡死在这道题上了,一道数论题,所用的知识点也不难,但是当时就是没想到,不能说没想到吧,其实我是有想到要有这个知识点做的,但是没有具体思路,或者说没有证明出来,没有信心保证对,所以就没尝试着写,就这样两个小时很快就过去了,第一次觉得时间过得这么快。赛后问了一下队友,确定是用这个知识点,然后自己写了代码,也没感觉有什么难的,就是第一次枚举的素数过少了,WA了一次。B、Easy Number Challenged[n]表示n的所 阅读全文
posted @ 2012-10-26 23:40 Misty_1 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 题意:windy要组建一支军队,召集了N个女孩和M个男孩,每个人要付10000RMB,但是如果一个女孩和一个男孩有关系d的,且已经付给了其中一个人的钱,那么就可以付给另一个人10000-d元,求windy最少要付多少钱。解题过程:写了一个prim的最小生成树才发现原来整个图不是连通的,所以想到用Kruskal,刚开始的时候val中存的是10000-d,然后求最小生成树,但是最后求有几棵树的时候不是很好计算,改了一下f[x]、f[y]的赋值规则还是不行,然后看到有人说求最大生成树,然后就改了一下条件就AC了。代码:View Code #include <stdio.h>#includ 阅读全文
posted @ 2012-10-25 16:22 Misty_1 阅读(1136) 评论(0) 推荐(0) 编辑
摘要: 题意:给出N个正常的机器人,还有一个感染病毒的机器人,从这台机器人开始传播病毒,当传染到一个机器人,这个机器人也开始加入传播的行列,向其他正常的机器人传播,问最少的时间。解题过程:这题说难其实不难,也很容易就能想到用最小生成树,就是对BFS搜索算法的不熟,导致在建立连接的时候有些麻烦。这题先用BFS计算出任意两点之间的距离,然后用prim算最小生成树就行了。代码:View Code #include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include 阅读全文
posted @ 2012-10-25 16:12 Misty_1 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 困啊!!不知道学校怎么想的,一声令下就要每天开始晨练,由于消息来得过于突然,导致的后果就是,食堂吃饭的人剧增,去的晚了点差点没吃上饭;起得太早没睡好,上课浑浑噩噩的,唉,今天还是早点睡吧。。。。。本来打算昨天做完这题就开始下一个知识点的,但是前两天做一场CF,里面有两道数论题,当时没做出来,昨天就做了做,所以推到了今天。题意:给出一个R*C的矩阵,每个矩阵的点都有一个海拔高,开始有一个初始速度V,然后每个点的速度是V*2^(h[1] - h[i] ),所花费的时间是速度的倒数,求从左上角的点到右下角的点的最少时间。思路:从公式可以得出,要从a->b->c,则c出发的速度就是V*2^ 阅读全文
posted @ 2012-10-23 22:35 Misty_1 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 又是一道改变松弛条件的题目,因为查询不是一组,所以用floyd比较快。解题过程:题目很容易理解,就是从一个点A到另一个点B的所有路中最大高度中的最小值。因为有多组查询,用floyd求任意两点间的最小值,改变一下map[i][j]里的存储,存储点i到点j的所有路中的最大高度的最小值就行了。代码:View Code #include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>#include <math. 阅读全文
posted @ 2012-10-21 22:41 Misty_1 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 最近几天一直在做搜到的一些中级最短路题目,做得多了也有了一点感觉,觉得中等最短路一般不是建图麻烦些,就是松弛的条件要改变一下得到所求。其实了解透了几种最短路求解方法就很简单了。解题过程:一颗有N个节点的树,点1是根节点,每个节点都有一个权值,每两个节点的边都有一个代价,定义一棵树的花费为每条边的代价为该边所有子孙节点权值之和乘以该边的权值。例如点1到点2的边的代价为w1,点2到点3的边的代价为w2,得出下面等式:(d1+d2+d3)*w1 = d1*w1 + d2*w1 + d3*w1 (d1+d2+d3+d4)*w2 = d1*w2 + d2*w2 + d3*w2 + d4*w2加起来的:s 阅读全文
posted @ 2012-10-21 22:33 Misty_1 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 和2253题类似,但所求正好相反。题意:有M条路连接N座城市,每条路都有最大载重量,要从城市1到到城市n求最大的载重量。思路:就是要求所有路中的最小值中的最大值,呃,将2253题的松弛条件改一下就行了。不多说了。代码:View Code #include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>#include <math.h>#include <queue>#define N 1 阅读全文
posted @ 2012-10-20 23:14 Misty_1 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题意:有个N个点的有向图,求从点1到其他各点,然后从其他各点回到点1的最小距离。思路:题意很容易理解,但是这题给的时间有点紧,不能用Dijksra 和Bellman_ford来做,只能有Spfa,先求出点1到到其他各点的最短距离,然后将边逆转,再求一下点1到各点的距离,求和就行了。明明思路是对的,但是愣是WA了一上午,不知道哪里错的,将discuss里提到的各种注意都改了,还是不对,差点疯了,结果不知道改了点什么就AC了,郁闷啊!!!代码:View Code #include <stdio.h>#include <stdlib.h>#include <string 阅读全文
posted @ 2012-10-20 22:37 Misty_1 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 其实这题是昨天做的,不过没来的及写Blog,还有通过这题想通了一些问题,所以想专门的抽个时间好好写写,嗯,今后要好好写Blog,利用这段时间好好整理一下自己的思路,这样也好。这题的题意就不说了,汉语,没有什么理解上的问题,这题最大的障碍就是在怎样处理等级问题上。开始的时候,我尝试着用Bellman_ford,在松弛的时候加上等级的处理,但是我理解错了一句话,“地位差距超过一定限制的两个人之间不会进行任何形式的直接接触,包括交易。“这句话是说从源点开始扩展的所有点都必须在源点的等级限制范围内。而Bellman_ford的松弛处理则并不能保证这一点。所以很不幸的WA了,然后看discuss里的人用 阅读全文
posted @ 2012-10-16 21:32 Misty_1 阅读(143) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 15 下一页