1. 程式人生 > >cogs 1682. [HAOI2014]貼海報 WW

cogs 1682. [HAOI2014]貼海報 WW

暴力 png tor 內存 urn 長度 技術 cnblogs space

★★☆ 輸入文件:ha14d.in 輸出文件:ha14d.out 簡單對比
時間限制:1 s 內存限制:256 MB

【題目描述】

Bytetown城市要進行市長競選,所有的選民可以暢所欲言地對競選市長的候選人發表言論。為了統一管理,城市委員會為選民準備了一個張貼海報的electoral墻。

張貼規則如下:

1.electoral墻是一個長度為N個單位的長方形,每個單位記為一個格子;

2.所有張貼的海報的高度必須與electoral墻的高度一致的;

3.每張海報以“A B”表示,即從第A個格子到第B個格子張貼海報;

4.後貼的海報可以覆蓋前面已貼的海報或部分海報。

現在請你判斷,張貼完所有海報後,在electoral墻上還可以看見多少張海報。

【輸入格式】

第一行: N M 分別表示electoral墻的長度和海報個數

接下來M行: Ai Bi 表示每張海報張貼的位置


【輸出格式】

輸出貼完所有海報後,在electoral墻上還可以看見的海報數。

【樣例輸入】


100 5

1 4

2 6

8 10

3 4

7 10


【樣例輸出】

4

【提示】


技術分享

【約束條件】

1 0<= N <= 10000000 1<=M<=1000 1<= Ai <= Bi <=10000000

所有的數據都是整數。數據之間有一個空格

正解樹狀數組(線段樹???),暴力52分(cogs),AC(luogu):

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<cstring>
 6 #include<string>
 7  
 8 using namespace std;
 9 const int N=10000010;
10  
11 inline int read()
12 { 13 int x=0,f=1; 14 char c=getchar(); 15 while(c<0||c>9){if(c==-)f=-1;c=getchar();} 16 while(c>=0&&c<=9)x=x*10+c-0,c=getchar(); 17 return x*f; 18 } 19 20 int vis[N]; 21 22 int main() 23 { 24 25 freopen("ha14d.in","r",stdin); 26 freopen("ha14d.out","w",stdout); 27 int n=read(); 28 int m=read(); 29 for(int i=1;i<=m;i++) 30 { 31 int u=read(); 32 int v=read(); 33 for(int j=u;j<=v;j++) 34 { 35 vis[j]=i; 36 } 37 } 38 int Answer=0; 39 for(int i=1;i<=m;i++) 40 { 41 bool flag=1; 42 for(int j=1;j<=n&&flag;j++) 43 { 44 if(vis[j]==i) 45 { 46 Answer++; 47 flag=0; 48 } 49 } 50 } 51 52 printf("%d",Answer); 53 54 return 0; 55 }

cogs 1682. [HAOI2014]貼海報 WW