線段樹區間合併 掃瞄線

2021-09-05 17:44:46 字數 769 閱讀 8680

線段樹區間合併+掃瞄線

題目:求n個矩形面積並

#includeusing namespace std;

typedef long long ll;

const int n=1e6+5;

int t[n*2]; //標記數量

int vis[n+2]; //標記陣列

void update(int root,int kl,int kr,int num,int l=1,int r=n)

int mid=(l+r)/2;

if(kl<=mid)update(root*2,kl,kr,num,l,mid);

if(kr>mid)update(root*2+1,kl,kr,num,mid+1,r);

t[root]=t[root*2]+t[root*2+1];

}//值為其兩個兒子之和

struct nodep[2200];

bool cmp(node a,node b)

int main();//下邊

p[i+n]=node;//上邊

}sort(p+1,p+2*n+1,cmp); //把邊從下到上排序

memset(vis,0,sizeof(vis));

ll ans=0; //總面積初始化

for(int i=1;i<=2*n;i++)//根1,當前邊左值,右值,標記

printf("%lld\n",ans);

}puts("*");

}

線段樹 掃瞄線區間模板

線段樹 掃瞄線基礎模板 掃瞄線與普通的線段樹區別要認清,這裡線是連續的,其他的型別單點是離散的 include include include using namespace std int n const int maxn 10000 struct node void get int a,int ...

線段樹 掃瞄線

pku 1151 hdu1542 atlantis 矩形面積並 題意 給出n個矩形,每個矩形給出左下角座標,右上角座標。然後求矩形並的總面積 思路 浮點數先要離散化 然後把矩形分成兩條邊,上邊和下邊,對橫軸建樹,然後從下到上掃瞄上去,用cnt表示該區間下邊比上邊多幾個,sum代表該區間內被覆蓋的線段...

掃瞄線 線段樹

問題描述 小明的家旁邊有條河流,但最近,周圍的三個工廠開始向這條河排放汙水,這條河的一部分被汙染了,被乙個工廠汙染的部分可以看做乙個矩形,現在小明想知道這條河被汙染的面積是多少。輸入 第一行乙個整數t,表示有多少組資料,之後每一組資料報括三行,每一行有lx,ly,rx,ry四個整數,表示被乙個工廠汙...