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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

Codeforces 685C Optimal Point (二分、不同类型距离的相互转换)

發(fā)布時(shí)間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces 685C Optimal Point (二分、不同类型距离的相互转换) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接

https://codeforces.com/contest/685/problem/C

題解

我怎么又還差最后一步的時(shí)候放棄了然后往別的方向上想了一小時(shí)才發(fā)現(xiàn)這個(gè)思路能做……

首先二分答案,轉(zhuǎn)化為所有點(diǎn)半徑為\(mid\)的曼哈頓距離區(qū)域內(nèi)是否有交。
考慮二維問(wèn)題,顯然可以用曼哈頓轉(zhuǎn)切比雪夫來(lái)做,把\((x,y)\)變成\((x+y,x-y)\)那么原來(lái)兩點(diǎn)的曼哈頓距離就等于后來(lái)兩點(diǎn)的切比雪夫距離。考慮一下這個(gè)做法的證明: \[|x_1-x_2|+|y_1-y_2|=\max(x_1-x_2+y_1-y_2,x_1-x_2-y_1+y_2,-x_1+x_2+y_1-y_2,-x_1+x_2-y_1+y_2)=\max(|(x_1+y_1)-(x_2+y_2)|,|(x_1-y_1)-(x_2-y_2)|)\]
三維的問(wèn)題也可以用類似的思路。\[|x_1-x_2|+|y_1-y_2|+|z_1-z_2|=\max(|(x_1+y_1+z_1)-(x_2+y_2+z_2)|,|(x_1-y_1+z_1)-(x_2-y_2+z_2)|,|(x_1+y_1-z_1)-(x_2+y_2-z_2)|,|(x_1-y_1-z_1)-(x_2-y_2-z_2)|)\]于是我們可以把\((x,y,z)\)變成一個(gè)四維的坐標(biāo)\((x+y+z,x-y+z,x+y-z,x-y-z)\), 曼哈頓距離就變成了切比雪夫距離,求一下區(qū)間交就行了。但是有以下兩個(gè)附加限制:

(1) 新的坐標(biāo)\((x,y,z,w)\)必須滿足\(w=y+z-x\).

(2) 由于題目里要求所有坐標(biāo)都是整數(shù),新的坐標(biāo)\((x,y,z,w)\)必須滿足\(y-x,z-x\)都是\(2\)的倍數(shù)。
那么可以枚舉\(x,y,z,w\)都是奇數(shù)或偶數(shù)的情況,分別求一下在\(x,y,z\)取值范圍內(nèi)\(y+z-x\)的最大最小值,然后和\(w\)的取值范圍求交,調(diào)整一下即可求解。
時(shí)間復(fù)雜度\(O(n\log C)\), \(C\)為值域。

代碼

#include<bits/stdc++.h> #define llong long long #define mkpr make_pair #define riterator reverse_iterator using namespace std;inline int read() {int x = 0,f = 1; char ch = getchar();for(;!isdigit(ch);ch=getchar()) {if(ch=='-') f = -1;}for(; isdigit(ch);ch=getchar()) {x = x*10+ch-48;}return x*f; }const int N = 1e5; const llong INF = 6e18+1; struct Point {llong x,y,z,w; } a[N+3]; int n;llong fun(llong x,llong y,llong z) {return x&1?x+z:x+y;}bool check(llong mid,bool typ=false) {llong lx = -INF,ly = -INF,lz = -INF,lw = -INF,rx = INF,ry = INF,rz = INF,rw = INF;for(int i=1; i<=n; i++){lx = max(lx,a[i].x-mid); rx = min(rx,a[i].x+mid);ly = max(ly,a[i].y-mid); ry = min(ry,a[i].y+mid);lz = max(lz,a[i].z-mid); rz = min(rz,a[i].z+mid);lw = max(lw,a[i].w-mid); rw = min(rw,a[i].w+mid);}if(lx>rx||ly>ry||lz>rz||lw>rw) return false;llong lx2 = fun(lx,0,1),ly2 = fun(ly,0,1),lz2 = fun(lz,0,1),lw2 = fun(lw,0,1),rx2 = fun(rx,0,-1),ry2 = fun(ry,0,-1),rz2 = fun(rz,0,-1),rw2 = fun(rw,0,-1);if(lx2<=rx2&&ly2<=ry2&&lz2<=rz2&&lw2<=rw2){llong lw3 = ly2+lz2-rx2,rw3 = ry2+rz2-lx2;if(max(lw2,lw3)<=min(rw2,rw3)){llong w = max(lw2,lw3),x = rx2,y = ly2,z = lz2;if(typ){if(y+z-x<w) {y += min(ry2-ly2,w-(y+z-x));}if(y+z-x<w) {z += min(rz2-lz2,w-(y+z-x));}if(y+z-x<w) {x -= min(rx2-lx2,w-(y+z-x));}llong xx = (y+z)/2ll,yy = (x-y)/2ll,zz = (x-z)/2ll;printf("%I64d %I64d %I64d\n",xx,yy,zz);}return true;}}lx2 = fun(lx,1,0),ly2 = fun(ly,1,0),lz2 = fun(lz,1,0),lw2 = fun(lw,1,0),rx2 = fun(rx,-1,0),ry2 = fun(ry,-1,0),rz2 = fun(rz,-1,0),rw2 = fun(rw,-1,0);if(lx2<=rx2&&ly2<=ry2&&lz2<=rz2&&lw2<=rw2){llong lw3 = ly2+lz2-rx2,rw3 = ry2+rz2-lx2;if(max(lw2,lw3)<=min(rw2,rw3)){if(typ){llong w = max(lw2,lw3),x = rx2,y = ly2,z = lz2;if(y+z-x<w) {y += min(ry2-ly2,w-(y+z-x));}if(y+z-x<w) {z += min(rz2-lz2,w-(y+z-x));}if(y+z-x<w) {x -= min(rx2-lx2,w-(y+z-x));}llong xx = (y+z)/2ll,yy = (x-y)/2ll,zz = (x-z)/2ll;printf("%I64d %I64d %I64d\n",xx,yy,zz);}return true;}}return false; }int main() {int T; scanf("%d",&T);while(T--){scanf("%d",&n);for(int i=1; i<=n; i++){llong x,y,z; scanf("%I64d%I64d%I64d",&x,&y,&z);a[i].x = x+y+z,a[i].y = x-y+z,a[i].z = x+y-z,a[i].w = x-y-z;}llong left = 0ll,right = 3e18;while(left<right){llong mid = left+(right-left>>1);if(check(mid)) {right = mid;}else {left = mid+1;}} // printf("ans=%I64d\n",right);check(right,true);}return 0; }

總結(jié)

以上是生活随笔為你收集整理的Codeforces 685C Optimal Point (二分、不同类型距离的相互转换)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 老公吃小头头视频免费观看 | 日韩在线免费 | 在线免费观看黄色网址 | 国产激情视频 | 污黄视频在线观看 | 欧美日韩午夜激情 | 美女131爽爽爽 | 久久久精选 | 一区二区三区中文字幕在线观看 | 一级黄网站 | 免费在线看黄网址 | 成人在线视屏 | 午夜大片在线观看 | 在线观看中文字幕第一页 | 91免费高清在线观看 | 黄片毛片在线 | 日韩高清一区 | 91亚色在线观看 | 精品在线视频播放 | 99久久精品日本一区二区免费 | 秋霞影院午夜丰满少妇在线视频 | 欧美日韩色图片 | 91国偷自产一区二区三区老熟女 | 性欧美17一18内谢 | 欧美日韩在线免费观看 | 日韩色图在线观看 | 久久一区欧美 | 国产高清精品在线 | 日韩中文三级 | 国产视频xxxx | 黄色小视频免费 | 日本一区二区视频在线 | 中国黄色一级视频 | 欧美日韩在线精品 | 91日韩在线| 久草福利网| 国产精品高清网站 | 国产精品传媒麻豆hd | 久久久亚洲国产 | 日韩美女一区二区三区 | 亚洲一二三级 | 91视频在线免费观看 | 亚洲欧洲日韩综合 | 蜜臀aⅴ国产精品久久久国产老师 | 国产午夜在线一区二区三区 | 亚洲视频一区二区三区四区 | 美女视频91| 日本少妇18p | 欧美女人交配视频 | 中文字幕2区 | 国产女人18毛片水真多18精品 | 抱着老师的嫩臀猛然挺进视频 | 在线观看免费国产视频 | 免费看黄色网址 | 亚州av综合色区无码一区 | 秋霞av鲁丝片一区二区 | 国产第一页在线播放 | 日韩av一区在线观看 | 欧美性猛交xxxx乱大交3 | 成年人黄色大全 | 欧美成人精品欧美一级乱黄 | 欧美小视频在线 | 妖精视频一区二区三区 | 亚洲高清视频免费观看 | 精品日本一区二区 | 欧美日一区二区三区 | 成人av入口 | 亚洲精品91 | 青青青在线视频观看 | 护士的小嫩嫩好紧好爽 | 国产精品一二区在线观看 | 国产麻豆一精品一男同 | 日韩少妇视频 | 婷婷俺来也 | 黄色av网站在线免费观看 | 992tv人人草 国产第6页 | 色视频网站 | 日本精品一二区 | 人妻久久一区二区三区 | √天堂资源地址在线官网 | 久久久性色精品国产免费观看 | 国产精品自拍网站 | 久久国产精品精品国产 | 黄色片子看看 | 变态另类一区二区 | 久久久久无码国产精品 | 国产精品乱码久久久久久 | 国产美女作爱视频 | 九九九九色 | 国产精品自在线 | 久久久精品人妻一区二区三区四 | 国产 日韩 欧美 成人 | 人妻一区二区三 | 久久久精品蜜桃 | 手机在线一区 | 亚洲天堂日韩av | 玖玖综合网 | 欧美高清一区二区三区四区 | 双腿张开被9个男人调教 |