2023-01-01から1ヶ月間の記事一覧
AtCoder
AtCoder300点
ABC-C
茶色diff
ある値を固定して考える
操作
最小コスト
操作:1文字を変更する
操作:circular_shift
操作:上書き
回文
最適化テク:操作の流れを単純化する
文字列
全探索
多重for文
for文
最適化問題
慣れれば解ける問題だけど、最初は「固定する」という考え方が難しいかもしれない。 問題へのリンク 問題概要 長さ の文字列 が与えられる。この文字列に対して、次の操作を繰り返すことで回文にしたい。 先頭の文字を末尾に移動する (コスト ) 文字を 1 つ…
AtCoder
JOI
JOI予選・二次予選
JOI難易度3
考察テク:最大値や最小値に着目する
解空間:O(N^2)通りの選択肢
全探索
for文
最適化テク:制約条件を加えて探索候補を絞る
最適化テク:端点のみを考える
数列
絶対値やminを扱う問題
各kに対して
AOJ
NoviSteps5Q
易しい計算量改善
計算量改善:O(N)で求められる式に変形する
シンプルながらも、学べるポイントがたくさんある問題ですね 問題へのリンク 公式解説へのリンク 問題概要 JOI 市には から までの番号が付けられた 人の住民がいて、住民 () の年齢は 歳です。 JOI 市の住民の年齢 が与えられます。 に対して、住民 と他…
AtCoder
AtCoder600点
ABC-Ex
赤色diff
高速畳み込み計算
分割統治法
オンライン処理を実現する分割統治法
DP
多項式・FPS(形式的冪級数)
分割統治FFT
FFT
DP高速化
DP高速化:FFT
平方分割
漸化式
数え上げ問題
フラクタル構造
入力が定数個
この平方分割のやり方はちゃんとマスターしたい 問題へのリンク 問題概要 種類のレベル 1 の宝石がある。各種類のレベル 1 の宝石は無限個ある。 個の宝石を合成することで、レベル の宝石を作ることができる。ただし、その 個の宝石は次の条件を満たす必要…
AtCoder
AtCoder600点
ABC-Ex
銅色diff
SuffixArray
DFS
再帰的に上位桁から順に値で分類した木を作る
再帰的構造に着目する
文字列
制約:複数系列の長さの合計が10^5以下
クエリ処理問題
queue
応用的な探索
lcp
Cartesian木
Suffix木
セグメント木
解空間:O(N^2)通りの選択肢
連続部分列を扱う問題
prefixとsuffix
辞書順
K番目を求める
非自明な線形時間
N個の文字列の問題
Suffix Tree 上で DFS した。デバッグがめっちゃ大変だった! 問題へのリンク 問題概要 個の英小文字からなる文字列 が与えられる。 これら 個の文字列について、連続する部分文字列をすべて考える。重複を除かずに考えると 個ある。 これら 個の文字列を辞…