NOIP模擬賽 護花

2022-05-16 06:08:50 字數 1055 閱讀 5652

【題目描述】

約翰留下他的n(n<=100000)只奶牛上山採木.他離開的時候,她們像往常一樣悠閒地在草場裡吃草.可是,當他回來的時候,他看到了一幕慘劇:牛們正躲在他的花園裡,啃食著他心愛的美麗花朵!為了使接下來花朵的損失最小,約翰趕緊採取行動,把牛們送回牛棚. 牛們從1到n編號.第i隻牛所在的位置距離牛棚ti(1≤ti≤2000000)分鐘的路程,而在約翰開始送她回牛棚之前,她每分鐘會啃食di(1≤di≤100)朵鮮花.無論多麼努力,約翰一次只能送乙隻牛回棚.而運送第第i隻牛事實上需要2ti分鐘,因為來回都需要時間.    寫乙個程式來決定約翰運送奶牛的順序,使最終被吞食的花朵數量最小.

【輸入格式】

第1行輸入n,之後n行每行輸入兩個整數ti和di

【輸出格式】

乙個整數,表示最小數量的花朵被吞食

【樣例輸入】

3 12 5

2 33 2

4 11 6

【樣例輸出】

【樣例解釋】

約翰用6,2,3,4,1,5的順序來運送他的奶牛 

貪心,類似於國王遊戲,只不過國王遊戲需要高精度(還不去填坑

設s=∑(di)

ans=min

設2t[i]*(s-d[i])<2t[j]*(s-d[j])

可得t[i]/t[j]<(s-d[j])/(s-d[i])

顯然t[i]兩式相乘t[i]*d[j]證畢

1 #include2 #include3

using

namespace

std;45

struct

data

6q[100001];9

long

long n,sum=0,ans=0;10

11bool

cmp(data a,data b)

1215

16int

main()

1724 sort(q+1,q+n+1

,cmp);

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

2630 cout31return0;

32 }

noip模擬賽 密碼

表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...

NOIP模擬賽 老師

題目描述 一座有n層的教學樓裡有一些學生,第i 0 i n 層有studentsi個學生。你被給定了乙個數k,如果第i層有x個學生,那麼這一層需要 x k 個老師。你可以調整每個學生的樓層,但是每個學生至多只能調整一層,就是說第i層的學生只能去第i 1層 如果有的話 第i層 第i 1層 如果i 1 ...

NOIP模擬賽 分錢

題目描述 兩個人在街上撿到了一些錢,這些錢共有n張,他們等了很久也沒有等來失主,於是決定把錢平分。但錢可能無法平分。他們先把能夠平分的錢盡量先平分了,使得剩下不能平分的錢盡量少。這些不能平分的錢怎麼辦呢他?他們決定拿去賭場裡面賭一把。他們運氣太好了,那些不能平分的錢變成了雙倍,於是他們就把那個錢分了...