POJ - 3470 Walls】的更多相关文章

[题目链接] http://poj.org/problem?id=3470 [题目大意] 给出几面墙,均垂直于x轴或者y轴,给出一些鸟的位置(二维坐标点), 鸟只会垂直x轴或者y轴飞行,并且会撞上最近的墙,问每面墙最后会有几只鸟撞上去. [题解] 我们将所有的二维坐标离散,对xy方向分别进行扫描线, 以y轴方向为例,我们先从y最小的线开始扫, 如果是墙,那么在线段树中更新其在x轴上的分布位置 如果是鸟的坐标,那么在线段树中查找其位置,更新其答案. 之后从y最大的开始反向扫描,更新,x方向也同理.…
小鸟往四个方向飞都枚举一下,数据范围没给,离散以后按在其中一个轴线排序,在线段树上更新墙的id,然后就是点查询在在哪个墙上了. 这题有个trick,因为数据范围没给我老以为是inf设置小了,WA了很多发.(距离可能比0x3f3f3f3f大 实现上,我是把鸟和墙的坐标放一起的,用下标来区别两者. /********************************************************* * ------------------ * * author AbyssalFish…
POJ 1161 Walls(最短路+枚举) 题目背景 题目大意:题意是说有 n个小镇,他们两两之间可能存在一些墙(不是每两个都有),把整个二维平面分成多个区域,当然这些区域都是一些封闭的多边形(除了最外面的一个),现在,如果某几个小镇上的人想要聚会,为选择哪个区域为聚会地点,可以使他们所有人总共需要穿过的墙数最小,题目上有说明,不在某个点上聚会(聚会点在某个多边形内部),行进过程中不穿过图中的点(也就是除出发点外的其他小镇). 输入第1行代表m(2<=M<=200)个区域 第2行代表n(3&…
题目链接:http://poj.org/problem?id=1161 题目大意: 1.给出m个区域,n个俱乐部点.接下来是n个俱乐部点以及各个区域由什么点围成.求一个区域到各个俱乐部点的距离之和最小. 解题思路: 1.这题建图比较麻烦,以区域为点建图,区域之间若有边,则两区域的距离为1,建完图后跑一遍floyd就可以求出两两区域的最小距离. 2.对于答案,枚举每一个区域到各个俱乐部点的相邻区域的距离之和,取最小值. #include<stdio.h> #include<string.h…
https://vjudge.net/problem/POJ-1161 题意:有m个区域,n个小镇,有c个人在这些小镇中,他们要去某一个区域中聚会,从一个区域到另一个区域需要穿墙,问这些人聚到一起最少需要穿过几道墙.题中给出的区域是用小镇描述的,某几个小镇围成一个区域,每一个区域按照顺时针方向给出的.思路:首先用两个vector,一个描述一个区域,属性是这个区域的边界有哪些点,另一个描述一个点,属性是这些点属于哪个区域.然后接下来,我们把每一个区域看成一个点,开始建图.这题的难点就在于怎么建图,…
题意: 给定n个城市, 然后城市之间会有长城相连, 长城之间会围成M个区域, 有L个vip(每个vip会处于一个城市里)要找一个区域聚会, 问一共最少跨越多少个长城. 分析: 其实这题难就难在建图, 因为图中的点不再是城市, 而是城市之间长城围成的区域, 只要把区域提取出来, 这题就是简单的Floyd了. 我们可以把每个区域的边先记录下来, 然后有共边的就是相邻的区域, vip所在的城市都是vip的出发区域,枚举聚会区域,然后都可能的vip区域都求一次取最少值再求和即可. #include<io…
题意 :  在某国,城市之间建起了长城,每一条长城连接两座城市.每条长城互不相交.因此,从一个区域到另一个区域,需要经过一些城镇或者穿过一些长城.任意两个城市A和B之间最多只有一条长城,一端在A城市,另一端在B城市.从A走到B,可以只在一个区域内行走,或者只在长城上行走. 有一个俱乐部,它的会员分布在不同的城市中,每个城市要么只有一个会员,要么没有会员.会员们决定要集中到一个区域内聚会.他们骑车前往目的地.首先,由于城市内交通太堵,他们不想进入任何一个城市内,其次,他们希望穿越尽可能少的长城.他…
参考了大牛的博客 http://blog.csdn.net/wangjian8006/article/details/7958838 题目大意: 给出n个点,在这些点中有些点是俱乐部点,并且有m个区域是由点围成的输入第一行代表n个点第二行代表m个区域第3行代表俱乐部有L个第四行有L个数,分别标记哪些个点事是俱乐部接下来2*m行,代表m个区域,每个区域由两行表示,第一行为区域由T个点围成的,第二行T个数代表是哪些点围成这个区域,这些点按逆时针围成这个区域,相邻两点代表一条边最后一点和第一点也是一条…
http://poj.org/problem?id=1266 Cover an Arc. Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 823   Accepted: 308 Description A huge dancing-hall was constructed for the Ural State University's 80-th anniversary celebration. The size of t…
http://poj.org/problem?id=1556 首先路径的每条线段一定是端点之间的连线.证明?这是个坑...反正我是随便画了一下图然后就写了.. 然后re是什么节奏?我记得我开够了啊...然后再开大点才a...好囧啊. #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <alg…