答案是:n+1+逆序数的数量因为如果n条线段都不相交,一定可以划分成n+1个区域,然后就画图YY一下View Code #include <cstdio> #include <algorithm>using namespace std;int left[50003], right[50003]; int cnt; struct node { int y1,y2;}p[30010];int cmp(node a,node b){ return a.y1<b.y1;}void merge(int a[], int l, int m, int r) { int i, j Read More
hdu 3577 也是这样的题目典型的线段树区间覆盖,懒惰标记要多记录两个域,一个是区间内最大值所在的最左的位置,另一个是最右的位置View Code //zoj 3573#include<stdio.h>#include<cstring>#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define mid (l+r)>>1const int maxn = 100010;int sum[maxn<<2];//子树区间内最大的覆盖次数int col[maxn<<2 Read More