WARushスマートフォン用の表示で見るWARushSRMの結果とか、解けた問題のコードを書いていきますこの広告は、90日以上更新していないブログに表示しています。"TheTilesDivTwo"問題http://community.topcoder.com/stat?c=problem_statement&pm=12501訳マスが黒の白に塗りわけられたチェスボードがある。このチェスボードの行・列には0から始まる数字が付けられている。したとき、i+jが偶数ならば黒のマス、i+jが奇数ならば白のマスとなっている。チェスボードのいくつかのマスには、既にチェスの駒が置かれている。今、L字型のタイルを無限に持っている。そのタイルの形は、ちょうどチェスボードのマスを3つL字にくっつけたようになっている。OOOこのタイルを下記のようなルールに基づいてチェスボードに置いていきたい。タイルは90度単位で回転できる。タイルはチェスボードの3つのセルにピッタリ合わせて置かなくてはならない。タイル同士を重ねて置くことはできない。駒が置かれているマスには置く事ができない。タイルのコーナー部分は黒のマスに置かなくてはならない。チェスボードの幅、高さ、駒が置かれているマスの情報が与えられる。上記のルールに従ったとき、置く事ができるタイルの最大の数を返せ。P177)高さが4しかないので、更新方向は次のようにする。着目するマスを黒いマスにすると、必要な白マスの情報は次のようななる。白マスを使ってタイルを置くの5パターンを試し、最も数の多いものを選んでいけばよい。上図のようになるので、着目している黒マスと同じ高さの白マスの情報を「タイルが置かれてないよ!」と更新してあげる。上の白マスを「タイルが置かれているよ!」と更新してあげる。上と右の白マスを「タイルが置かれているよ!」と更新してあげる。始めDPでやったら頭が混乱。コードがぐちゃぐちゃになってひどいもんだった。"ABBADiv1"月別アーカイブリンクはてなブログブログをはじめる(無料)お知らせはてなブログをはじめよう!Ekaingさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。