(倍增)假期旅行

2021-08-28 06:25:00 字數 809 閱讀 9183

一道倍增題。設f[i][j]表示從i位置開始,走2^j到的最遠城市。

考慮每乙個座位的限定,對於一段[l,r],如果a位置為空,那麼[l,r]至少能到r位置,對於預定座位的條件,按座位為第一關鍵字排序之後,維護乙個城市單調的東東,線段樹可做。

#includeusing namespace std;

const int maxn=200005;

int n,m,k,mx[maxn*8];

struct seat

inline int query(int x,int l,int r,int pos)

int f[maxn][20];

inline void st()

int main()

insert(1,1,n,r,n,n);

} st();

int q;scanf("%d",&q);

int maxlog=log2(n);

for(int i=1;i<=q;++i)else can=1;

printf("%d\n",can?ans+1:-1);

} return 0;

}

hihocode 1979假期旅行

小hi有乙個連續m天的假期,他計畫在這m天內按順序遊玩n個城市,每個城市至少遊玩1天。已知小hi從乙個城市到另乙個城市不需要太多時間,即如果第i天是小hi在第j個城市的最後一天,那麼第i 1天就是小hi在第j 1個城市的第一天。通過天氣預報小hi知道這m天內每個城市是晴天還是雨天,他希望自己遊玩的每...

NOIP2012 開車旅行 (倍增)

小 a 和小 b 決定利用假期外出旅行,他們將想去的城市從 1 到 n 編號,且編號較小的城市在編號較大的城市的西邊,已知各個城市的海拔高度互不相同,記城市 i 的海拔高度為hi,城市 i 和城市 j 之間的距離 d i,j 恰好是這兩個城市海拔高度之差的絕對值,即d i,j hi hj 旅行過程中...

倍增 luogu1081開車旅行

傳送門 倍增神題?細節超級多 其實思路很簡單 對於每個點,a和b要開去的目的地是固定的,所以就想到了倍增 開三個倍增陣列,t i j k 代表k從i開車走2 j天走到的那個城市 f是a走的路程,g是b走的路程 0代表a,1代表b 對於預處理,一開始怎麼想怎麼是n 2的 後來自己yy了一下覺得每次so...