POJ
文章平均质量分 73
北狗最光阴1
这个作者很懒,什么都没留下…
展开
-
POJ 3767 I Wanna Go Home
这题是很明显的最短路,我用的是SPFA算法。题目中有一个要求就是只能走一次从1到2,所以我用了一个belong数组来记录,在求最短路的时候,先判断是从1到2,还是从2到1,如果是后者,那么就忽略。最后判断是否存在,只要看dist[2]是否有值就可以了。#include#include#include#include#include#includeusing namespace st原创 2015-01-27 20:23:51 · 438 阅读 · 0 评论 -
POJ 1410 Intersection
这题我就是用最原始的思考方法,其中有许多细节要注意。主体思想就是四条边分别和线段比较。线段在矩形内要考虑。我的代码有点乱有点长,其中有的部分可以写成函数。#include#include#include#includeusing namespace std;int x_s,y_s,x_e,y_e,x_l,y_t,x_r,y_b;bool f1(int x){ re原创 2015-03-04 22:21:53 · 540 阅读 · 0 评论 -
POJ 1269 Intersecting Lines
本题就是判断直线之间的关系,我的思想就是先判断是否共线,然后判断是否平行,剩下的肯定相交,直接求交点就可以了。在判断平行的时候只要看两者的斜率是否相等就可以了,因为在判断平行之前已经判断是否共线,所以只要斜率相等,肯定就是平行了。求交点的时候就是用的数学方法,注意斜率不存在的情况就可以了。#include#include#include#includeusing namespace s原创 2015-03-03 20:50:29 · 500 阅读 · 0 评论 -
POJ 2318 TOYS
这题计算几何的部分还是比较简单的,重点是那个二分有点麻烦(大牛忽略),每次写二分自己都得用笔模拟一番,然后才能确定。因为y1,y2是公共的,所以存储的时候线段的时候只要存储x的坐标就可以了。然后就是判断是在右边还是在左边。#include#include#include#includeusing namespace std;const int N=5005;struct Lin原创 2015-03-02 22:21:15 · 572 阅读 · 0 评论 -
POJ 1861 Network
这题就是用最小生成树中的kruskal算法的模板题。#include #include #include #include #include using namespace std;const int N=1002;const int M=15002;const int inf=1<<28;struct edge{ int u,v,cost;}es[M];int原创 2015-02-21 19:49:58 · 373 阅读 · 0 评论 -
POJ 2485 Highways
只要把prim算法稍微改一下就可以了。#include #include #include #include using namespace std;const int N=505;const int inf=1<<28;int cost[N][N],mincost[N];bool used[N];int n;int prim(){ int _max=0;原创 2015-02-15 16:30:03 · 479 阅读 · 0 评论 -
POJ 3080 Blue Jeans
这题绝对是被坑的滴血,我真想对网上某某人说,去你大爷的。这题的思路挺简单,本来我以为要用的什么高深的算法,可是听别人说,直接暴力就可以解决,于是就做了。本来很快写好代码,可是语句代码坑了我好长好长时间。#include#include#include#include#include#includeusing namespace std;char dna[11][65];ch原创 2015-02-01 20:03:59 · 534 阅读 · 0 评论 -
POJ 3463 Sightseeing
最短路和次短路的结合,之前没有碰到过次短路。为此自己特地把最短路知识又复习了一遍,然后看了其他人的想法,最后才写了出来,具体来说,其实不太难,重点是理解思想。存储的时候采用邻接表。解法:用到的数组:dist[i][0]:i到起点的最短路,dist[i][1]:i到起点的严格次短路visited[i][0],visited[i][1]:同一维的visited数组,标记距离原创 2015-02-01 15:33:47 · 413 阅读 · 0 评论 -
POJ 2231 Moo Volume
这题用的是贪心算法来算的,贪心策略如下:dist数组表示各个牛的位置距第一个牛的距离,当然之前要对牛的位置进行升序排序。设a为第一头牛距各头牛的距离的总和,然后从第二头牛开始遍历,假设遍历到第i头牛时,那么标准为:t=t-(n-i)*d+i*d,各变量的含义为:t一开始为a,然后每次就是该表达式运算之后的值;n为牛的总数;d为第i头牛和第i-1头牛之间的距离。这个公式画图其原创 2015-02-02 22:01:29 · 662 阅读 · 0 评论 -
POJ 1017 Packets
这题可能是用贪心思想来写的,具体是不是我也不知道,自己对贪心也不是太清楚。之前好像写过,当时似乎没有写出来,不过,这次一下就有了思路。本来是想先装小的包裹,可是试了一下不行,有问题;于是改为先装大的包裹,如果有多余,再装小的,每次都这样,直到所有的包裹被装完为止。试了试,感觉没有什么问题。代码写的可能有的乱,不过思路还是清楚的。#include#include#include#inc原创 2015-01-30 15:57:06 · 468 阅读 · 0 评论 -
POJ 1579 Function Run Fun
这题时简单的dp题,不过我也就能写写这样简单的题了,不过注意一点。没什么说的,直接按照题目顺序就可以了。#include#include#include#include#include#include#includeusing namespace std;int dp[21][21][21];int recursion(int a,int b,int c){ i原创 2015-03-10 21:47:02 · 611 阅读 · 0 评论