題意:給定x軸上的n個點的座標,按順序從左到右給出,現在要使得每個點的間距相同,可以移動每個點的座標,但是不能改變點的相對順序。求總共最少需要移動多少距離和移動後點的座標。
思路:一開始想到用二分搜尋,然後列舉乙個點為不動點,但是這樣我不知道該怎麼去改變l、r的值了。。
仔細想想,這道題目所對應的模型圖應該是這樣的:
中間存在一點可以使移動距離最短,兩邊很大,因為間距設定的太小和太大都需要移動很多距離。這道題目可以用三分查詢做。
三分查詢是這樣的:
mid=(l+r)/2, mmid=(mid+r)/2
接下去去計算mid和mmid這兩個點所對應值,如果cla(mid)>cla(mmid),那麼l=mid,否則的話,r=mmid。
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include11using
namespace
std;
12 typedef long
long
ll;13 typedef pairpll;
14const
int inf = 0x3f3f3f3f;15
const
int maxn=400+5;16
const
double eps=1e-10;17
18int
n;19
intx[maxn];
2021
double
min;
22double
ans[maxn];
23double
p[maxn];
2425
double solve(double
dis)
2637
for(int j=i+1;j<=n;j++)
3842
43if(tmp
4448
if(tmp
49 tmmp =tmp;50}
51return
tmmp;52}
5354
intmain()
5577
78 printf("
%.4f\n
",min);
79for(int i=1;i<=n;i++)
8083}84
return0;
85 }
gym初級 初始gym環境(二)
import gym env gym.make cartpole v0 print env.action space print env.observation space 輸出結果為 discrete 2 box 4,意思是動作空間中的動作是離散 discrete 的2個動作,狀態空間中的狀態是4...
gym訓練記錄
upd 12.18 老年選手也該看看歐洲的acm了,不然以後就再也沒有機會了 problem a 挺牛逼的結論,與y軸平行的直線最多隻會經過 o log c 個點,拿乙個線段樹維護一下每個x對應哪些圓即可。複雜度 o n log n log c o n problem b 對每種圖討論即可 prob...
微星GS60 UHD 10 12 4 黑蘋果教程
4k補丁 6代i7本教程 mac關機後重啟問題 在clover acpi頁面勾選fixshutdown usb驅動usb遮蓋器 usbinjectall.kext bcm94352z wifi 藍芽驅動 wifi kernel and kext patches fakepciid broadcom ...