2023年百度之星程式設計大賽 初賽 1

2021-07-07 09:19:58 字數 2085 閱讀 3608

b:

problem description

小度熊拿到了乙個無序的陣列,對於這個陣列,小度熊想知道是否能找到乙個k 的區間,裡面的 k 個數字排完序後是連續的。

現在小度熊增加題目難度,他不想知道是否有這樣的 k 的區間,而是想知道有幾個這樣的 k 的區間。

input

輸入包含一組測試資料。

第一行包含兩個整數n,m,n代表陣列中有多少個數字,m 代表針對於此陣列的詢問次數,n不會超過10的4次方,m 不會超過1000。第二行包含n個正整數,第 i 個數字代表無序陣列的第 i 位上的數字,數字大小不會超過2的31次方。接下來 m 行,每行乙個正整數 k,含義詳見題目描述,k 的大小不會超過1000。

output

第一行輸"case #i:"。(由於只有一組樣例,只輸出」case #1:」即可)

然後對於每個詢問的 k,輸出一行包含乙個整數,代表陣列中滿足條件的 k 的大小的區間的數量。

sample input

6 2

3 2 1 4 3 534

sample output

case #1:22

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

const int maxn=10010;

int n,m;

int a[maxn];

int ans[maxn],pre[maxn];

int minv[maxn],maxv[maxn];

bool vis[maxn];

mapmp;

void solve()

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

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

}}int main()

}return 0;

}

c:

problem description

給定序列 a

=, 要求改變序列a中的某些元素,形成乙個嚴格單調的序列b(嚴格單調的定義為:bi

<

bi+1,1

≤i

我們定義從序列a到序列b變換的代價為 c

ost(

a,b)

=max(|a

i−b

i|)(1≤i≤n)

。請求出滿足條件的最小代價。

注意,每個元素在變換前後都是整數。

input

第一行為測試的組數 t

(1≤t

≤10)

.對於每一組:

第一行為序列a的長度 n

(1≤n

≤105

),第二行包含n個數,a1

,a2,.

..,an.

序列a中的每個元素的值是正整數且不超過106

。output

對於每乙個測試樣例,輸出兩行:

第一行輸出:"case #i:"。i代表第 i 組測試資料。

第二行輸出乙個正整數,代表滿足條件的最小代價。

sample input

2

21 10

32 5 4

sample output

case #1:

0case #2:

1

簡單二分

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

const int maxn=100010;

int n;

int a[maxn];

bool can(int x)

return true;

}int main()

printf("case #%d:\n%d\n",cas++,l);

}return 0;

}





2023年百度之星程式設計大賽初賽B

圓環 時間限制 1000ms 描述乙個圓環上有n個位置,這n個位置按順時針依次標號為1,2,n。初始時圓環的每個位置上都有乙個1至n之間的整數,且每個整數只出現一次。任何時刻,你可以將圓環上的數全部逆時針旋轉乙個位置,即第i個位置上的數變為原來第i 1個位置上的數,第n個位置上的數變為原來第1個位置...

2020 年百度之星 程式設計大賽 初賽二

problem description 科學家小沃沃在研究病毒傳播的規律,從而控制疫情。有 n 個人,編號分別為 1,2,n。我們用螢光粉代替病毒,編號為 1 的人,在第 0 時刻塗上了螢光粉,剩下的人在第 0 時刻沒有塗。對於第 i 個人,我們知道這個人在哪些時刻出現在了哪些地方。如果時刻 t,某...

2019 年百度之星 程式設計大賽 初賽一

傳送門 1 hdu 2 bestcoder 一步可以走乙個或者兩個,求依次進入n個區間 li,ri 的最少步數 就當前位置cur來說,1 如果下乙個任務的區間包括當前位置,那就可以不動 2 如果下乙個任務區間在當前位置左邊,那就向下乙個的左邊界移動 如果正好可以全走兩個格仔的話,就在此位置 如果不可...