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 2sample output3 2 1 4 3 534
case #1:22c:
#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;
}
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 input2
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 如果下乙個任務區間在當前位置左邊,那就向下乙個的左邊界移動 如果正好可以全走兩個格仔的話,就在此位置 如果不可...