題目描述
背景又到了吃大閘蟹的季節,黃老師想吃大閘蟹,於是叫傻雞去抓大閘蟹~
描述現有 n 只大閘蟹,每個在乙個二維座標上,保證沒有任何兩個大閘蟹重合。傻雞伸手抓大
閘蟹了,他怕大閘蟹的攻擊,當他捉乙隻大閘蟹時,其他大閘蟹都朝這只運動(左邊的向右,
右邊的向左,x 座標相同的不動)。
當然,大閘蟹只會在 x方向上橫行,每秒一單位長度。傻雞捉乙隻大閘蟹一秒鐘,當本秒
末若某乙隻大閘蟹與傻雞的手同 x 座標,傻雞的行動失敗。問:怎樣做才能抓完 n 只大閘
蟹?輸入
輸入格式
輸入第一行:n。
第二行有 2n 正整數,相鄰兩個用一空格分開,第 2i-1 和第 2*i 個數表示編號為 i 的大閘
蟹的 x,y 作標。
輸入保證按先 x 後 y 的遞增序排列。
輸出輸出格式
輸出:一共 n 行,每行乙個大閘蟹編號,表示傻雞取大閘蟹的先後序列。如有多解,輸出第乙個
編號最小的,如果第乙個編號相同,輸出第二個編號最大的,再相同,輸出第三個編號最
小的…樣例輸入
21 3 4 2
樣例輸出12
提示限制
每個測試點一秒
提示輸入資料保證有解
n<=5000.
0<=所有座標<=2^31-1
題解:證明:
因為輸入資料保證有解,假設有兩隻螃蟹 a,b 初始橫座標為 x1,x2 且 x2-x1=1,則在任
意時刻 a,b 都將向同一方向運動,即永遠不能抓 a 和 b,與題意不符。
那麼有沒有可能兩隻螃蟹在中途走到一起?設 x2-x1=2,由上面的證明 x1+1 的位置
上無螃蟹,即 x1,x2 不能向對方移動。
因此任何乙隻螃蟹在任何時刻都能被抓到。證畢。
方案:從兩頭向中間輸出即可。
就是在頭上抓乙個,在相應的另一邊抓乙個,這樣中間的螃蟹就左走,後右走,相當於不變。
題目本質上竟然這麼簡單…然而我想不到555
#include//傻雞抓螃蟹
#includeusing namespace std;
struct crabc[5010];
bool rule(crab c1,crab c2)
sort(c,c+n,rule);
for(int i=0;icout
}
傻雞抓大閘蟹
吉首大學第八屆 新星杯 b題 網賽 題目描述 背景又到了吃大閘蟹的季節,黃老師想吃大閘蟹,於是叫傻雞去抓大閘蟹 描述現有n只大閘蟹,每個在乙個二維座標上,保證沒有任何兩個大閘蟹重合。傻雞伸手抓大閘蟹了,他怕大閘蟹的攻擊,當他捉乙隻大閘蟹時,其他大閘蟹都朝這只運動 左邊的向右,右邊的向左,x座標相同的...
「狼牙抓雞」現身IT江湖
國內眾多剛剛躲過微軟的 黑屏 行動,卻沒能躲過鋒利的 狼牙 眾多的電腦成了 狼牙 嘴裡的肉雞。it江湖內並不是象想象中那麼平靜。危機與機遇並存,當it江湖爆發一次危機時,狼牙 就發現 黑屏 有機可乘時,便瘋狂出動掃蕩整個it江湖,規模之大堪比當年的 衝擊波 波 病毒。所謂的 狼牙抓雞器 每天可以控制...
小蔡從黑抓雞記
小蔡看了看,覺得這灰鴿子不錯,用起來也還蠻簡單的。可惜這小子整天只知道網上泡mm,別的又不會多少,生性魯鈍的小蔡對 並茂的灰鴿子用起來仍然覺得有些困難,咋辦?網上熱心人好多啊,找師傅去.在師傅的熱心教導下,小蔡的功力漸有長進,但還是遇到麻煩了。小蔡 師傅救命呀,防毒軟體太可惡了,好不容易咱剛學會,卻...