POJ1151基本的扫描线求面积】的更多相关文章

题意:      给定n个矩形的对角坐标,分别是左下和右上,浮点型,求矩形覆盖的面积. 思路:       基本的线段树扫描线求面积,没有坑点,不解释了,提示一点,有的题尤其是线段树扫描线的题需要离散化的时候建议二分去找,别map,记得之前map超时过很多次,但不是针对这个题目,这个题数据量不大,怎么都行,发现codeblock这个编译器定义宏然后在定义结构体的时候变量名字相同导致编译不过去,我之前用的DEV也是这么写的,记得能编译过去,不知道为啥. #include<stdio.h> #in…
题意: 就是扫描线求面积交 解析: 参考求面积并.... 就是把down的判断条件改了一下..由w > 0 改为 w > 1 同时要讨论一下 == 1 时  的情况, 所以就要用到一个临时的sum.. 具体看代码把 #include <iostream> #include <cstdio> #include <sstream> #include <cstring> #include <map> #include <set>…
There are several ancient Greek texts that contain descriptions of the fabled island Atlantis. Some of these texts even include maps of parts of the island. But unfortunately, these maps describe different regions of Atlantis. Your friend Bill has to…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255 题目大意:给你若干个矩形,让你求这些矩形重叠两次及以上的部分的面积. 解题思路:模板题,跟HDU 1542  Atlantis一样是求面积并,唯一的差别是这题要求的是重叠两次以上的面积,只要将cnt>0的条件改为cnt>1即可. 代码: #include<cstdio> #include<cmath> #include<cstring> #include&…
题意:求矩形并的面积.. 解析: 扫描线第一道题....自下而上扫描的... 如果不懂什么是扫描线戳我 #include <iostream> #include <cstdio> #include <sstream> #include <cstring> #include <map> #include <set> #include <vector> #include <stack> #include <q…
传送门 •题意 给你 n 矩形,每个矩形给出你 $(x_1,y_1),(x_2,y_2)$ 分别表示这个矩形的左下角和右上角坐标: 让你求这 n 个矩形并的面积: 其中 $x \leq 10^{5} \ ,\ y \leq 10^{5}$; •题解 这类题的解决方法需要用到一个比较重要的算法--扫描线算法: 其实并不需要将扫描线算法学的多么透彻,此类题仅仅用到了扫描线算法的思想: 下面开始说说如何用扫描线处理这类问题: 假设你有两个矩形,如图所示: 矩形①的左下角和右上角坐标分别为:$(1.2\…
Atlantis poj1151 线段树扫描线 题意 题目给了n个矩形,每个矩形给了左下角和右上角的坐标,矩形可能会重叠,求的是矩形最后的面积. 题解思路 这个是我线段树扫描线的第一题,听了学长的讲解,仔细研读了学长的代码,也算初步入门. 这里我们竖着的扫描线,从左到右来进行扫描的. 线段树这里端点代表的是一个区间 这里的y范围比较大,所以咱们需要离散化. 代码实现 #include<cstdio> #include<cstring> #include<algorithm&g…
Picture Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4475    Accepted Submission(s): 2207 Problem Description A number of rectangular posters, photographs and other pictures of the same shap…
传送门 •参考资料 [1]:算法总结:[线段树+扫描线]&矩形覆盖求面积/周长问题(HDU 1542/HDU 1828) •题意 给你 n 个矩形,求矩形并的周长: •题解1(两次扫描线) 周长可以分成两部分计算,横线和竖线: 如何求解横线的所有并的长度呢? 和求矩阵面积并的做法一样,先将 x 离散化: 每次更新的时候,记录一下上次更新后的横线总长度: ans += [现在这次总区间被覆盖的长度和上一次总区间被覆盖的长度之差的绝对值]; 求解竖线的所有并的长度何求解横线的长度相同: 需要注意的是…
链接:http://poj.org/problem?id=3348 Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6677   Accepted: 3020 Description Your friend to the south is interested in building fences and turning plowshares into swords. In order to help with…
题意:rt 求面积......不计算重复面积(废话..)hdu1255 的弱化版,应该先做这道题在做那道题的. ************************************************************ #include<stdio.h> #include<algorithm> #include<math.h> ; ;} }a[MAXN<<]; ;     ))         a[r].len = ;     ;     ; …
class Rectangle { private double len, wid; public Rectangle()//求矩形周长 { len = 0; wid = 0; } public Rectangle(int l, int w)//求矩形面积 { len = l; wid = w; } public double perimeter()//求周长 { return ((len + wid) * 2); } public double area()//求面积 { return (le…
求n个矩阵面积相交的部分,和求面积并一样,不过这里需要开两个数组保存覆盖一次和覆盖两次以上的次数的部分,还是模板,主要注意点就是pushup部分,如果我已经被两次覆盖,那我的两个数组在这个root点的宽度就可以直接算了,如果我被一次覆盖,那么我一个覆盖的部分可以直接计算,两次覆盖的部分取决于sum1数组,如果我不是一个线段,那就是0,如果我是一个线段,那么我就是由左边区间覆盖一次和右边区间覆盖一次相加得来.如果我这个区间现在没有被覆盖到,那么我的两个数组都是由各自部分的区间和得来的 #inclu…
https://cn.vjudge.net/problem/HDU-1255 题意 给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积. 分析 求面积并的题:https://www.cnblogs.com/fht-litost/p/9580330.html 这题求面积交,也就是cover>=2才计算,采用第一种方法就只用小小改动. 以下用了第二种方法.这里得维护覆盖一次以上的长度,和覆盖两次以上的长度.重点在cal()函数. #include <iostream> #inclu…
题意:..求周长并... 解析:参考求面积并 图借鉴自:https://www.cnblogs.com/shuaiwhu/archive/2012/04/22/2464876.html 自下而上扫描 首先 加GH 接着 加 Node[1].numseg * 2 *(Edge[i+1].y - Edge[i].y)即两条竖边   然后 加 BD 但这时要减去GH  因为 LN = GH 重复加了一次 依次推理 与面积并不同的是 最上面的边不要忘了加上.. #include <iostream>…
题目链接:https://vjudge.net/problem/POJ-1408 题目是叫我们求出所有四边形里最大的那个的面积. 思路:因为这里只给了我们正方形四条边上的点,所以我们要先计算横竖线段两两相交的所有交点,如果不会求两条线段之间的交点的话可以看一下这个博客:https://www.cnblogs.com/elpsycongroo/p/8726513.html 然后再求每一个四边形的面积,要求某个四边形的面积的话,可以先确定四个点中的一个点,这样其他三个点就随之确定了,在这里应该是先确…
题目链接:传送门 知识点: (1)三个点,三角形求面积公式 (2)精度问题: double 15-16位(参考文章) float 6-7位 long long 约20位 int 约10位 unsigned int 是int的两倍(参考文章) (3)nth_element()函数 思路:一开始想直接暴力求面积,然后面积排序,后来有发现面积不能是0,可以重复, 然后排序求出第k大的值,结果没注意double的位数不能精确到达到18位,然后又想四舍五入, 对尾数进行了处理,还是没过.看来题解才发现最后…
Herding Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1553 Accepted Submission(s): 440 Problem Description Little John is herding his father's cattles. As a lazy boy, he cannot tolerate chasing t…
求高的方法 h=y*Math.sin(a) 按题目要求,需要我们做的分别是:1.改角度2.显示角度3.求面积并显示 代码用到:1.静态成员变量以修改角度2.数学函数 以下具体代码具体分析 import java.util.Scanner; //java类库中的Scanner类,用于接受输入值 class Triangle{ private double x,y; static double a; //静态成员变量,可以用类名直接调用. Triangle(double xx,double yy,d…
LINK 题意:给出点集,求凸包的面积 思路:主要是求面积的考察,固定一个点顺序枚举两个点叉积求三角形面积和除2即可 /** @Date : 2017-07-19 16:07:11 * @FileName: POJ 3348 凸包面积 叉积.cpp * @Platform: Windows * @Author : Lweleth (SoungEarlf@gmail.com) * @Link : https://github.com/ * @Version : $Id$ */ #include <…
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1502 题解: simpson积分求面积,s = (f(a)+f(b)+4*f(c))/6*Δx ,c=(a+b)/2. 题中的树投影下来是一些圆和相邻圆的公切线组成的一个封闭图形,并且上下对称,所以可以只求上半部分. simpson求面积时,若f(x)代价很大,要尽量减少其的重复调用.其次尽量优化f(x)函数的计算. 写完后还要自己出极限随机数据,将eps调到能接受的最大值. #includ…
题目: http://poj.org/problem?id=1408 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22013#problem/C Fishnet Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1604   Accepted: 1026 Description A fisherman named Etadokah awoke in a very…
非常裸的线段树求面积并. 坐标须要离散化一下. #include<stdio.h> #include<iostream> #include<stdlib.h> #include<string.h> #include<algorithm> #include<vector> #include<math.h> #include<map> #pragma comment(linker, "/STACK:102…
求空间中叠加3次及3次以上的体积. 由于|z|<=500.所以直接把z轴剥离出来1000层. 然后对于每一层进行线段树求面积并. #include<stdio.h> #include<iostream> #include<stdlib.h> #include<string.h> #include<algorithm> #include<vector> #include<math.h> #include<map&…
//已知三角形三边长求面积 #include <stdio.h> #include <math.h> int main() { float a,b,c,p,s; int x=0; while(1) { printf("请输入三角形边长给a"); scanf("%f",&a); if(a==9999.000000) { printf("程序运行结束"); break; } printf("请输入三角形边长给…
很久没做线段树了 求矩形面积的并分析:1.矩形比较多,坐标也很大,所以横坐标需要离散化(纵坐标不需要),熟悉离散化后这个步骤不难,所以这里不详细讲解了,不明白的还请百度2.重点:扫描线法:假想有一条扫描线,从左往右(从右往左),或者从下往上(从上往下)扫描过整个多边形(或者说畸形..多个矩形叠加后的那个图形).如果是竖直方向上扫描,则是离散化横坐标,如果是水平方向上扫描,则是离散化纵坐标.下面的分析都是离散化横坐标的,并且从下往上扫描的.扫描之前还需要做一个工作,就是保存好所有矩形的上下边,并且…
覆盖的面积 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7985    Accepted Submission(s): 4038 Problem Description 给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积.   Input 输入数据的第一行是一个正整数T(1<=T<=100),代表测试数据的数量.每个测试…
题意:       给你n个正方形,求出他们的所占面积有多大,重叠的部分只能算一次. 思路:       自己的第一道线段树扫描线题目,至于扫描线,最近会写一个总结,现在就不直接在这里写了,说下我的方法,我是离散化横坐标,然后去扫描纵坐标(反过来也行),把每一个长方形的两个宽边拿出来,按照高度排序,然后开始扫描,对于么一个区间的更新,我用的是暴力点更新,因为如果写段更新的话第二个权值没有想到什么好的一起更新的方法. 然后在做另一道题目的时候发现这个方法超时了,没办法又去硬着头皮学了段更新的,段更…
题意: 求矩形覆盖K次以上的面积 分析: k很小,可以开K颗线段树,用sum[rt][i]来保存覆盖i次的区间和,K次以上全算K次 // File Name: 11983.cpp // Author: Zlbing // Created Time: 2013/7/21 16:06:54 #include<iostream> #include<string> #include<algorithm> #include<cstdlib> #include<c…
E - 秋实大哥与家 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 Description 秋实大哥是一个顾家的男人,他认为人生就是旅途,不管我们漂到哪,最终还是会回到温暖的地方——家. 所以他买了很多家具. 秋实大哥的家可以看成一个W×H的矩阵,每一件家具可以看成一个矩形,他们放置在秋实大哥的家里,相互之间没有重叠. 现在秋实大哥购置了一个新的大小为1×M的家具,秋实…