buyoh.hateblo.jp

残念な競技プログラミング参加者による学習記録

AtCoder Petrozavodsk Contest 001 - D Forest

嘘解法かもしれないので程々に.

2つのコーナーケースを記事に載せたのでぜひ.

問題文

https://beta.atcoder.jp/contests/apc001/tasks/apc001_d

公式想定解法

  • 考察すると次が分かる
    • 各連結成分のうち,必ず使わなければならない頂点は 1 個
    • 全て合わせて2(N-M-1)頂点使う.
  • ので,これを実装すれば良い.実装量はとても軽い.
続きを読む

yukicoder No.629 グラフの中に眠る門松列

2018/02/24 表現を修正

writerしました

問題

本記事の目的

続きを読む

平面 traveling salesman problem の厳密解を求める.

平面tspの分岐限定法のコードをなんとなく書いてみたけれども,全然早くならなかった.

Traveling Salesman Problem (TSP)

  • N個の都市と都市間の距離が与えられる.全ての都市をちょうど一度ずつ巡って始点に戻る順回路の中で移動距離が最小のものを出力する.

平面TSP

  • 都市がユークリッド座標上に存在して,自由に頂点間を行き来出来る.他はTSPと同じ.
続きを読む

Kの重複を許す区間スケジューリング問題

2018/02/22 更新 文章を修正

区間スケジューリング問題

http://www.prefield.com/algorithm/misc/interval_scheduling.html から引用.

区間スケジューリングは次の問題である.仕事が n 個与えられる.各仕事 j には開始時刻 s[j] と終了時刻 f[j] が設定されている.仕事は開始時刻から終了時刻まで続けて行わなければならず,同時に複数の仕事を行うことはできない.最も多くの仕事を行う方法を求めよ.

Kの重複を許す区間スケジューリング問題

区間スケジューリング問題では,『同時に複数の仕事を行うことはできない』としていた. これを『K個までは同時に複数の仕事が出来る』と置き換えてみる.

すなわち,上の区間スケジューリング問題はK=1の重複を許す区間スケジューリング問題である.

問題集

続きを読む

Kuin で 競技プログラミング(yukicoder No.4 おもりと天秤) の問題を解く

2019/02/15 追記:

コードが動かなくなっていたので,書き直しました.

#316677 No.4 おもりと天秤 - yukicoder

math@knapsackを使ったバージョンも載せます.

#316679 No.4 おもりと天秤 - yukicoder

Kuinとは?

プログラミング言語「Kuin」

「Kuin」は、簡単で高速な実用プログラミング言語です。

割と前から存在している言語で,競プロ界隈にもKuinの話題が流れている*1ようです.

しかし,Googleで検索した*2ところ,競技プログラミングの問題を実際に解いた記事はありませんでした*3

yukicoder No.4 おもりと天秤

※解き方の解説はしません.

https://yukicoder.me/problems/no/4

問題概要:daveを授業に集中させろ.

*1:本人も言及https://twitter.com/kuina_ch/status/913934988927578112

*2:2017/10/05に「競技プログラミング Kuin」で検索

*3:ほとんどのジャッジ環境がLinuxであり,2017/10/05現在Windows環境でのみ動作するKuinの導入がほぼ不可能であるため.

続きを読む