NOIP第二輪模擬 牛的雜技

2021-08-21 14:54:04 字數 1390 閱讀 2822

【問題描述】

farmer john養了n(1<=n<=50,000)頭牛,她們已經按1~n依次編上了號。fj所不知道的是,他的所有牛都夢想著從農場逃走,去參加馬戲團的演出。可奶牛們很快發現她們那笨拙的蹄子根本無法在鋼絲或晃動的的鞦韆上站穩(她們還嘗試過把自己裝在大炮裡發射出去,但可想而知,結果是悲慘的)。最終,她們決定練習一種最簡單的雜技:把所有牛都摞在一起,比如說,第一頭牛站在第二頭的身上,同時第二頭牛又站在第三頭牛的身上…最底下的是第n頭牛。(牛果然沒什麼創造力)

每頭牛都有自己的體重以及力量,編號為i的奶牛的體重為w_i(1<=w_i<=10,000),力量為s_i(1<=s_i<=1,000,000,000)。當某頭牛身上站著另一些牛時它就會在一定程度上被壓扁,我們不妨把它被壓扁的程度叫做它的壓扁指數。對於任意的牛,她的壓扁指數等於摞在她上面的所有奶牛的總重(當然不包括她自己)減去它的力量。奶牛們按照一定的順序摞在一起後,她們的總壓扁指數就是被壓得最扁的那頭奶牛的壓扁指數。你的任務就是幫助奶牛們找出乙個摞在一起的順序,使得總壓扁指數最小。

【輸入】

第1行: 乙個單獨的正整數n。

第2..n+1行: 第i+1行給出編號為i的奶牛的體重與力量w_i和s_i,用乙個空格隔開。

【輸出】

第1行: 乙個整數,表示奶牛們總壓扁指數的最小值。

【樣例】

輸入

3 10 3

2 5

3 3

輸出

2 【說明】

把重量為10的那頭牛放在最底下,於是她的壓扁指數就是2+3-3=2。其他2頭牛的壓扁指數都小於這個值。

【分析】

此題與noip2012 國王遊戲頗有幾分神似,證明方式也不盡相同。比較任意兩頭牛交換位置,證明按照某種關鍵字排序,整個序列的值一定是最小的。

此題的優秀之處在於沒有高精度且為簡單的加法。

糟糕之處在於第一頭牛也會被壓扁,且壓扁指數可以為負數

下方**:

#include

#include

#include

#include

using

namespace

std;

const

int maxn=50100;

struct node

p[maxn];

int n;

bool cmp(node x,node y)

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

int ans=-(1

<<30),res=0;

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

cout

0;}

如有不足之處,歡迎批評指正。

CSP S 第二輪總結

csp s第二輪總結 這真的是入門考試 滿臉疑惑,我自閉了。先說第一題,儒略日。題幹不多,也就幾十行大概這就是看題一小時,做題兩小時吧。而且最後幾組資料,100000個,年份 10 9,這是給人做的?為了這組資料,我足足試了兩個多小時,最後也不知a沒a 大體思路就是前面四年一組,到公元1600年往後...

GDOI2017模擬第二輪 4 15 4 17

round 1 4.15 今天發揮。不好不差吧,一般般,基本沒有失分,但是相對的也沒有爆分。原以為t3可以搞一波大事情結果wa了,其實我拍出錯了但是並不知道 錯了,肉眼調不出錯,又是大資料,我小資料全對,就是大資料炸了,很不爽。第乙個小時拿來看題目。感覺t1是神題,先放著。t2的話,打表的分數挺多啊...

GDOI2017模擬第二輪總結

這場一上來就開始想t1,想了一段時間還是沒什麼思路,然後剛t3,感覺bitset可做。但是後面發現bitset只能處理空降而不能處理移動,於是就趕緊先打了乙個60分暴力。t2打表水了60,然後t4打了乙個20分暴力。還剩下1.5h回過頭來做t1,打了一半發現有問題,最後只好打30分暴力。主要是t1思...