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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

P3309-[SDOI2014]向量集【线段树,凸壳】

發布時間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P3309-[SDOI2014]向量集【线段树,凸壳】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正題

題目鏈接:https://www.luogu.com.cn/problem/P3309


題目大意

nnn個操作

  • 在序列末尾加入一個向量(x,y)(x,y)(x,y)
  • 詢問加入的第l~rl\sim rlr個向量中的一個向量和(x,y)(x,y)(x,y)的點積最大值
  • 強制在線,點積的定義為x1x2+y1y2x_1x_2+y_1y_2x1?x2?+y1?y2?


    解題思路

    如果對于一個(x,y)(x,y)(x,y)對于兩個(x1,y1)(x_1,y_1)(x1?,y1?)(x2,y2)(x_2,y_2)(x2?,y2?)如果后者更大那么有
    x2x+y2y>x1x+y1y?yx≤x2?x1y2?y1x_2x+y_2y>x_1x+y_1y\Rightarrow \frac{y}{x}\leq \frac{x_2-x_1}{y_2-y_1}x2?x+y2?y>x1?x+y1?y?xy?y2??y1?x2??x1??
    好像和斜率有關,可以維護凸殼來做,因為yyy可能是負數,如果是負數的時候就要求的是下凸殼了,所以兩個凸殼都要維護。

    因為強制在線所以上不了傳統藝能CDQ\text{CDQ}CDQ

    那怎么動態維護區間凸殼,平衡樹支持動態插入但不支持區間問題。所以考慮線段樹,因為一個位置修改了之后就不會再修改,而且是從左往右加的,可以利用這個性質。

    每次我們修改一個位置后,如果一個區間[L,R][L,R][L,R]的節點內已經插入了R?L+1R-L+1R?L+1個向量(也就是都插完了)的話就直接把它的兩個兒子的凸殼合并起來。

    然后詢問的時候分成lognlog\ nlog?n個區間詢問的答案取最大值就好了。

    合并凸殼的是用歸并排序的話時間復雜度O(nlog?n)O(n\log n)O(nlogn)


    code

    #include<cstdio> #include<cstring> #include<algorithm> #include<vector> #define ll long long using namespace std; struct point{ll x,y;point(ll xx=0,ll yy=0){x=xx;y=yy;return;} }z; point operator+(point x,point y) {return point(x.x+y.x,x.y+y.y);} point operator-(point x,point y) {return point(x.x-y.x,x.y-y.y);} ll operator^(point x,point y) {return x.x*y.y-x.y*y.x;} ll operator*(point x,point y) {return x.x*y.x+x.y*y.y;} bool operator<(point x,point y) {return (x.x==y.x)?x.y<y.y:x.x<y.x;}const ll N=4e5+10; char pe[3]; ll n,num,siz[N<<2]; vector<point> v[N<<2][2],tmp;void Make(ll x){ll ls=x*2,rs=x*2+1;for(ll k=0;k<2;k++){ll i=0,j=0,l1=v[ls][k].size()-1,l2=v[rs][k].size()-1;tmp.clear();while(i<=l1||j<=l2){if(i>l1||(j<=l2&&v[rs][k][j]<v[ls][k][i]))tmp.push_back(v[rs][k][j]),j++;else tmp.push_back(v[ls][k][i]),i++;}ll cnt=0;for(ll i=0;i<tmp.size();i++){while(cnt>1&&((v[x][k][cnt-1]-v[x][k][cnt-2])^(tmp[i]-v[x][k][cnt-1]))>=0)v[x][k].pop_back(),cnt--;v[x][k].push_back(tmp[i]);cnt++;}}return; } ll Calc(ll x,point p){ll f=0;if(p.y<0)p=z-p,f^=1;ll l=0,r=v[x][f].size()-2;while(l<=r){ll mid=(l+r)>>1;point tmp=v[x][f][mid+1]-v[x][f][mid];tmp.x*=-1;if(p.x*tmp.x>=p.y*tmp.y)r=mid-1;else l=mid+1;}return p*v[x][f][l]; } void Change(ll x,ll L,ll R,ll pos,point p){if(L==R){v[x][0].push_back(p);v[x][1].push_back(z-p);return;}ll mid=(L+R)>>1;siz[x]++;if(pos<=mid)Change(x*2,L,mid,pos,p);else Change(x*2+1,mid+1,R,pos,p);if(siz[x]==R-L+1)Make(x); } ll Ask(ll x,ll L,ll R,ll l,ll r,point p){if(L==l&&R==r)return Calc(x,p);ll mid=(L+R)>>1;if(r<=mid)return Ask(x*2,L,mid,l,r,p);if(l>mid)return Ask(x*2+1,mid+1,R,l,r,p);return max(Ask(x*2,L,mid,l,mid,p),Ask(x*2+1,mid+1,R,mid+1,r,p)); } void dc(ll &x,ll lastans) {if(pe[0]=='E')return;x=x^(lastans&0x7fffffff);return; } signed main() {scanf("%lld%s",&n,pe);ll last=0;for(ll i=1;i<=n;i++){char op[3];ll x,y,l,r;scanf("%s%lld%lld",op,&x,&y);dc(x,last);dc(y,last);if(op[0]=='A'){++num;Change(1,1,n,num,point(x,y));}else{scanf("%lld%lld",&l,&r);dc(l,last);dc(r,last);printf("%lld\n",last=Ask(1,1,n,l,r,point(x,y)));}}return 0; }

    總結

    以上是生活随笔為你收集整理的P3309-[SDOI2014]向量集【线段树,凸壳】的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 国产精品美女久久久久久久久 | 天堂影视在线观看 | 日本wwww视频| 美女被草出白浆 | 五月婷婷网 | 好男人www社区 | 久久亚洲私人国产精品va | 欧美天堂在线观看 | 欧美人在线 | 亚洲一区二区三区免费看 | 久草美女| 小宝贝真紧h军人h | 丰满人妻一区二区三区53 | 亚洲一区在线播放 | 饥渴放荡受np公车奶牛 | 91亚洲精品在线观看 | 色婷婷综合久久久久中文 | 久久免费看视频 | 日本在线小视频 | 欧美日韩视频网站 | 波多野结衣二区三区 | 亚洲免费一区视频 | 麻豆观看 | 欧美亚洲色综久久精品国产 | 污污的视频软件 | 91在线看 | 日韩精品一区二区在线 | 香港台湾日本三级大全 | 黄黄视频在线观看 | 国产欧美日韩在线 | 国产乱子伦一区二区 | 国内精品视频在线播放 | 雷电将军和丘丘人繁衍后代视频 | 成人福利一区二区 | 星空大象mv高清在线观看免费 | 伊人网在线 | 波多野结衣潜藏淫欲 | 欧美激情性生活 | 国产精品100 | 日本成人免费视频 | 91a视频 | www.一区二区三区四区 | 日本一级网站 | 夜夜夜夜夜操 | 美女131爽爽爽做爰视频 | 阿娇全套94张未删图久久 | 国产亚洲精品久久 | 婷婷在线看 | 国产精品精品久久久久久 | 亚洲午夜免费 | 日本aⅴ在线观看 | 国产成人免费看一级大黄 | 欧美特一级 | 亚洲一二三视频 | 国产一级啪啪 | 不卡的一区二区 | 久久精品人妻av一区二区三区 | 宅男噜噜噜 | 国产欧美精品一区 | 国产麻豆乱码精品一区二区三区 | 成人影视免费观看 | 成人xxxxx| 97超碰免费 | 香蕉av一区二区 | 香港三级韩国三级日本三级 | 国产欧美综合一区二区三区 | 国产乱人伦app精品久久 | 久草福利免费 | 国产精品一区二区小说 | 亚洲高清视频免费观看 | 国产成人av在线 | 国产啊v在线观看 | 丝袜制服影音先锋 | 东京热加勒比无码少妇 | 伦理片一区二区三区 | 久久久久久久极品 | 国产二区视频在线观看 | 五月天一区二区三区 | 极品女神无套呻吟啪啪 | 91蜜桃网| 中文字幕人妻一区二区三区在线视频 | 超碰人人爱人人 | 国产乱子伦视频一区二区三区 | 免费精品久久 | 欧美成人免费观看 | 精品一区二区三区视频日产 | 男生尿隔着内裤呲出来视频 | 狠狠干2021 | 免费视频久久久 | 亚州av免费 | 亚洲青草视频 | 亚州av网| 黄色美女免费网站 | 黄色成人小视频 | 青青国产精品 | 日韩欧美网站 | 91精品免费视频 | 日本色呦呦 | 蜜桃av噜噜一区二区三区小说 |