2015-01-01から1年間の記事一覧

繰り返し二乗法(2題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。繰り返し二乗法。べき乗の高速な計算アルゴリズムなんだ…

素数(4題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。素数の問題。エラトステネスのふるい。有名だし、これと…

ユークリッドの互除法(2題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。今回はユークリッドの互除法。最近はユークリッドの互除…

最小全域木:クラスカル法(4題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本の章末で紹介されている問題をひたすら解いている。 今回はグラフの最小全域木を求める問題。 最小全域木とは、(連結なグラフ…

【Python】組み込み関数zip()でディクショナリを初期化する

zip()はディクショナリの初期化に向いている。 zip()の基本的な使い方 公式ドキュメント2. 組み込み関数 — Python 3.4.3 ドキュメントより zip(*iterables) それぞれのイテラブルから要素を集めたイテレータを作ります。この関数はタプルのイテレータを返し…

最短経路問題:ダイクストラ法、ベルマンフォード法、ワーシャルフロイド法(6題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすら解いている。今回は最短経路問題。はじめに最短経路問題を解くアルゴ…

Union-Find木(3題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(蟻本)の章末で紹介されている練習問題をひたすら解いている。 今回は、Union-Find木を使う問題。 Union-Find木に関するいち…

プライオリティキュー(2題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本の章末で紹介されている練習問題をひたすら解いている。 今回はプライオリティキューを使う問題。 POJ2010: Financial Aid 2010…

動的計画法:少し考察を要する問題(5題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称「蟻本」)の章末で紹介されている練習問題を淡々と解いている。 今回は動的計画法の第三弾。難しかった。しかも解いてか…

動的計画法:漸化式を工夫して高速化(3題)

漸化式を工夫して高速化をはからなければならない動的計画法の問題。 だいたい最初に思いつく漸化式が、間違っているわけではないけれど効率が悪く、提出するとTime Limit Exceededになる。 そこで、漸化式を改善して時間内に解けるようにしましょうね、とい…

個数制限付き部分和問題(POJ1742)

1742 -- Coins POJ1742を解こうとしたが、蟻本P.62の「個数制限付き部分和問題」とほぼ同じだった。 この問題の漸化式の作り方が難しかったので、ここで整理しておく。以下、蟻本P.62-63を参考に書いた。 蟻本:プログラミングコンテストチャレンジブック […

基礎的な動的計画法(5題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ いわゆる「蟻本」である。この章末で紹介されている練習問題をひたすら解いている。 今回は基礎的な動的計画法。基礎的といっても最後…

貪欲法…その他(5題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本の章末で紹介されている練習問題を解いている。貪欲法(その他)だ。 貪欲法とはいっても、この問題群は要素を選ぶ順番をうまく…

貪欲法…線分(3題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本の章末で紹介されている練習問題をひたすら解いている。解説だけでなくテーマに沿った類題も豊富に紹介してくれているのがこの…

全列挙(4題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本の章末で紹介されている練習問題をひたすら解いている。 競技プログラミングの世界で通用するような人は、最低でも1000題は解い…

幅優先探索(3題)

幅優先探索が使える問題 「プログラミングコンテストチャレンジブック」第2版(マイナビ)の章末(p.125)で紹介されている練習問題を淡々と解いている。 こういう基本的なアルゴリズムは問題を見たら手が勝手に動くくらいに練習しないと。幅優先探索が使える…

深さ優先探索(4題)

「プログラミングコンテストチャレンジブック」第2版(マイナビ)の章末で紹介されている練習問題を解いて競技プログラミングの練習をしている。今回は「深さ優先探索」(p.125)を4題。深さ優先探索が使える問題の特徴は、 1. 片っ端から全探索してもあま…

【Ruby】Open-URIは例外を拾って404をチェックする

以下のコードでは、URLが404 Not Foundのときにエラーになって止まる。 require 'open-uri' url = 'http://example.com' html = open(url) do |f| f.read end URLを開けなかったら例外OpenURI::HTTPErrorを投げてくれるので、ちゃんと捕捉する。 require 'op…

スクレイピングで正規表現の練習

今すぐ始めるスクレイピング nokogiriとかのスクレイピング用ライブラリを使わずに標準ライブラリ'open-uri'だけでスクレイピングをします。HTMLソースを取得するだけならこれで十分。以下のサイトを参考にスクレイピングしたいサイトのHTMLソースをまるごと…

はてな記法の練習

はてな記法に慣れたいのでメモ 見出し *見出し 小見出し **小見出し 小小見出し ***小小見出し リスト1 リスト2 リスト3 -リスト1 -リスト2 -リスト3 定義リスト 定義リスト :定義リスト:定義リスト 表 表 表 |*表|表|表| ソースコードの表示 class Foo def …