srupのメモ帳

競プロで解いた問題や勉強したことを記録していくメモ帳

2016-07-02から1日間の記事一覧

aoj 0546 - Lining up the cards

問題 問題概要 与えられる文字列(数字)n個の中からk個選んで、つなげることで、できあがる文字列の種類を求める。 解法 next_permutationを使い、すべての順列を作る。その順列すべてに対して、前からk個選んで選んだ順番に文字列としてつなげる。そのように…

aoj 0534 - Chain

問題 問題概要 一列バージョンのぷよぷよみたいな感じ。好きな場所の色を一箇所変えることができ、それを行うことにより最も多くボールを消せる場合を求める問題。 解法 まずすべての玉の色を変えて全探索する。そして色を変えた前後で同じ色の数をカウント…

yukicoder No.384 マス埋めゲーム2

問題 問題概要 縦横のどちらか一列すべてを消すゲーム。指定された番号の人が負けるかどうかを判定する問題。 解法 この問題はプレイヤーが負けないように選べはゲームをする回数はh + w - 1に必ずなるので、あとはmodで計算。ただし与えられる数字は0オリジ…

aoj 0526 - Boat Travel

問題 問題概要 連続したクエリの中に頂点とそれをつなぐ辺の長さのクエリと、2点間の最短距離を求めよというクエリが含まれる。 解法 任意の2点間の距離を求めるにはワーシャルフロイト法で求めることができる。ただし、最短経路を求めよというクエリに対し…

yukicoder No.383 レーティング

問題 問題概要 レーテイングを表記する 解法 場合分けしてやるだけ ミス 特になし コード #include <iostream> #include <algorithm> #include <cstdio> #include <cstdlib> using namespace std; int main(void){ int a, b; cin >> a >> b; if(a > b) printf("-%d\n", a - b); if(a == b) printf("</cstdlib></cstdio></algorithm></iostream>…