![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
POJ 解题代码
文章平均质量分 79
cicirise
这个作者很懒,什么都没留下…
展开
-
POJ2728 Desert King 最优比率生成树
/*这道题不使用堆排序,直接枚举所有边权求最小边权要更快,可以节省100ms,原因是每一次堆排中,堆的初始数据都发生了变化,需要反复的建堆,如果是对少量边排序,应该是kruskal+堆排序要快*/ #include #include #include using namespace std;const long M=10000000;double dist[1001][1001],cost[1原创 2009-02-18 23:52:00 · 1118 阅读 · 0 评论 -
POJ 3013 Big Christmas Tree 手写Heap和STl对操作
题目大意是:给定一批材料,组装成一棵圣诞树,使得总的花费最小。关于最小花费的具体规则是是:圣诞树是一颗无向树形图,其中,编号为1的节点为根节点,原始图中每条边具有边权(unit):材料的单位价值,每个点也有一个权(weight):点的重量。生成树中,各个点处的花费是指向该点的边权(unit)*该点的子树中所有点的重量(weight)和,总的花费则是生成树中所有点的花费之和。解题思路:直接根据题原创 2009-12-09 16:00:00 · 1522 阅读 · 0 评论 -
Pku 1470 Closest Common Ancestors
最近在学习LCA的Tarjan算法,用来做1330秒过了。但是做1470的时候遇到了不小的麻烦。本题大意:给出一棵树,给出所有的LCA询问,输出所有点成为LCA点的次数(为0不输出);分析:这道题和1330的不同之处在于1.LCA多次询问,需要另外建立查询表统计2.输入时候需要特殊处理 接着道题时贡献了无数的RE,原因不清楚,都是用邻接表建树写的,后来改成STl里的vect原创 2009-12-05 11:27:00 · 742 阅读 · 0 评论 -
POJ 1151 Atlantis 线段树+离散化
题意比较简单,给出平面上一系列矩形,求出总的覆盖面积。本题数据量不是很大,矩形数量最多100个,其实可以不用线段树的,不过的确是很经典的线段树类型的题。1.用line结构体数组记录各纵边,标记左边和右边。2.矩形的长度范围达到200000,有必要先进行离散化处理,用Index数组来保存横坐标。3.对Index和纵向的线段进行排序,排序的时候使用STL里的sort函数会比较高效,(我用s原创 2009-05-20 16:09:00 · 1243 阅读 · 0 评论 -
POJ 2942—— Knights of the Round Table双连通分量+交叉染色
很经典的题目,可是我做了四天才做出来,题意是:一群骑士,某些骑士之间互相憎恨,如果在一起容易发生争斗事件,因此他们只有满足一定条件才能参加圆桌会议:1.圆桌边上任意相邻的两个骑士不能互相憎恨;2。同一个圆桌边上的骑士数量必须是奇数;分析: 让不互相憎恨的骑士才能坐在一起,可以如下处理:将各骑士看成点,不互相憎恨的骑士之间存在边,建立无向图。先按照要求1,将所有能坐在一起的骑士分为一组,全部骑士原创 2009-04-18 10:31:00 · 1974 阅读 · 0 评论 -
POJ 3352 Road Construction解题报告
题目大意很简单:给定一个双向连通的公路网,当某些公路路段检修的时候可能会由于该段公路不通,可能会使某些旅游点之间无法通行,求至少新建多少条公路,使得任意对一段公路进行检修的时候,所有的旅游景点之间仍然畅通;分析:检修某一路段导致公路网不畅通的原因必然是该段公路在图中是一桥,因此,完全畅通的方法就是,家最若干条边,使图中不存在桥。先找出所有的桥,将双连通分量进行缩点,得到一个树形图,将所有的叶子原创 2009-04-18 09:58:00 · 1737 阅读 · 2 评论 -
POJ 3177 Redundant Paths
我也慢慢改成了纯c代码的习惯了,原因是前些时间提交做了对比,c和c++的输入输出的差异,导致时间竟能差异150ms以上,呵呵,以前都没注意到 题意大致上是: 一群牛将被在一个特定路径构成的农场上迁移,每两块农场之间都至少有一条通道,这些牛要求每两块路径至少要有两条通道,求最少需要修建多少条路才能满足要求 思路:每两块农场之间至少有两条通道,也就是说要求添加若干边,将整个图变成一双连原创 2009-03-11 15:48:00 · 1212 阅读 · 0 评论 -
POJ 1659 Frogs Neighborhood Haval
这道题可以完全按照Haval处理度序列的方法做,看评论上说暴搜可以过,可能数据量还是小了一点,但是我没敢写,太麻烦了。呵呵,Haval真是让人惊艳。需要注意的是最后的输出格式,我最初完全按照最后的格式要求,在每两个数据之间打一个空格,中间不换行,结果wa了n次,后来参照了Tiaotiao大牛的做法,在每一行的最后不打空格,换成回车,然后就0ms很轻松的过了。呵呵,最近做题,每做一道题,都能学到至少原创 2009-02-23 13:32:00 · 764 阅读 · 0 评论 -
POJ 1236 Network of Schools
题目大意:N(2 分析要点:1.如果网络中存在强连通分量G,从G强连通分量中任意一个点出发,都能遍历G这个连通分量,而任意通过G以外的点进入G,都可以通过G中的任意一个出度大于1的点离开G。这样,可以将网络中的强连通分量看成一个点,也就是传说中的“缩点”(详见《 缩点》),这样图就得到了简化。寻找强连通分量的方法用kosaraju算法。2.新生成的图是一个有向无环图,如果将图中的无原创 2009-02-22 17:34:00 · 1486 阅读 · 0 评论 -
POJ3522 Slim Span
#include #include using namespace std;const int M=10000000;struct edge{ int u,v,len;};int pre[101];edge T[10000];int m,n,slimness;int cmp(const void *a,const void *b);int father(int s);int slim(int s原创 2009-02-19 00:08:00 · 753 阅读 · 0 评论 -
POJ 3463 Sightseeing
POJ 3463 Sightseeing题目大意:旅行团每天固定的从S地出发到达T地,为了省油要求尽量走最短路径或比最短路径长1单位距离的路径,求满足条件的路径条数分析:根据描述可知,本题的要求就是要求出最短路和比最短路长1的次短路,因此可用Dijkstra来解决。具体做法如下:用两组数分别记录最短路和次短路的长度(dist),条数(cnt),访问标记(used),建一个优先队列,元素单位原创 2009-12-29 17:12:00 · 1458 阅读 · 1 评论