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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

免费送气球

發(fā)布時(shí)間:2024/10/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 免费送气球 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1004&cid=843

C++版本一

https://www.cnblogs.com/kls123/p/10542573.html

題解:

每次1操作會(huì)往序列底加first個(gè)second,first 和 second 都是最大1e9的數(shù)據(jù),每次2操作詢問序列中第first到第second個(gè)數(shù)的和

一開始就感覺有點(diǎn)像線段樹,輸入數(shù)據(jù)太大我們可以離線處理把數(shù)據(jù)離散化下,然后扔到線段樹上,維護(hù)兩個(gè)數(shù)組:

sum: 區(qū)間數(shù)的值的和? num: 區(qū)間數(shù)的數(shù)量和? ,對(duì)于每次詢問的first和second,我們找到第first個(gè)和第second個(gè)分別是哪兩個(gè)數(shù)字,

如果兩個(gè)數(shù)字不相同,那么就先算出分別取了多少個(gè)這兩個(gè)數(shù)字,對(duì)于兩個(gè)數(shù)字中間的數(shù)字和我們可以直接用線段樹區(qū)間求和得到

?

感覺應(yīng)該有更簡單的寫法,不過一開始思路就往線段樹上偏了,干脆直接用線段樹寫了。。。。。。

#include<bits/stdc++.h> using namespace std; #define ll long long #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define mid ll m = (l + r) >> 1 const ll mod = 1000000007; const ll M = 2e5+10; ll sum[M<<2],num[M<<2],b[M],op[M],vis[M ]; struct node{ll x,y; }a[M]; void update(ll p,ll c,ll l,ll r,ll rt){if(l == r){sum[rt] = (sum[rt]+(b[p]*c)%mod)%mod;num[rt] += c;return ;}mid;if(p <= m) update(p,c,lson);else update(p,c,rson);sum[rt] = (sum[rt<<1] + sum[rt<<1|1])%mod;num[rt] = num[rt<<1] + num[rt<<1|1]; }ll ask(ll L,ll R,ll l,ll r,ll rt){ //求區(qū)間[L,R]的區(qū)間和if(L <= l&&R >= r){return sum[rt];}mid;ll ret = 0;if(L <= m) ret = (ret + ask(L,R,lson))%mod;if(R > m) ret = (ret + ask(L,R,rson))%mod;return ret; }ll ask1(ll p,ll l,ll r,ll rt){ //尋找序列中第p個(gè)是那個(gè)數(shù)字if(num[rt] >= p&& num[rt] - vis[r] < p){return r;}mid;if(p <= num[rt<<1]) ask1(p,lson);else ask1(p-num[rt<<1],rson); }ll ask2(ll L,ll R,ll l,ll r,ll rt){ //求區(qū)間[L,R]中有多少個(gè)數(shù)字if(L <= l&&R >= r){return num[rt];}mid;ll ret = 0;if(L <= m) ret += ask2(L,R,lson);if(R > m) ret += ask2(L,R,rson);return ret; }int main() {ll n,cnt = 0;cin>>n;for(ll i = 1;i <= n;i ++){cin>>op[i]>>a[i].x >> a[i].y;if(op[i] == 1) b[++cnt] = a[i].y;}sort(b+1,b+1+cnt);for(ll i = 1;i <= n;i ++){if(op[i] == 1){ll id = lower_bound(b+1,b+1+cnt,a[i].y)-b;update(id,a[i].x,1,cnt,1);vis[id] += a[i].x;}else{ll l = ask1(a[i].x,1,cnt,1);ll r = ask1(a[i].y,1,cnt,1);if(l == r){cout<<(b[l]*((a[i].y-a[i].x+1)%mod))%mod<<endl;}else{ll l = ask1(a[i].x,1,cnt,1);ll r = ask1(a[i].y,1,cnt,1);ll k1 = (((ask2(1,l,1,cnt,1) - a[i].x+1)%mod)*b[l])%mod;ll k2 = (((a[i].y - ask2(1,r-1,1,cnt,1))%mod)*b[r])%mod;ll k = 0;k = ask(l+1,r-1,1,cnt,1);cout<<(k+k1+k2)%mod<<endl;}}} }

?

總結(jié)

以上是生活随笔為你收集整理的免费送气球的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品99无码一区二区视频 | 综合网伊人| 中文字幕日日 | 麻豆视频一区二区三区 | 免费成人深夜小野草 | 亚洲欧美日韩在线播放 | 超碰97国产 | 男同毛片 | 亚洲欧美中文字幕5发布 | 丁香婷婷亚洲 | 亚洲成人免费在线 | 黄色一级影片 | 亚洲欧美视频一区二区 | 超碰免费公开在线 | 人妻换人妻仑乱 | 国内少妇毛片视频 | 中文字幕在线播出 | 丁香花在线影院观看在线播放 | 93久久精品日日躁夜夜躁欧美 | 日本一区二区三区视频免费看 | 性国产精品 | hitomi一区二区三区精品 | 熊猫电影yy8y全部免费观看 | 日本精品三级 | 网址在线观看你懂的 | 99国产精品视频免费观看一公开 | 天天综合天天做 | 熟女俱乐部一区二区 | 干干天天 | 国产午夜福利100集发布 | 久久精品区 | 青春草av| 国产精品视频在 | 日本v视频 | 国产午夜一区 | 无码人妻一区二区三区在线视频 | 97香蕉久久超级碰碰高清版 | 毛片视频软件 | 字幕网在线 | 海量av资源 | 欧美综合一区二区 | 亚洲一区激情 | 日本性xxxxx| 久久综合中文字幕 | 欧美夜夜操 | 草草浮力影院 | 亚洲中文字幕无码一区二区三区 | 免费毛毛片 | 久久久午夜视频 | 欧美永久精品 | 五月婷婷狠狠干 | 亚洲九九视频 | 亚欧洲精品视频 | 超碰在线天天 | 九九热精品 | 久久精品国产成人av | 四色成人| 成人免费av片 | 99精品网| 影视先锋av资源 | 俺也去av| 黄色三级片毛片 | 亚洲大片免费看 | 制服 丝袜 综合 日韩 欧美 | 日韩女同互慰一区二区 | 黄色污在线观看 | 可以免费看毛片的网站 | 欧美日韩在线中文字幕 | 精品少妇久久 | www黄色com| 8x8ⅹ8成人免费视频观看 | 久久国产加勒比精品无码 | 国产激情小视频 | 成人激情小说网站 | 夜夜操天天操 | 艳妇乳肉豪妇荡乳 | 无码人妻aⅴ一区二区三区日本 | 香蕉手机网| 久久538| 在线的av | 88av在线| 午夜在线一区二区三区 | 毛片的网址 | 午夜精品免费视频 | 男人免费网站 | www.欧美在线观看 | 麻豆亚洲精品 | 久久久久久国 | 亚洲涩涩在线 | 成人午夜视频在线播放 | 少妇aa | 亚洲日本欧美精品 | 青青草视频播放器 | 可以在线观看的黄色 | 特黄色大片 | av一二三四 | 91在线视频在线观看 | 日本一区欧美 | 日韩一级久久 |