由於要依次完成任務,所以對於我們從前到後把可以取交集的取交集,不行就新開一段。
這樣由於要從前到後完成任務,就是這些互不相交的交集區間要依次到達。
於是我們先根據第二個區間的位置選擇第乙個區間開始的起點
然後就每次根據下乙個區間與這個區間的相對位置選擇到達的端點就行了。
有個小細節,就是走到端點長度為奇數的情況下,不一定是走到端點,而是可能再走一格,代價一樣,但是對後面的更優
#include#define maxl 1010
using namespace std;
int n,m,ans,cas,cnt;
struct seg
a[maxl],b[maxl];
char s[maxl];
inline void prework() }}
inline void mainwork()
} ans+=len/2;
if(len&1)
ans++; }}
inline void print()
int main()
return 0;
}
2019百度之星初賽一 1002Game
problem description 度度熊在玩乙個好玩的遊戲。遊戲的主人公站在一根數軸上,他可以在數軸上任意移動,對於每次移動,他可以選擇往左或往右走一格或兩格。現在他要依次完成 n個任務,對於任務 i,只要他處於區間 ai,bi 上,就算完成了任務。度度熊想知道,為了完成所有的任務,最少需要移...
百度之星 初賽B
a 傳送門 點我 求聯通塊個數,對於簡單圖而言,就是c v e,其中c就是聯通塊個數,v是頂點數,e是邊數 include include include include using namespace std const int max n 2e5 10 int n,m,k vectorg max...
2019 年百度之星 程式設計大賽 初賽一
傳送門 1 hdu 2 bestcoder 一步可以走乙個或者兩個,求依次進入n個區間 li,ri 的最少步數 就當前位置cur來說,1 如果下乙個任務的區間包括當前位置,那就可以不動 2 如果下乙個任務區間在當前位置左邊,那就向下乙個的左邊界移動 如果正好可以全走兩個格仔的話,就在此位置 如果不可...