\operatorname
jzoj13
25一年一度的高一yl杯超級籃球賽開賽了。當然,所謂超級,意思是參賽人數可能多餘 5
55 人。小三對這項籃球非常感興趣,所以一場都沒有落下。每個中午都準時守侯在籃球場看比賽。經過乙個星期的研究,小三終於對籃球的技戰術找到了一絲絲感覺了。他發現打yl杯的每個班都有一套相似的進攻戰術:
控球後衛帶球到前場,找到乙個最佳攻擊點 (x,
y)
( x , y )
(x,y
)所有除控衛以外的隊員都從各自的當前位置迅速向 (x,
y)
( x , y )
(x,y
) 移動
控球後衛根據場上情況組織進攻
這個戰術對於一般情況是非常奏效的,但是每個隊員畢竟不像小三一樣每天精力過剩,每個隊員都有乙個疲勞指數 w
ww ,顯然對於每個隊員的移動需要消耗一些能量。
假設乙個隊員從位置 (x1
,y1)
( x1 , y1 )
(x1,y1
) 移動到 (x,
y)
( x , y )
(x,y
) 的能量消耗為 w∗(
abs(
x−x1
)+ab
s(y−
y1))
w * (abs ( x - x1 ) +abs ( y - y1 ) )
w∗(abs
(x−x
1)+a
bs(y
−y1)
) , 這裡 abs
absab
s 為絕對值函式。那麼我們希望整個隊伍一次進攻的能量消耗當然是越少越好。顯然能量消耗的多少直接取決於控球後衛對於攻擊點 (x,
y)
( x , y )
(x,y
) 的選擇。
因為參賽人數眾多,所以小三希望你能編寫乙個程式,即幫他找出某個時刻的最佳攻擊點。
第一行:乙個整數 n
nn ,表示籃球隊人數
第二行:一共 n
nn 個整數,其中的第 i
ii 個數 w
iw_i
wi 表示第i個隊員的疲勞指數。
第 3 ∼n
+2
3\sim n+2
3∼n+
2行:每一行兩個整數x和y,其中的第 i+2
i+2i+
2 行,表示第 i
ii 個隊員的當前位置的橫座標和縱座標。
乙個實數。表示所有隊員集合到最佳攻擊位置的能量消耗總和,答案保留兩位小數。
110
0
0.00
第一題 n
<
=50000,x
,y
n<=50000,x,y
n<=5
0000
,x,y
都在longint範圍內。
這道題可以用貪心來做。
由題目得到 x
xx 軸其實和 y
yy 軸沒有關係,我們只需要分別讓所有的 xi−
x1
x_i−x1
xi−x1
的和與所有的 yi−
y1
y_i−y1
yi−y1
的和加起來分別最少。那我們就可以分開找到最佳攻擊位置的 x
xx 軸座標和 y
yy 軸座標。
至於怎麼判斷在橫向或者縱向中,哪乙個位置是最佳的,我們其實可以發現就是要讓這個點兩邊所有的點的疲勞值的和最小。
至於怎麼找到這乙個位置,就從左到右(或者從下往上)乙個乙個找點,然後把這個點的疲勞值加到乙個變數裡面,當這個變數超過了所有人疲勞值的和的一半的時候,當前列舉到的點的位置就是最優的位置。
最後,我們只需要用過上面求隊員能量消耗的公式,列舉每乙個人,算出他的能量消耗。那麼所有人能量消耗的總和就是答案了。
有一點要注意的是,因為 x,y
x,yx,
y 都在longint範圍內,所以要有關座標的變數都要開long long。
#include
#include
#define ll long long
using
namespace std;
struct nodea[
50001];
int n, sum, now;
ll ansx, ansy, ans;
bool
cmp1
(node x, node y)
bool
cmp2
(node x, node y)
intmain()
for(
int i =
1; i <= n; i++
)scanf
("%lld %lld"
,&a[i]
.x,&a[i]
.y);
//讀入
sort
(a +
1, a + n +
1, cmp1)
;//按x軸排序
for(
int i =
1; i <= n; i++)}
now =0;
//初始化
sort
(a +
1, a + n +
1, cmp2)
;//按y軸排序
for(
int i =
1; i <= n; i++)}
for(
int i =
1; i <= n; i++
) ans +
=(ll)a[i]
.w *
(abs
(ansx - a[i]
.x)+
abs(ansy - a[i]
.y))
;//求出每一人的疲勞值
printf
("%lld.00"
, ans)
;//輸出
return0;
}
YL杯超級籃球賽 Standard IO
題意 description 一年一度的高一yl杯超級籃球賽開賽了。當然,所謂超級,意思是參賽人數可能多餘5人。小三對這項籃球非常感興趣,所以一場都沒有落下。每個中午都準時守侯在籃球場看比賽。經過乙個星期的研究,小三終於對籃球的技戰術找到了一絲絲感覺了。他發現打yl杯的每個班都有一套相似的進攻戰術 ...
YL杯超級籃球賽 紀中 1325
題目大意 一年一度的高一yl杯超級籃球賽開賽了。當然,所謂超級,意思是參賽人數可能多餘5人。小三對這項籃球非常感興趣,所以一場都沒有落下。每個中午都準時守侯在籃球場看比賽。經過乙個星期的研究,小三終於對籃球的技戰術找到了一絲絲感覺了。他發現打yl杯的每個班都有一套相似的進攻戰術 1 控球後衛帶球到前...
t017 YL杯超級籃球賽
time limit 1 second memory limit 256 mb 問題描述 一年一度的高一yl杯超級籃球賽開賽了。當然,所謂超級的意思是參賽人數可能多於5人。小三對這場籃球賽非常感興趣,所以一場都沒有落下。每天中午都閃時守候在籃球場看比賽。經過乙個星期的研究,小三終於對籃球的技戰術找到...