NOIP模擬 三 T1 太空電梯

2021-08-07 13:01:03 字數 2617 閱讀 7839

border="0" width="330" height="86" src="">

為了解決日漸增長的人口問題, mstdream 率領乙個小組到達火星開發新的居住地。

地球到火星有一架太空電梯,電梯一次最多承載 2 個人,最大載重為 k, 小組一共有 n 個人,第 i 個人重量為 vi 。人們排成一隊等候上電梯。

上電梯的規則是這樣的:

1. 如果電梯是空的,下乙個人可以上去

2. 如果電梯有乙個人,並且下乙個人上電梯不會超重,下乙個人可以上去,否則太空電梯會將前乙個人載到火星後返回接下乙個人

3. 如果電梯有兩個人,下乙個人不能上去。

由於管理出現了失誤! 人們排隊的順序發生了變化.假設人們的順序是未知的, mstdream 想知道,太空電梯最多會跑多少趟?

第一行兩個數 n,k

第二行開始 n 行,每行乙個數代表 vi

輸出乙個數,代表最壞情況下太空電梯需要跑的趟數

sample input

6 6

1

2

3

3

4

5

sample output

5

hint

最壞情況下排隊的順序如下:(2)(5 1)(3)(4)(3)

50%   n <= 10

100%  n <= 100000,  k <= 1000000000,  vi <= k

談一談我的想法 :

這種題在考場上一定要寫對拍, 這種簡單題自己是很容易考慮掉一些情況的, 這是我在考場上血的教訓, 由於情況考慮掉了只有30分, 本來單場可以拿很高的分的。說說做法吧, 對於每乙個數隻需要找到與它相加大於 k 的最小數就可以了, 弄個佇列可以很輕鬆的實現。

題解 :

對於讀入的序列直接 sort 一遍, 從頭掃直接找隊尾的元素, 當前最尾的元素滿足與之相加大於 k, 也就是 a[head] + a[tail] > k, 就將隊尾數加到那一位數的旁邊, 如果不滿足就將其加入尾佇列, 因為其無論在什麼位置都不會影響最優答案。最後統計結束。

下面貼出** :

同志們一定要考慮在統計答案時, 佇列裡還有乙個數時要加一。 不然只有三十分。

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

inline

int read()

while(ch >= '0' && ch <= '9')

return i * f;

}const

int maxn = 1e5 + 10;

struct point ;

point a[maxn];

long

long k, hou[maxn], now[maxn];

int n, tailh, tailn, ans;

inline

bool comp(const point & x, const point & y)

inline

void solve()

else

if(l + now[i] > k)

l = now[i], c = 1, ++ans;

if(c == 2)

l = 0, c = 0, ++ans;

}if(c > 0) ++ans;

}int main()

else

}else

hou[++tailh] = i;

}else

}int ow = tou;

while(true)

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

now[++tailn] = a[hou[i]].w;

solve();

cout

<< ans;

}

是不是該犒勞自己一曲**呢:just the way you are - bruno mars

border="0" width="330" height="86" src="">

有什麼意見,盡情發表吧。

NOIP2017模擬 太空電梯

2017.8.29 t1 1952 樣例資料 輸入6 6 1 2 3 3 4 5 輸出 分析 基本上是用貪心,就是找正好一胖一瘦沒法一起進電梯的一前一後,如果瘦的無法滿足,就和另外乙個瘦子一起把電梯人數擠滿 注意最後只剩乙個人時也要搭一次電梯 include include include incl...

NOIP模擬 簡單 T1 舉辦比賽

border 0 width 330 height 86 src mstdream 舉辦了一場搶答比賽!這場搶答比賽有 n 支隊伍參賽,第 i 支隊伍將會被分配乙個隨機值 si,每乙個問題,si 值較小的隊伍會擁有優先發言權,於是 mstdream 想知道所有隊伍最小的 si 值,以便統計 但是,由...

T1 奇怪的電梯(BFS)

題目背景 呵呵,有一天我做了乙個夢,夢見了一種很奇怪的電梯。大樓的每一層樓都可以停電梯,而且第 i 層樓 1 i n 上有乙個數字 ki 0 ki n 電梯只有四個按鈕 開,關,上,下。上下的層數等於當前樓層上的那個數字。當然,如果不能滿足要求,相應的按鈕就會失靈。例如 3 3 1 2 5 代表了 ...