CSU 1971 安排座位

2021-08-04 13:40:30 字數 1273 閱讀 7624

submit page

summary

time limit: 2 sec

memory limit: 128 mb

submitted: 114

solved: 83

一年一度的暑期集訓又開始了!

作為老人的小明非常憂傷,因為他要給所有的新人安排座位。由於安排給新人的座位上的機器可能有各種毛病(比如很卡,上不了網之類的),這些問題的出現都會讓新人的訓練熱情下降。為了讓更多的新人能夠留下,小明自然希望大家的熱情都是高漲的。

對於每個新人,都會有乙個熱情值ai,而每個座位都會有乙個熱情耗損值bi,如果第i個新人坐在第j個位置,那這位同學對整個集訓隊熱情值的貢獻就是(ai - bj) ^2。現在給出所有新人的熱情值,所有位置的熱情耗損值,你能告訴小明採用最合理的位置安排方式後,能得到的最大的集訓隊熱情值是多少?

當然,每個位置只能坐乙個新人,每個新人也必須坐在某個位置上

第一行乙個數字t表示資料組數

每組資料報括三行:

第一行為乙個整數n,表示新人的人數

第二行為n個整數,第i個數字表示第i個同學的熱情值ai

第三行為n個整數,第i個數字表示第i個座位的熱情耗損值為bi

其中t<=10 , 0<=ai , bi <=100, 1<=n<=100000

輸出一行只包含乙個整數,表示集訓隊熱情值的最大值

2

32 5 1

0 0 1

32 5 1

3 2 5

29

26

2023年7月月賽

簡單貪心,可以把熱情值從大到小排序,熱情損耗值從小到大排序,用熱情值大的去匹配損耗值小的,從而使得最後的熱情值得到最大值

#include #include #include #include #include #include #include #include #include #include const double eps=1e-8;

const double pi=acos(-1.0);

using namespace std;

const int maxn=1e5+5;

int a[maxn],b[maxn];

bool cmp(int a,int b)

int main()

{ int t;

scanf("%d",&t);

while(t--){

int n;

scanf("%d",&n);

for(int i=0;i

1971 安排座位

time limit 2 sec memory limit 128 mb submitted 331 solved 227 一年一度的暑期集訓又開始了!作為老人的小明非常憂傷,因為他要給所有的新人安排座位。由於安排給新人的座位上的機器可能有各種毛病 比如很卡,上不了網之類的 這些問題的出現都會讓新人...

COJ1971 安排座位

submit page summary time limit 2 sec memory limit 128 mb submitted 114 solved 83 description 一年一度的暑期集訓又開始了!作為老人的小明非常憂傷,因為他要給所有的新人安排座位。由於安排給新人的座位上的機器可能...

排座位 (25 分)

7 40 排座位 25 分 布置宴席最微妙的事情,就是給前來參宴的各位賓客安排座位。無論如何,總不能把兩個死對頭排到同一張宴會桌旁!這個艱鉅任務現在就交給你,對任何一對客人,請編寫程式告訴主人他們是否能被安排同席。輸入第一行給出3個正整數 n 100 即前來參宴的賓客總人數,則這些人從1到n編號 m...