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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

2019蓝桥杯国赛B组第九题

發布時間:2023/12/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2019蓝桥杯国赛B组第九题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述:
有一條河,沿河的一側生活著一個部落。這個一字型的部落有n個據點,從左至右依次編號1~n。
部落的人們有時會在某個據點建立建筑,每個建筑都有各自的價值。一開始,每個據點的都沒有建筑,價值都是0。如果在已有建筑的據點建立新的建筑,那么新的建筑會代替舊的建筑(舊的建筑就此消失)。
有兩種操作C和Q:
1、C x y,表示在據點x建立一個價值為y的建筑。
2、Q x y,詢問在據點x~y之間(包括x,y)的建筑中,價值第八大的建筑的價值是多少。

輸入描述:
第一行,兩個正整數n和k,表示據點的數量和操作的數量。
接下的k行,每行一個操作。

輸出描述:
對于所有的Q操作,輸出相應的第八大建筑的價值。

輸入樣例:
10 14
C 1 5
C 2 4
C 3 7
C 4 6
C 5 5
C 6 1
C 7 8
Q 1 10
C 8 3
C 9 6
C 10 3
Q 1 9
C 6 10
Q 1 10

輸出樣例:
0
3
4
思路:唉,當時要是能想到這一點,也不會只拿個國二了。
很明顯,區間操作,線段樹是很容易想到的。但是這次線段樹的每一個節點不是維護一個數了,而是8個數。因為8很小,所以還是可以承擔的。每次pushup的時候,將最大的八個數更新給父節點。查詢的時候返回一個數組就可以了。代碼沒有測試,不知道有沒有問題,當個參考吧。
代碼如下:

#include<bits/stdc++.h> #define ll long long using namespace std;const int maxx=1e5+100; struct node{int l;int r;int a[9];int len; }p[maxx<<2]; int n,m,x,y;inline void pushup(int cur) {int *c1=new int[9];int *c2=new int[9];int len1=p[cur<<1].len;int len2=p[cur<<1|1].len;sort(p[cur<<1].a,p[cur<<1].a+len1);sort(p[cur<<1|1].a,p[cur<<1|1].a+len2);c1=p[cur<<1].a;c2=p[cur<<1|1].a;int len=0;len1--,len2--;while(len<8&&(len1>=0&&len2>=0)){if(c1[len1]>c2[len2]) p[cur].a[len++]=c1[len1],len1--;else p[cur].a[len++]=c2[len2],len2--;}if(len1==-1) while(len<8&&len2>=0) p[cur].a[len++]=c2[len2--];else while(len<8&&len1>=0) p[cur].a[len++]=c1[len1--];while(len<8) p[cur].a[len++]=0;p[cur].len=len; } inline void build(int l,int r,int cur) {p[cur].l=l;p[cur].r=r;p[cur].len=0;memset(p[cur].a,0,sizeof(p[cur].a));if(l==r) return ;int mid=l+r>>1;build(l,mid,cur<<1);build(mid+1,r,cur<<1|1); } inline void update(int pos,int v,int cur) {int L=p[cur].l;int R=p[cur].r;if(L==R) {p[cur].a[0]=v;p[cur].len=1;return ;}int mid=L+R>>1;if(pos<=mid) update(pos,v,cur<<1);else update(pos,v,cur<<1|1);pushup(cur); } inline int *query(int l,int r,int cur) {int L=p[cur].l;int R=p[cur].r;if(l<=L&&R<=r) return p[cur].a;int mid=L+R>>1;if(r<=mid) return query(l,r,cur<<1);else if(l>mid) return query(l,r,cur<<1|1);else{int *c1=new int[9];c1=query(l,mid,cur<<1);int *c2=new int[9];c2=query(mid+1,r,cur<<1|1);sort(c1,c1+8);sort(c2,c2+8);int *c=new int[9];int len=0,len1=7,len2=7;while(len<8&&(len1>=0&&len2>=0)){if(c1[len1]>c2[len2]) c[len++]=c1[len1],len1--;else c[len++]=c2[len2],len2--;}if(len1==-1) while(len<8&&len2>=0) c[len++]=c2[len2--];else while(len<8&&len1>=0) c[len++]=c1[len1--];return c;} } int main() {scanf("%d%d",&n,&m);build(1,n,1);char s[2];while(m--){scanf("%s%d%d",s,&x,&y);if(s[0]=='C') update(x,y,1);else {int *c=new int[9];c=query(x,y,1);sort(c,c+8);printf("%d\n",c[0]);}}return 0; }

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

總結

以上是生活随笔為你收集整理的2019蓝桥杯国赛B组第九题的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 精品乱码一区二区三区四区 | 国产精品四虎 | 日韩中文字幕在线 | 国产精品乱码一区二区三区 | 亚洲激情视频网 | 成人在线手机视频 | 999精品网站 | 97超碰人人草 | 久久99久久99精品免观看粉嫩 | 国产精品久久久久久亚洲 | 性欧美高清 | 欧美色图3p | 亚洲视频在线观看一区二区 | 国产第六页 | 日本一区二区在线不卡 | 1024av在线 | av基地网| www,99| 国产乱色精品成人免费视频 | 成人精品一区二区三区中文字幕 | 最新精品国产 | av片手机在线观看 | 男插女青青影院 | 熟女俱乐部一区二区视频在线 | 哺乳期喷奶水丰满少妇 | 西西午夜| 天堂av一区二区 | 五月六月婷婷 | 在线观看日韩国产 | 青青福利视频 | 懂色aⅴ一区二区三区免费 国产精品99在线观看 | 91视频国产一区 | 又粗又猛又爽又黄的视频 | 福利国产在线 | 国产网站一区 | 欧美性插视频 | 91手机视频在线观看 | 国产v亚洲v天堂无码久久久 | 日韩高清中文字幕 | 麻豆影片| 嫩草一区二区 | 日日噜噜噜夜夜爽爽狠狠视频97 | 午夜一区二区三区四区 | 日韩三级一区二区 | 精品视频一二三区 | 少妇精品一区二区三区 | 日本视频一区二区三区 | 岛国大片在线观看 | jizz黑人| 国产三级精品三级在线 | 女人下部全棵看视频 | 一区二区三区av在线 | 草草草在线视频 | 884aa四虎影成人精品一区 | 成人黄色片网站 | 北条麻妃青青久久 | 阿v免费视频 | 久月婷婷 | 久久精品福利视频 | 欧美一二三四五区 | 青草国产视频 | 精品国产乱码久久久久久婷婷 | 不卡一区在线 | 成人免费一区二区三区 | 免费一区二区三区视频在线 | 国产在线播放网站 | 亚洲精品电影院 | 欧洲女女同性videoso | 国产一区二区女内射 | 猎艳山村丰满少妇 | 亚洲男人天堂视频 | 日韩欧美麻豆 | 天天干天天插天天操 | 最新天堂在线视频 | 精品国产123 | 毛片大全免费 | 日韩操操 | 日韩精品在线第一页 | 国产69视频在线观看 | 一区二区三区视频在线 | 国产成人精品综合久久久久99 | 香蕉视频免费在线观看 | 综合激情在线 | 亚洲精品综合在线观看 | 精品中文字幕视频 | 国产av不卡一区 | 涩涩网站在线看 | 中文字幕不卡视频 | 91精产国品一二三 | 国产伦理一区二区 | youjizz国产| 久久久久久久久久久久91 | 国产午夜视频在线 | 男女做受视频 | 国产精品1区2区3区 在线看黄的网站 | 97蜜桃网 | 91成人在线播放 | 亚洲一级二级 | 白峰美羽在线播放 |