日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HRBUST 1909——理工门外的树——————【离线处理,差分前缀和】

發(fā)布時間:2024/1/17 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HRBUST 1909——理工门外的树——————【离线处理,差分前缀和】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

理工門外的樹

Time Limit:?1000 MS?Memory Limit:?32768 KB

64-bit integer IO format:?%lld , %llu?Java class name:?Main

[Submit] [Status] [Discuss]

Description

?

哈爾濱修地鐵了~理工門口外長度為N的馬路上有一排樹,已知兩棵樹之間的距離都是1m。現(xiàn)在把馬路看成是一個數(shù)軸,馬路的一端在數(shù)軸0的位置,另一端在N的位置;數(shù)軸上的每個整數(shù)點,即0,1,2,……,L,都種有一棵樹。馬路上有一些區(qū)域要用來建地鐵,這些區(qū)域用它們在數(shù)軸上的起始點和終止點表示。已知任一區(qū)域的起始點和終止點的坐標都是整數(shù),區(qū)域之間可能有重合的部分。現(xiàn)在要把這些區(qū)域中的樹(包括區(qū)域端點處的兩棵樹)移走。你的任務(wù)是計算將這些樹都移走后,馬路上還有多少棵樹。?

?

Input

輸入的第一行有兩個整數(shù)N(1 <= N <= 1,000,000)和M(1 <= M <= 10,000),N代表馬路的長度,M代表區(qū)域的數(shù)目,N和M之間用一個空格隔開。接下來的M行每行包含兩個不同整數(shù),用一個空格隔開,表示一個區(qū)域的起始點和終止點的坐標。?

Output

輸出包括一行,這一行只包含一個整數(shù),表示馬路上剩余的樹的數(shù)目。?

?

Sample Input

500 3

150 300

100 200

470 471

Sample Output

298

?

解題思路:差分前綴和,sum數(shù)組就是表示所有樹的情況。然后遍歷sum數(shù)組,如果小于0,說明該位置的樹被拔掉。

?

#include<stdio.h> #include<vector> #include<queue> #include<string.h> #include<algorithm> using namespace std; typedef long long LL; const int maxn = 1e6+20; const int INF = 0x3f3f3f3f; const int mod = 1e9+7; int sum[maxn],a[maxn]; int main(){int n,m;while(scanf("%d%d",&n,&m)!=EOF){memset(sum,0,sizeof(sum));memset(a,0,sizeof(a));int l,r;for(int i = 1; i <=m; i++){scanf("%d%d",&l,&r);if(l > r) swap(l,r);a[l+1] -= 1;a[r+1+1] += 1;}int ans = 0;for(int i = 1; i <= n+1; i++){sum[i] = sum[i-1] + a[i];}for(int i = 1; i <= n+1; i++){if(sum[i] < 0){ans++;}}printf("%d\n",n+1-ans);}return 0; }

  

轉(zhuǎn)載于:https://www.cnblogs.com/chengsheng/p/5336731.html

總結(jié)

以上是生活随笔為你收集整理的HRBUST 1909——理工门外的树——————【离线处理,差分前缀和】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。