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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

CF1045G AI robots(动态开点线段树)

發布時間:2025/3/8 ChatGpt 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CF1045G AI robots(动态开点线段树) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意

火星上有$N$個機器人排成一行,第$i$個機器人的位置為$x_{i}$,視野為$r_{i}$,智商為$q_{i}$。我們認為第$i$個機器人可以看到的位置是$[x_{i}-r_{i},x_{i}+r_{i}]$。如果一對機器人相互可以看到,且它們的智商$q_{i}$的差距不大于$K$,那么它們會開始聊天。 為了防止它們吵起來,請計算有多少對機器人可能會聊天。

題解

先膜一下大佬->這里

我們先按視野降序排序,這樣一個一個考慮,如果后面的能看到前面,那前面的也肯定能看到后面

這樣,就是對于每一個機器人,在他前面有幾個智商在$[q-k,q+k]$,位置在$[x-r,x+r]$

那么把這個東西看做一個矩形覆蓋就可以了

然后因為智商這一維維數很小,我們可以對每一個智商開一個動態開點線段樹,然后一個一個掃過去統計答案就可以了

1 //minamoto 2 #include<iostream> 3 #include<cstdio> 4 #include<algorithm> 5 #include<map> 6 #define ll long long 7 using namespace std; 8 #define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++) 9 char buf[1<<21],*p1=buf,*p2=buf; 10 inline int read(){ 11 #define num ch-'0' 12 char ch;bool flag=0;int res; 13 while(!isdigit(ch=getc())) 14 (ch=='-')&&(flag=true); 15 for(res=num;isdigit(ch=getc());res=res*10+num); 16 (flag)&&(res=-res); 17 #undef num 18 return res; 19 } 20 const int N=1e5+5; 21 int n,k,m,b[N*3];ll res; 22 map<int,int> rt;int L[N<<5],R[N<<5],sum[N<<5],cnt=0; 23 void update(int p,int l,int r,int x){ 24 ++sum[p];if(l==r) return; 25 int mid=(l+r)>>1; 26 if(x<=mid) update(L[p]=L[p]?L[p]:++cnt,l,mid,x); 27 else update(R[p]=R[p]?R[p]:++cnt,mid+1,r,x); 28 } 29 int query(int p,int l,int r,int ql,int qr){ 30 if(ql<=l&&qr>=r||p==0) return sum[p]; 31 int mid=(l+r)>>1,res=0; 32 if(ql<=mid) res+=query(L[p],l,mid,ql,qr); 33 if(qr>mid) res+=query(R[p],mid+1,r,ql,qr); 34 return res; 35 } 36 inline void ins(int q,int x){ 37 if(rt.count(q)==0) rt[q]=++cnt; 38 update(rt[q],1,m,x); 39 } 40 inline int get(int q,int ql,int qr){ 41 if(rt.count(q)==0) return 0; 42 return query(rt[q],1,m,ql,qr); 43 } 44 struct node{ 45 int x,r,q; 46 node(){} 47 node(int x,int r,int q):x(x),r(r),q(q){} 48 inline bool operator <(const node &b)const 49 {return r>b.r;} 50 }a[N]; 51 int main(){ 52 // freopen("testdata.in","r",stdin); 53 n=read(),k=read(); 54 for(int i=1;i<=n;++i){ 55 int x=read(),r=read(),q=read(); 56 a[i]=node(x,r,q); 57 b[++m]=x,b[++m]=x-r,b[++m]=x+r; 58 } 59 sort(b+1,b+1+m),m=unique(b+1,b+1+m)-b-1; 60 sort(a+1,a+1+n); 61 for(int i=1;i<=n;++i){ 62 int l=lower_bound(b+1,b+1+m,a[i].x-a[i].r)-b; 63 int r=lower_bound(b+1,b+1+m,a[i].x+a[i].r)-b; 64 int x=lower_bound(b+1,b+1+m,a[i].x)-b; 65 for(int j=a[i].q-k;j<=a[i].q+k;++j) 66 res+=get(j,l,r); 67 ins(a[i].q,x); 68 } 69 printf("%lld\n",res); 70 return 0; 71 }

?

轉載于:https://www.cnblogs.com/bztMinamoto/p/9749892.html

總結

以上是生活随笔為你收集整理的CF1045G AI robots(动态开点线段树)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲欧美日本一区二区三区 | 亚洲精品乱码久久久久久蜜桃动漫 | 国产欧美久久久久 | 91视频地址 | 182av| 一区二区三区四区五区视频 | 亚洲三级网站 | 亚洲精品污一区二区三区 | 亚洲交性网| jizz精品 | 久久久99精品免费观看 | 都市激情亚洲综合 | 丁香激情综合 | 国产精品自偷自拍 | 亚洲成人av电影在线 | 国产精品久久久久久久久久久不卡 | 欧美性生活一区二区三区 | 亚洲精品白浆高清久久久久久 | 欧美日韩精品一区二区在线观看 | 91一二区| 亚洲精品福利在线 | 爱爱中文字幕 | 亚洲干 | 日本大奶视频 | 国产 欧美 日韩 一区 | 成人免费无码大片a毛片 | 日本女优中文字幕 | 精品黄色在线观看 | 两性囗交做爰视频 | 好屌妞视频这里有精品 | 成人综合区一区 | 成人自拍偷拍 | 性做久久久久久久免费看 | 中文字幕一区二 | 僵尸叔叔在线观看国语高清免费观看 | 偷操 | 久久免费毛片 | 亚一区| 久久免费看少妇高潮v片特黄 | 欧美一区二区精品 | 免费福利在线 | 日本精品一区二区三区四区的功能 | 亚洲av无码一区二区三区观看 | 2019天天操 | xxxxx日韩| 国产激情一区二区三区视频免樱桃 | 亚洲天堂无吗 | 亚洲精品国产精品国自产在线 | 快色在线观看 | 日本十八禁视频无遮挡 | 人妻 日韩精品 中文字幕 | 国产二级一片内射视频播放 | 邻居校草天天肉我h1v1 | 精品国产精品三级精品av网址 | 麻豆国产一区二区三区 | feel性丰满白嫩嫩hd | 青草超碰 | 91亚洲精品在线观看 | 久久视频网 | 2018av| 一区二区不卡免费视频 | 国产高潮网站 | 欧美绿帽合集videosex | 精品亚洲aⅴ无码一区二区三区 | 在线免费日韩 | 一级福利片| 成人黄色短片 | 日本a∨视频 | 亚洲国产视频一区二区 | 色中文字幕在线观看 | 国产精品无码AV | www.69视频 | 国产精品成人免费视频 | 在线视频播放大全 | 日本女人性视频 | 97成人免费视频 | av网天堂 | 免费啪啪网 | 亚洲三级小视频 | 四虎精品在永久在线观看 | 男女日皮视频 | 又色又爽又黄18网站 | 久久久毛片 | 神马久久久久久 | 国产综合精品一区二区三区 | 久久一二 | 亚洲蜜臀av乱码久久精品蜜桃 | 亚洲精品久久久久久一区二区 | 男女性生活视频网站 | 亚洲一区中文字幕永久在线 | 日本在线视频不卡 | 欧美日韩一区二区不卡 | 日韩电影三级 | 国产aⅴ爽av久久久久成人 | 亚洲熟女乱色综合亚洲av | 久草久草| 精品人妻一区二区三区换脸明星 | 91视频网址| 看国产一级片 |