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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HJ浇花(牛客竞赛 约束差分)

發布時間:2023/12/15 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HJ浇花(牛客竞赛 约束差分) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鏈接:https://ac.nowcoder.com/acm/contest/322/M
來源:牛客網

題目描述
HJ養了很多花(99999999999999999999999999999999999盆),并且喜歡把它們排成一排,編號0~99999999999999999999999999999999998,每天HJ都會給他的花澆水,但是他很奇怪,他會澆n(1 <= n <= 2 * 105)次水,每次都會選擇一個區間[l, r],(0 <= l <= r <= 106),表示對區間[l, r]的花都澆一次水。現在問你,通過這些操作之后,被澆了i(1 <= i <= n)次水的花的盆數。

輸入描述:
輸入:第一行一個n,表示HJ的操作次數,接下來的n行,表示每一次選擇的澆水區間。
輸出描述:
輸出:輸出n個數字Cnt1, Cnt2……Cntn,(用空格隔開)Cnti表示被澆了i次水的花的盆數。
示例1
輸入
復制
3
0 3
1 3
3 8
輸出
復制
6 2 1
示例2
輸入
復制
3
1 3
2 4
5 7
輸出
復制
5 2 0
說明
對于樣例1的圖形解釋

被澆了1次的有:0, 4, 5, 6, 7, 8, cnt1 = 6

被澆了2次的有:1, 2. cnt2 = 2

被澆了3次的有: 3 . cnt3 = 3

典型的約束差分題,我做的兩次差分題目全是在牛客網上的.
這種題目的關鍵是要知道還原.
代碼如下:

#include<bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f using namespace std;const int maxx=2e6+100; int vis[maxx]; int cnt[maxx]; int n;int main() {cin>>n;ll maxn=-1;ll minn=inf;memset(cnt,0,sizeof(cnt));ll l,r;for(int i=0;i<n;i++){cin>>l>>r;vis[l]++;vis[r+1]--;maxn=max(maxn,r);minn=min(minn,l);}for(int i=minn;i<=maxn;i++){vis[i]+=vis[i-1];//還原,現在的VIS就代表每個點的被澆水的次數..}for(int i=minn;i<=maxn;i++){cnt[vis[i]]++;}for(int i=1;i<=n;i++){cout<<cnt[i]<<" ";} }

努力加油a啊,(o)/~

總結

以上是生活随笔為你收集整理的HJ浇花(牛客竞赛 约束差分)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。