[Codevs] 3044 矩形面积求并(离散化)
来源:互联网 发布:linux posix 编辑:程序博客网 时间:2024/04/30 19:26
这道题据说是NOIP哪年哪道题???
被各大省讲烂了???
--------------------------------------------
首先大致思路如上所示:以一个点代表其右上的一个单位。这个单位矩形的某种不可名状性质如右上所示。这样,数组xy[c][c]就代表了c+1到c这个小矩形是否被覆盖了,然后我们在涂点的时候就涂少一个单位,这样小矩形合起来刚好就能代表整个大矩形,然后我们用这个方法求出所有覆盖面积(就是一群矩形);
但是呢这道题的重点其实是在 离 散 化
离散化的代码相信很容易就能从下列代码中被识别出来,具体方式就是利用映射数组,将 元素 映射为下标。
其实后来发现这道题很容易= =可能是我搞的时间略长,,
题目:http://codevs.cn/problem/3044/
#include<cstdio> // By: Chorolop#include<iostream>#include<cstring>#include<algorithm>using namespace std;double x[300],y[300],xy[300][300],ans;double s[300][4];int n,k = 1;void _init(){memset(x,0,sizeof(x));memset(y,0,sizeof(y));memset(xy,0,sizeof(xy));memset(s,0,sizeof(s));ans = 0;k = 1;}int main(){scanf("%d",&n);while(n){_init();for(int i = 1;i <= n;i++){scanf("%lf %lf %lf %lf",&s[i][0],&s[i][1],&s[i][2],&s[i][3]);x[k] = s[i][0];y[k] = s[i][1];k++;x[k] = s[i][2];y[k] = s[i][3];k++;}sort(x+1,x+k);sort(y+1,y+k);for(int i = 1;i <= n;i++){int ix,iy,jx,jy;for(ix = 0;x[ix] < s[i][0];ix++);for(iy = 0;y[iy] < s[i][1];iy++);for(jx = 0;x[jx] < s[i][2];jx++);for(jy = 0;y[jy] < s[i][3];jy++);for(int px = ix;px < jx;px++)for(int py = iy;py < jy;py++)xy[px][py] = 1;}for(int px = 0;px <= k;px++)for(int py = 0;py <= k;py++)ans += xy[px][py] * (x[px+1]-x[px]) * (y[py+1]-y[py]);printf("%.2lf\n",ans);scanf("%d",&n);}return 0;}
0 0
- [Codevs] 3044 矩形面积求并(离散化)
- Codevs 题目3044 矩形面积求并(线段树+扫描线+离散化)
- codevs 3044_矩形面积求并_离散
- 【codevs 3044】 矩形面积求并 【线段树 扫描线 离散化】
- [CODEVS 3044] 矩形面积求并
- 离散化矩形面积求并
- 【坐标离散化】矩形面积求并
- codevs 3044 线段树+离散化+扫描线 (矩形面积并
- Codevs P3044矩形面积求并
- POJ1151 离散化求矩形面积的并
- POJ 1151 && 1389 离散化求矩形面积的并
- 线段树求矩形面积并 扫描线+离散化
- 【离散化练习】Codevs3044矩形面积求并
- 线段树求矩形面积并 扫描线+离散化
- hdu3265-Posters 线段树+离散化 求矩形面积并
- (codevs 3044 矩形面积求并)<可以不用线段树>
- HDU 1542 Atlantis(扫描线求矩形面积并+离散化)
- hdu1255 覆盖的面积(线段树+扫描线+离散化,求矩形面积并)
- actionresult的返回类型
- ubuntu14.04环境下安装配置OpenCV3.2+anaconda2(Python2.7)
- 深入浅出搜索架构引擎、方案与细节(上)
- NYOJ 304 节能(DP)
- python学习1 详细记录python的range()函数用法
- [Codevs] 3044 矩形面积求并(离散化)
- 算法
- ubuntu校园网登陆客户端 mentohust下载安装
- 线段树练习题一
- Spring AOP 面向切面编程 常见通知实现(前置,后置,环绕,异常)
- Java注解原理解析
- 动画演示Raft
- 小马哥---高仿苹果7p 9900-875AQ0-A-6571新版刷机拆机图示与识别图
- opencv简单形状绘制