AtCoder 競技プログラミングの鉄則 演習問題集
問題文
省略
省略
C++に変換後のコードはこちら
int @N, @K; int L[N], R[N], ind[N], res[N]; rd((L,R)(N));
int i, j, k, sz;
rep(i,N) ind[i] = i;
rep(i,N) R[i] += K;
sortA(N,L,R,ind);
int dp1[2d5] = {}, dp2[2d5] = {};
k = 0;
rep(i,N){
while(k < L[i]) dp1[k+1] >?= dp1[k], k++;
dp1[R[i]] >?= dp1[L[i]] + 1;
}
k = 2d5-1;
rrep(i,N){
while(k > R[i]) dp2[k-1] >?= dp2[k], k--;
dp2[L[i]] >?= dp2[R[i]] + 1;
}
rep(i,N) res[ind[i]] = dp1[L[i]] + dp2[R[i]] + 1;
wtLn(res(N));
C++に変換後のコードはこちら
int @N, @K; int L[N], R[N]; rd((L,R)(N));
rep(i,N) R[i] += K;
int dp1[2d5] = {}, dp2[2d5] = {}, go1[2d5], go2[2d5];
rep(i,2d5) go1[i] = int_inf, go2[i] = -int_inf;
rep(i,N) go1[L[i]] <?= R[i];
rep(i,N) go2[R[i]] >?= L[i];
rep(i,2d5-1){
dp1[i+1] >?= dp1[i];
if(go1[i] < int_inf) dp1[go1[i]] >?= dp1[i] + 1;
}
rrep(i,2d5-1){
dp2[i] >?= dp2[i+1];
if(go2[i] >= 0) dp2[go2[i]] >?= dp2[i] + 1;
}
rep(i,N) wt(dp1[L[i]] + dp2[R[i]] + 1);
Current time: 2024年05月06日03時39分20秒
Last modified: 2022年11月23日10時57分39秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る
Logged in as: unknown user (not login)