上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页
摘要: 题意:给出一个有N个点的图,求每一个点到其他各点最长距离中的最小值。思路:读懂了题意,这题就是一个水到不能再水的题。就是一个flody,然后求出任意两点的最小距离。然后一个二重循环就行了。代码:View Code #include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>#include <queue>#include <math.h>#define N 105#define IN 阅读全文
posted @ 2012-10-16 20:53 Misty_1 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 我发现,做题最痛苦的就是读不懂题,比这更痛苦的是,上网搜题意竟然还是错的,纠结啊。。。。。。唉,看了N个解题报告,终于明白了题目的意思,就是有一只青蛙在1号石头上,他要跳到2号石头上,中间可以借助其他石头,一条线路中最长的那段距离作为这条路的代价,求所有路中代价最小的那个。如果读懂了题这题就很容易做了,刚开始的时候,看了discuss里的一个公式,map[i][j] = min(map[i][j] , max(map[i][k] , map[k][j] ));三重循环直接求出来了。代码:View Code #include <stdio.h>#include <stdlib. 阅读全文
posted @ 2012-10-14 21:01 Misty_1 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题意:农民john有N快田,M条路,w个虫洞,虫洞的功能回到多少分钟之前。思路:想法很简单,将w个虫洞的值存为负值,然后求图中是否有负环路,如果有就输出“YES”,否则输出“NO”。但是题目中有重复的路要滤除,还有这题有连接表存储比用邻接矩阵存储有简单。代码:View Code #include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>#include <queue>#include < 阅读全文
posted @ 2012-10-13 20:21 Misty_1 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 最短路问题,但是刚开始的时候没什么想法,因为看到题目中要求回到源点,但是最短路都是求一个点到另一个点的最短路,想到要处理环,就有点头疼,因为对最短路理解的不透彻,又上网认真的学了学求最短路的各种方法。Dijkskra:贪心的思想,从源点开始,先查看所有与源点相连的点,找出一条最短的路,然后从这个点重复上一个过程,直到找到目标点。要求图上的权值为非负数,时间复杂度为O(n2)。Floyd:这是我认为写法最简单,也是最容易理解的一种算法,可以想成一个图中只有三个点,判断一下,是源点直接到终点近,还是通过中间那个点间接的到终点近,如果通过间接的点近,就更新,由此推到有n个点的图中,所以三重循环即可。 阅读全文
posted @ 2012-10-12 21:25 Misty_1 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 重新开始做搜索题,发现理论和应用还是有很大的差别的。。。。题意:给出一个有1*1的小矩形组成的大矩形,矩形的边可能是墙,也可能是门,要出(0,0)点到达给定的一个点,问最少要过几个门。解题过程:首先,discuss里面说,给出的点不一定在给出的矩形里,如果不在直接输出0。然后就是建图了,其实这题思路很简单,但是建图麻烦,刚开始的时候,按题目中给出的方法建图,用一条线段的左下点记录,但是这样只是记录了线段的状态,并没有建图,然后参考了下面的Blog建图才AC的,但是还是ML了几次,我发现在题目中随机定义变量会很浪费内存,所以最好提前定义好所有变量,也可以重复利用变量。http://www.cnb 阅读全文
posted @ 2012-10-10 10:38 Misty_1 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 题意:一个人站在N点,一头牛站在K点,这个人要到达牛的位置,他每分钟只能到达N+1,N-1,和2*N的位置,求最少要多少分钟。思路:好久不做搜索题竟然将它忘的干干净净了,唉。这题让求最少时间,当然用BFS,开始做的时候竟然没想起来,然后做的时候,竟然将队列写成了栈,浪费了好长时间,看来还要坚强训练啊。代码:View Code #include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>#include &l 阅读全文
posted @ 2012-10-09 20:19 Misty_1 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 题意:一个二叉树,根节点为(1,1),左孩子为(a+b,b),右孩子为(a , a+b),给出一个区间(i,j),让你求一条最短的路中经过几个左孩子,几个右孩子。解题过程:刚开始的时候,画出树来开出有规律,但是没想出来要逆序推,一直从上到下找规律,结果怎么也找不到,后来参考了别人的思路,才知道要从下往上推。题目中已经给出规律了,任意一个左孩子区间,左边数总小于右边数,任意右孩子,左边数总大于右边数。即如果i<j,则该节点属于左孩子,i>j,则该节点属于右孩子,然后从(i,j)推到(1,1),记录左右节点数。由于数据很大,要用除法计算,还要注意一点是:如果i%j==0,那么i=1.代 阅读全文
posted @ 2012-10-09 16:58 Misty_1 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 呼,终于对了,真是太粗心了。。。。。。http://acm.hdu.edu.cn/showproblem.php?pid=4415题意:一个人开始时有m个能量,他要杀死n个人,杀死每个人需要消耗能量为ai,杀死这个人后可以使用这个人的武器杀死bi个人,为怎样才能消耗最少的能量杀最多的人。思路:贪心,比赛的时候根本没想用什么算法,只是按自己的想法写代码,怎么也不过,赛后问了一下队友,然后才觉得自己的想法还是有错误的。按队友的思路写了一个程序却怎么都是WA。最后发现原来是当Bi不为0的人都杀完后忘了加用武器杀死Bi为0的人的个数,呃,无奈啊。。将n个人按Bi是否为0分别存在两个数组中,如果Bi不为 阅读全文
posted @ 2012-09-25 20:13 Misty_1 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题意:在一个房间里有N种插座和使用M种插座的电器,,这M种插座有些在现有的插座中不包含,不过可以通过适配器来转化,有K种类型的适配器来转化,让你求最少会有多少电器没法使用插座。思路:最大二分匹配。即求出最多有多少电器有相应的插座,然后用M减去就是所求,不过建图有点难想,我也是看了别人的解题报告才明白的。将电器和相应的插座类型连接起来,将能相互转化的插座连接起来,然后将不能直接使用N种插座而通过适配器的转换就能用的电器和插座连起来,然后就是求M种电器和N种插座的最大匹配了。呃,其实看到很多博客都是用最大流做的,原本这题也是在最大流的练习中找到的,但是我发现最大匹配更好理解,而且二分匹配加上源点和 阅读全文
posted @ 2012-09-17 21:15 Misty_1 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 好久没写博了,最近都没怎么做poj,总是找些三体做做,没局限于哪些知识点,只是想锻炼一下自己独立思考的能力。好了,废话少说,还是来说说这道题吧。题意:给出M个数形成环形,一次转化就是将每一个数前后的d个数字的和对m取余,然后作为这个数,问进行k次后的数组是什么。思路:呃,其实看完这题后,首先想到的事模拟,但是这题的数据量很大,然后就没招了。看了看了discuss了的讨论,看到他们都在讨论矩阵连乘的问题,然后向了半天,貌似有点头绪了,但是不清晰,然后看了解题报告,脑中的想法一下就清晰了,不过当时不知道N*N的矩阵连乘会超时,后来看了别人的优化,才知道自己差的还很多。说下主要思想吧,对于样例1来说 阅读全文
posted @ 2012-09-15 19:14 Misty_1 阅读(802) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页