百度2019秋招 混戰世界

2022-05-17 21:43:47 字數 1046 閱讀 8569

題目分析:假設乙個人的物理攻擊為a,法術攻擊為b,如果進入陣營1貢獻是a,如果進入陣營2貢獻是b,進入陣營3貢獻為(a+b)/2;

現在要考慮進入哪個陣營貢獻最大就去哪個陣容,如果所有的人都是這麼選擇就可以得到全域性的最大和。

比較常用的就是做差:

對陣營1的貢獻 - 對陣營2的貢獻 =   a - b 

對陣營1的貢獻 - 對陣營3的貢獻 =  (a - b)/ 2 

對陣營3的貢獻 - 對陣營2的貢獻 =  (a - b)/ 2

a-b>0得到   對陣營1的貢獻 > 對陣營2的貢獻

對陣營1的貢獻 > 對陣營3的貢獻

對陣營3的貢獻 > 對陣營2的貢獻

從而得到:對陣營1的貢獻 > 對陣營3的貢獻 > 對陣營2的貢獻

換句話說就是a-b越大此時選擇的順序就應該是 :陣營1 > 陣營3> 陣營2

所以就需要對陣列a[i]-b[i]進行排序,但是需要記住排序後最大到最小的序號值而不是a[i] - b[i] .

c++**如下:

#include using

namespace

std;

const

int n=1e6+5

;int a[n],b[n],c[n];//

物理攻擊,魔法攻擊

bool cmp(int l,int r)

intmain()

for(int i=1;i<=n;i++)

for(int i=1;i<=n;i++)

sort(c+1,c+1+n,cmp);

int k=n/3

;

for(int i=1;i<=n;i++)

else

if(i<=2*k)

else

}printf(

"%.2lf

",ans);

return0;

}

百度秋招小測試

1 標準盒模型和ie盒模型的區別 標準盒模型是包括margin padding border content 而content不包含border padding ie盒模型也包括margin padding border content 而content包含border padding 例項 mar...

百度2017秋招筆試真題(一)

1.買帽子 分析 stl set,去重後取第三小的值即可。注意輸出 1的情形 set中的元素個數 3。include include using namespace std int n int a 55 sethat set iterator it int main if hat.size 3 co...

百度2017秋招筆試程式設計題

二舅要蓋房,小明幫忙搬磚,準備幹 n天。二舅說 每天你可以選輕活 重活 不幹活。怕你累著了,只有前一天沒幹活才能乾重活。當然輕活錢少,重活錢多,而且每天還會變。理工科的小明準備設計乙個演算法,看怎樣才能拿到最多錢。輸入 numofdays 幹的天數 n,整數 tasklist 整數列表,第一列幹輕活...