zoukankan      html  css  js  c++  java
  • POJ 1151 Atlantis(离散化)

    点我看题目

    题意 : 就是给你n个矩形的最左下角和最右上角的点的坐标,然后将这n个矩形的面积求出来。

    思路 : 离散化求矩形面积并。离散化具体介绍。将横纵坐标离散开来分别存,然后排序,也可以按照黑书上411页写的两个算法中,有一个说是用二分,效率比较好,不过我用的不是二分,而是普通的循环查找。

     1 #include<iostream>
     2 #include <algorithm>
     3 #include <string.h>
     4 #include <stdio.h>
     5 using namespace std;
     6 double x[201],y[201],s[101][4];
     7 int flag[201][201];
     8 int t,cas = 1 ;
     9 double sum;
    10 int main()
    11 {
    12     while(~scanf("%d",&t))
    13     {
    14         if(t == 0) break;
    15         int k = 0 ;
    16         sum = 0.0 ;
    17         memset(flag,0,sizeof(flag));
    18         for(int i = 1 ; i <= n ; i++)
    19         {
    20             cin>>s[i][0]>>s[i][1]>>s[i][2]>>s[i][3];
    21             x[k] = s[i][0];
    22             y[k] = s[i][1];
    23             k++;
    24             x[k] = s[i][2];
    25             y[k] = s[i][3];
    26             k++;
    27         }
    28         sort(x,x+2*n);
    29         sort(y,y+2*n);
    30         for(k = 1 ; k <= n ; k++)
    31         {
    32             int a,b,c,d;
    33             for(a = 0 ; a < 2*n ; a++)
    34                 if(x[a] == s[k][0]) break;
    35             for(b = 0 ; b < 2*n ; b++)
    36                 if(x[b] == s[k][2]) break;
    37             for(c = 0 ; c < 2*n ; c++)
    38                 if(y[c] == s[k][1]) break;
    39             for(d = 0 ; d < 2*n ; d++)
    40                 if(y[d] == s[k][3]) break;
    41             for(int i = a ; i < b ; i++)
    42                 for(int j = c ; j < d ; j++)
    43                     flag[i][j] = 1 ;
    44         }
    45         for(int i = 0 ; i < 2*t ; i++)
    46             for(int j = 0 ; j < 2*t ; j++)
    47                 if(flag[i][j])
    48                     sum+=(x[i+1]-x[i])*(y[j+1]-y[j]);
    49         printf("Test case #%d
    ",cas++);
    50         printf("Total explored area: %.2f
    
    ",sum);
    51     }
    52     return 0;
    53 }
    View Code
  • 相关阅读:
    程序用windows快捷键
    vc6中如何加入BMP图片资源
    vc 中解析字符串
    视频压缩编码问与答
    ActiveX and Com
    Windows 2000 IIS 安装、配置.WEB篇
    javascript 如何调用activex的方法和属性
    bmp 转为jpg
    Writing a Custom Membership Provider for the Login Control in ASP.NET 2.0
    几种DC及区别
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3626769.html
Copyright © 2011-2022 走看看