傳送門
[1]hdu
[2]bestcoder
一步可以走乙個或者兩個,求依次進入n個區間[li,ri]的最少步數
就當前位置cur來說,1)如果下乙個任務的區間包括當前位置,那就可以不動
2)如果下乙個任務區間在當前位置左邊,那就向下乙個的左邊界移動
①如果正好可以全走兩個格仔的話,就在此位置
如果不可以全走兩個格仔的話,
②如果再下乙個位置在左邊的話,那就不動
③如果再下乙個位置在右邊的話,那就把走的一格變成兩格,在左邊界往右乙個位置
3)如果下乙個任務區間在當前位置右邊,那就向下乙個的右邊界移動
①如果正好可以全走兩個格仔的話,就在此位置
如果不可以全走兩個格仔的話,
②如果再下乙個位置在右邊的話,那就不動
③如果再下乙個位置在左邊的話,那就把走的一格變成兩格,在右邊界往左乙個位置
起點在最小區間的左邊界或者右邊界
1 #include2view codeusing
namespace
std;
3#define ll long long
4const
int maxn=1000+50;5
6intn;7
intl[maxn];
8int
r[maxn];
910 ll f(int k,int
p)11
20if(l[k] >p)
2138
else
3956}57
return
ans;58}
59int
main()
6081 ll ans=min(f(1,l),f(1
,r));
8283 printf("
%i64d\n
",ans);84}
85return0;
86 }
2023年百度之星程式設計大賽 初賽 1
b problem description 小度熊拿到了乙個無序的陣列,對於這個陣列,小度熊想知道是否能找到乙個k 的區間,裡面的 k 個數字排完序後是連續的。現在小度熊增加題目難度,他不想知道是否有這樣的 k 的區間,而是想知道有幾個這樣的 k 的區間。input 輸入包含一組測試資料。第一行包含...
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,某...