程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu 1542 線段樹之掃描線之面積並

hdu 1542 線段樹之掃描線之面積並

編輯:C++入門知識

hdu 1542 線段樹之掃描線之面積並


題意:給你n個矩形,求它們的面積,重復的不重復計算

思路:用線段樹的掃描線完成,將X坐標離散化後,從下到上掃描矩形,進行各種處理,看代碼注釋把

#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
const int maxn=1e3+10;
#define mm(a) memset(a,0,sizeof(a))
int num1[maxn*4];
double num[maxn*4],X[maxn*4];
struct edge{
    double l,r,h;
    int s;//s為1是下邊,s為-1是上邊
    edge(){};
    edge(double a,double b,double c,int d) : l(a),r(b),h(c),s(d){}
    bool operator<(const edge &n)const{
        return h>1;
    if(l<=t) update(l,r,add,le,t,node<<1);
    if(r>t) update(l,r,add,t+1,ri,node<<1|1);
    pushup(le,ri,node);
}
int main(){
    int n,t=1;
    while(scanf("%d",&n)!=-1){
        if(n==0) break;
        double a,b,c,d;
        int k=0;
        for(int i=0;i

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved