#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define iinf 2000000000
#define linf 1000000000000000000ll
#define dinf 1e200
#define eps 1e-5
#define all(v) (v).begin(),(v).end()
#define sz(x) x.size()
#define pb push_back
#define mp make_pair
#define lng long long
#define sqr(a) ((a)*(a))
#define pii pair#define pll pair#define pss pair#define pdd pair#define x first
#define y second
#define pi 3.14159265359
#define ff(i,xi,n) for(int i=xi;i<=(int)(n);++i)
#define ffd(i,xi,n) for(int i=xi;i>=(int)(n);--i)
#define ffl(i,r) for(int i=head[r];i!=-1;i=edge[i].next)
#define cc(i,j) memset(i,j,sizeof(i))
#define two(x) ((lng)1<<(x))
#define n 11111
#define m 1000000
#define lson l , mid , rt << 1
#define rson mid + 1 , r , rt << 1 | 1
#define mod n
#define pmod(x) (x%mod+mod)%mod
using namespace std;
typedef vectorvi;
typedef vectorvs;
typedef unsigned int uint;
typedef unsigned lng ulng;
templateinline void checkmax(t &x,t y)
templateinline t min(t x,t y)
templateinline t max(t x,t y)
templatet lcm(t a,t b)
templatet abs(t a)
templateinline t lowbit(t n)
templateinline int countbit(t n)
templateinline bool isprimenumber(t n)
struct ps
s[2*n];
int le[n],ri[n],clo[n<<4],n,ncase,y,cnt;
bool in[n];
bool cmp(ps p,ps q)
void query(int l,int r,int rt)
int mid=(l+r)>>1;
if (l==r) return ;
query(lson);
query(rson);
}int main()
sort(s+1,s+2*n+1,cmp);
s[0].val=-iinf;
cc(le,0);
ff(i,1,2*n)
else
if(i>=2&&s[i].val>s[i-1].val+1)
else
}cc(clo,0);
cc(in,0);
cnt=0;
ff(i,1,n)
update(le[i],ri[i],i,1,y,1);
query(1,y,1);
printf("%d\n",cnt);
}return 0;
}
POJ2528 離散化線段樹
將資料離散化在使用線段樹 有一面牆,被等分為1qw份,乙份的寬度為乙個單位寬度。現在往牆上貼n張海報,每張海報的寬度是任意的,但是必定是單位寬度的整數倍,且 1qw。後貼的海報若與先貼的海報有交集,後貼的海報必定會全部或區域性覆蓋先貼的海報。現在給出每張海報所貼的位置 左端位置和右端位置 問張貼完n...
poj 2528 線段樹 離散化
題目連線 題目大意 在一面牆上貼海報,牆很長,後面貼上去的海報要覆蓋掉之前貼上去的海報,現在向牆上逐一的貼海報,問到最後牆上可以看見的海報有幾種?方法 線段樹,離散化 include include include include using namespace std define maxn 10...
poj2528(離散化 線段樹)
題意 在1 10 7的長度上貼海報,求能看到的海報數目 解題思路 10 7無論用樸素法或線段樹解都會超時超記憶體,所以要進行離散化。所謂離散化就是把有限的個體對映到有限的空間,以此提高演算法的時空效率以這題的測試資料為例,本題的五個區間為1 4,2 6,8 10,3 4,7 10 其中10和4出現了...