一道倍增題。設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...