投稿者の過去記事

競技プログラミング風 C++問題集【第16回】
目次 0/1ナップサック問題(難易度:★★★★☆)0/1ナップサック問題(難易度:★★★★☆)質量 wi、価値 vi のアイテムがN個(i = 0, ... N-1)あり、それを合計質量 WT まで入れることが…

競技プログラミング風 C++問題集【第15回】
目次 ポーカー:役判定(難易度:★★★☆☆)ポーカー:役判定(難易度:★★★☆☆)引数で与えられたカード配列の役を判定する関数 int checkHand(const vector<Card>&…

競技プログラミング風 C++問題集【第14回】
目次 無向グラフ(難易度:★★★☆☆)無向グラフ(難易度:★★★☆☆)複数の頂点と2つの頂点を結ぶ複数の辺から構成され、辺が両端の頂点から互いの相手の頂点に移動可能なものを「無向グラフ」と呼ぶ。無向グラ…

競技プログラミング風 C++問題集【第13回】
はじめに今回から4回にわたって「競技プログラミング風 C++問題集 第13回~第16回(シーズン4)」をお届けする。各問題は、「問題文」「テストコード」「ヒント」「解答例」「解説」から構成される。まず、問題を読んで正しく理解し、テ…

競技プログラミング風 C++問題集【第12回】
目次 文字列比較(難易度:★★★★☆)文字列比較(難易度:★★★★☆)const char* 型の比較元文字列 src と、比較先文字列 dst が与えられたとき、その差分を計算したい。差分計算にあたっては…

競技プログラミング風 C++問題集【第11回】
目次クローズド・ナイト・ツアー(難易度:★★★★☆)クローズド・ナイト・ツアー(難易度:★★★★☆)チェスのナイトは上下左右4方向に2マス進んで、進行方向左に1マスまたは右に1マス、合計8箇所に進むことができる。 将…

競技プログラミング風 C++問題集【第10回】
目次オセロ:石反転(難易度:★★★☆☆)両端キュー(難易度:★★★☆☆)オセロ:石反転(難易度:★★★☆☆)オセロ(リバーシ)盤面と黒着手位置が与えられたとき、縦横斜めに挟まれた白石を黒石に置き換える関数 int …

競技プログラミング風 C++問題集【第9回】
はじめに今回から4回にわたって「競技プログラミング風 C++問題集 第9回~第12回(シーズン3)」をお届けする。各問題は、「問題文」「テストコード」「ヒント」「解答例」「解説」から構成される。まず、問題を読んで正しく理解し、テス…

競技プログラミング風 C++問題集【第8回】
目次文字列クラス(難易度:★★★★☆)文字列クラス(難易度:★★★★☆)標準C++ライブラリにある文字列クラス string は最もよく使われるクラスのひとつだ。 本問題では、その string の一部の機能をもった…

競技プログラミング風 C++問題集【第7回】
目次数独(難易度:★★★☆☆)数独(難易度:★★★☆☆)9x9の通常サイズの数独(「数独」は株式会社ニコリの登録商標です)の盤面情報を持つ1次元配列と、マス目位置(x, y)を引数で渡され、 指定された箇所にどの数字…