競技プログラミングの鉄則
Table of Contents
https://atcoder.jp/contests/tessoku-book
A01. The First Problem
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_a
A02. Linear Search
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_b
A03. Two Cards
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_c
A04. Binary Representation 1
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_d
A05. Three Cards
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_e
A06. How Many Guests?
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_f
A07. Event Attendance
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_g
A08. Two Dimensional Sum
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_h
A09. Winter in ALGO Kingdom
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_i
A10. Resort Hotel
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_j
A11. Binary Search 1
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_k
A12. Printer
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_l
A13. Close Pairs
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_m
A14. Four Boxes
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_n
A15. Compression
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_o
A16. Dungeon 1(※初版第 1 刷の B22 も同じ問題です)
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_p
A17. Dungeon 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_q
A18. Subset Sum
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_r
A19. Knapsack 1
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_s
A20. LCS
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_t
A21. Block Game
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_u
A22. Sugoroku
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_v
A23. All Free
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_w
A24. LIS
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_x
A25. Number of Routes
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_y
A26. Prime Check
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_z
A27. Calculate GCD
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_aa
A28. Blackboard
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ab
A29. Power
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ac
A30. Combination
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ad
A31. Divisors
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ae
A32. Game 1
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_af
A33. Game 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ag
A34. Game 3
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ah
A35. Game 4
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ai
A36. Travel
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_aj
A37. Travel 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ak
A38. Black Company 1
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_al
A39. Interval Scheduling Problem
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_am
A40. Triangle
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_an
A41. Tile Coloring
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ao
A42. Soccer
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ap
A43. Travel 3
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_aq
A44. Change and Reverse
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ar
A45. Card Elimination
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_as
A46. Heuristic 1
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_at
A49. Heuristic 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_au
A50. 山型足し算
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_av
A51. Stack
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_aw
A52. Queue
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ax
A53. Priority Queue
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ay
A54. Map
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_az
A55. Set
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ba
A56. String Hash
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bb
A57. Doubling
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bc
A58. RMQ (Range Maximum Queries)
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bd
A59. RSQ (Range Sum Queries)
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_be
A60. Stock Price
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bf
A61. Adjacent Vertices
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bg
A62. Depth First Search
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bh
A63. Shortest Path 1
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bi
A64. Shortest Path 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bj
A65. Road to Promotion
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bk
A66. Connect Query
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bl
A67. MST (Minimum Spanning Tree)
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bm
A68. Maximum Flow
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bn
A69. Bipartite Matching
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bo
A70. Lanterns
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bp
A71. Homework
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bq
A72. Tile Painting
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_br
A73. Marathon Route
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bs
A74. Board Game
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bt
A75. Examination
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bu
A76. River Crossing
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bv
A77. Yokan Party(★4)
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_bw
B01. A+B Problem
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ch
B02. Divisor Check
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ci
B03. Supermarket 1
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cj
B04. Binary Representation 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ck
B06. Lottery
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cl
B07. Convenience Store 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cm
B08. Counting Points
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cn
B09. Papers
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_co
B11. Binary Search 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cp
B12. Equation
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cq
B13. Supermarket 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cr
B14. Another Subset Sum
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cs
B16. Frog 1
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ct
B17. Frog 1 with Restoration
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cu
B18. Subset Sum with Restoration
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cv
B19. Knapsack 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cw
B20. Edit Distance
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cx
B21. Longest Subpalindrome
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cy
B23. Traveling Salesman Problem
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_cz
B24. Many Boxes
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_da
B26. Output Prime Numbers
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_db
B27. Calculate LCM
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dc
B28. Fibonacci Easy (mod 1000000007)
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dd
B29. Power Hard
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_de
B30. Combination 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_df
B31. Divisors Hard
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dg
B32. Game 5
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dh
B33. Game 6
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_di
B34. Game 7
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dj
B36. Switching Lights
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dk
B37. Sum of Digits
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dl
B38. Heights of Grass
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dm
B39. Taro’s Job
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dn
B40. Divide by 100
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_do
B41. Reverse of Euclid
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dp
B42. Two Faced Cards
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dq
B43. Quiz Contest
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dr
B44. Grid Operations
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ds
B45. Blackboard 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dt
B51. Bracket
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_du
B52. Ball Simulation
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dv
B54. Counting Same Values
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dw
B55. Difference
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dx
B56. Palindrome Queries
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dy
B57. Calculator
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_dz
B58. Jumping
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ea
2026/1/19 segment tree の問題だとわかった状態で自力 AC
https://kenkoooo.com/atcoder/#/contest/show/76c42792-10db-491b-9486-ffc7f4f226e1?activeTab=Standings
$dp(i)$ を $i$ 番目の地点に到達するまでの最小ジャンプ回数とする。
\begin{align} dp(i) = \min_{X_j \in [X_i - R, X_i - L]} (dp(j)) + 1 \end{align}
void solve() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll N, L, R;
cin >> N >> L >> R;
vll X(N);
rep(i, N) cin >> X[i];
auto op = [](ll a, ll b) -> ll {
return min(a, b);
};
auto e = []() -> ll {
return INF;
};
segtree<ll, op, e> seg(N);
seg.set(0, 0);
rep2(i, 1, N) {
ll x = X[i];
ll l = x - R;
ll r = x - L;
auto lit = lower_bound(all(X), l);
auto rit = upper_bound(all(X), r);
if (lit == rit) continue;
ll mi = seg.prod(lit - X.begin(), rit - X.begin());
seg.set(i, mi + 1);
}
cout << seg.get(N - 1) << endl;
}
B59. Number of Inversions
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_eb
B61. Influencer
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ec
B62. Print a Path
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ed
B63. 幅優先探索
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ee
B64. Shortest Path with Restoration
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ef
B65. Road to Promotion Hard
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_eg
B66. Typhoon
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_eh
B67. Max MST
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ei
B68. ALGO Express
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ej
B69. Black Company 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ek
C01. Tax Rate
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_di
C02. Two Balls
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fa
C03. Stock Queries
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fb
C04. Divisor Enumeration
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fc
C05. Lucky Numbers
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fd
C06. Regular Graph
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fe
C07. ALGO-MARKET
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ff
C08. ALGO4
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fg
C09. Taro’s Vacation
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fh
C10. A Long Grid
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fi
C11. Election
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fj
C12. Taro the Novel Writer
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fk
C13. Select 2
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fl
C14. Commute Route
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fm
C15. Many Meetings
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fn
C16. Flights
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fo
C17. Strange Data Structure?
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fp
C18. Pick Two(★6)
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fq
C19. Gasoline Optimization Problem
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fr
2026/2/17 segment tree の問題だとわかった状態で自力 AC
https://kenkoooo.com/atcoder/#/contest/show/76c42792-10db-491b-9486-ffc7f4f226e1?activeTab=Standings
$i-1$ から $i$ への移動で使ったガソリンはどの時点でガソリンスタンドで購入したガソリンかを考えると $i-K$ から $i-1$ までの区間にあるガソリンスタンドのうち、最も安いガソリンスタンドで購入したガソリンを使うのが最適であることがわかる。 また一つのガソリンスタンドで補充できるガソリンは $K$ まで使えるので、同じ位置にガソリンスタンドがある場合は最安値のところを使えばよい。 segment tree を使って、区間 $[i-K, i-1]$ にあるガソリンスタンドのうち最安値のガソリンを使って $i-1$ から $i$ への移動をすることを繰り返せば、最終的に $L$ に到達するまでの最小コストを求めることができる。
void solve() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll N, L, K;
cin >> N >> L >> K;
L++;
auto op = [](ll a, ll b) -> ll {
return min(a, b);
};
auto e = []() -> ll {
return INF;
};
segtree<ll, op, e> seg(L);
seg.set(0, 0);
rep(i, N) {
ll a, c;
cin >> a >> c;
ll t = seg.get(a);
seg.set(a, min(t, c));
}
vll cost(L, INF);
cost[0] = 0;
rep2(i, 1, L) {
ll l = max(0ll, i - K);
cost[i] = seg.prod(l, i);
}
ll ans;
if (*max_element(all(cost)) == INF)
ans = -1;
else
ans = accumulate(all(cost), 0ll);
cout << ans << endl;
}
C20. Mayor’s Challenge
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_fs