第一次模擬賽(總共3道水題)

2021-09-25 18:22:27 字數 2466 閱讀 2763

第一道水題(就是乙個二分)

2019涼都∙

[題目描述]

測試將在一條長度為l的跑道上進行,為了防止gwx體力不支撲街,機房裡的dalao們為他設定了n個補給點用於補充體力(起點和終點也算補給點,但是不計入這n個數中)。

aegir為了鍛鍊gwx的體力,他決定從中撤走m個補給點。為了最大限度的磨練gwx的意志,aegir希望使兩個補給點之間最短的距離盡可能長。現在你的任務就是幫他計算這個距離的值。

[輸入格式]

輸入檔案為run.in

第一行三個整數n,m,l,分別表示補給點數量(不包括起點與終點),撤走補給點的數目和跑道的長度。

第二行n個整數,第i個整數表示第i個補給點與起點的距離。

資料保證補給點的距離是嚴格單調遞增的。

[輸出格式]

輸出到檔案run.out

一行乙個數,表示在移走m個補給點後,兩個補給點之間最短的距離。

[資料範圍]

對於20%的資料,1≤m=n≤105,1≤l≤

10的9次方

對於另外20%的資料,1≤m≤n≤20, 1≤l≤10的9次方

對於100%的資料,1≤m≤n≤105,1≤l≤

10的9次方

[樣例輸入]

5 2 25

2 11 14 17 21

[樣例輸出]

4[樣例解釋]

移走第1個和第3個補給點後,最短兩個補給點的距離為min11-0,17-11,21-17,25-21=4

解題思路:乙個簡單的二分,我們模擬這個跑步的過程,假設當前在補給點?,如果補給點? + 1到補給點?的距離< ???,那我們就刪除掉補給點? + 1。這個過程結束後,我們只需檢查刪除點的數量是否≤ m即可。

**:#include

using namespace std;

const int maxn = 50010;

int n, m, l, s[maxn];

bool check(int mid)

if(cnt > m) return 0;

return 1;

}int main()

printf("%d\n", ans);

return 0;

}第二題(也是一道水題,只不過學長資料出水了,用貪心的思想都可以拿90分)

aegir所在的機房即將進行一次搬遷,在搬遷的過程中,重物的搬運是一件十分困難的事。於是aegir叫來了一位大力士van來幫助他。由於van很忙,所以他只能幫aegir搬一次東西。為了能最大化van所搬物品的重量,aegir找到了你,想讓你寫給程式幫幫他。

[題目描述]

van一次最多能搬物品的總重量為w,機房裡一共有n件物品需要搬運,每件物品的重量為gi。現在,aegir想知道van一次最多能搬走哪些物品,你只需要輸出這些物品的總重量即可。

[輸入格式

輸入檔案為knapsack.in

第一行兩個整數w,n,代表van能接受的最多重量和機房裡的物品數量。

第二行n個整數,第i個整數gi代表第i個物品的重量。

[輸出格式]

輸出到檔案knapsack.out

一行乙個數,代表van最多能搬走的物品的總重量

[資料範圍]

對於40%的資料,n≤20,  w,gi

≤2的31次方

對於另外20%的資料,n≤40,  w,gi

≤10的6次方

對於100%的資料,n≤40,  w,gi

≤2的31次方

[樣例輸入]

25 6

10 23 12 3 11 21

[樣例輸出]

25解題思路:注意到? ≤ 40,所以? 2≤ 20。這使我們聯想到折半搜尋。 我們先進行一次搜尋,把用前? 2 個物品能組合出的所有重量都存 放在乙個陣列中,並對陣列進行排序。 然後進行第二個搜尋,對於用後? 2 個物品能組合出來的重量?,我 在第乙個陣列裡面進行二分查詢乙個≤ ? − ?的,最大的重量出

來,再用兩者的和更新答案。

**:#include

using namespace std;

const int inf = 0x7fffffff;

int w, n, ans, g[50];

int cnt, a[10000000];

void dfs1(int now, int sum)

int find(int x)

return a[ans];

}void dfs2(int now, int sum)

int main()

第三題作者還沒有想出來下次再更新

第一次模擬測試 3

題目描述 眾所周知,瑞神已經達到了cs本科生的天花板,但殊不知天外有天,人外有苟。在浩瀚的宇宙中,存在著一種叫做苟狗的生物,這種生物天 生就能達到人類研究生的知識水平,並且天生擅長csp,甚至有全國第一的水平!但最可怕的是,它可以發出宇宙射線!宇宙射線可以摧毀 人的智商,進行降智打擊!宇宙射線會在無...

第一次csp模擬賽B

題意 乙個人連續n天去買東西,給出n個資料,為之後n天每天要買的東西的數量,如果能按照這個資料購買,則成功,輸出 yes 不能按照給定的資料購買,則輸出 no 店家有兩種購買方式,一 一次性購買兩個。二 今天買乙個,送一張券留著明天用。明天手裡的券必須用完,如有剩餘則失敗 其中兩種方式每天都可以購買...

GZHU18級第一次周賽 D題(水題)

d problem d hdu 2039 給定三條邊,請你判斷一下能不能組成乙個三角形。input 輸入資料第一行包含乙個數m,接下有m行,每行乙個例項,包含三個正數a,b,c。其中a,b,c 1000 output 對於每個測試例項,如果三條邊長a,b,c能組成三角形的話,輸出yes,否則no。s...