一見、私は法律を見つけるために、SGのタイトル機能だと思った、との調査結果は、公正なゲームではありません。。。。
しかし、その後、私は実際には、それを行うには優れている、と思いました。
任意の∈[B、A)ときスポット、ボブ勝利上のブロックが存在し、このゲームの1つの明白な機能は、時間の長さです。(貪欲考えてみましょう)
ボブはフィールドの長さ> =ブロック2bが動作する場合、この問題への鍵は、この時点での勝利とボブ、ボブは長さbのブロックとして構成することができる、発見されました。
残りはさまざまな状況での暴力の残りの部分で、アイデアが明らかにされているようだが、詳細はより激しいです。。。。それについてのあなた自身の思考のw左から
#include <ビット/ STDC ++ H> の#defineは長い長いllの 名前空間stdを使用します。 インラインint型リード(){ int型のx = 0。チャーCH = GETCHAR()。 用(;!isdigit(CH); CH = getchar関数()); 用(; isdigit(CH)、CH = GETCHAR())X = X * 10 + CH-'0' 。 Xを返します。 } ブールFL。 インラインINTのGet(){ int型のx = 0。チャーCH = GETCHAR()。 用(; CH == ''; CH = GETCHAR())x ++; (CH == '\ n')であれば、FL = 1。 Xを返します。 } int型Q、A、B、今。 インラインBOOL(解く){ =(リード)、B =)(読み取ります。 INTのBA = 0、BB = 0、DB = 0、MX = 0。 今=は(取得)、BA + =今> =、BB + =今> = B、DBは+ =今> = B * 2、MX =(今MX、)maxの(FL = 0;!; FL); もし(BB> BA)の戻り0; IF(> = 2 * b)に戻りBA == 1 && MX < IF(MX> A + 4 * B-2 || DB> 1)戻り0; IF(DB)リターン((BA &1)&&(MX> = 3 * || MX <= A + 2 * B-2))||(!(BA&1)&& MX> = 2 * && MX <= A + 3 * B-2); BA&を返す1; } int型のmain(){ (Q =読み取り(のために); Q; Q - )プット((解決) "YES":? "NO"); 0を返します; } / * [ B、A) 限り操作としてボブターン、フィールド> =ブロック2bの存在は、その後、ボブが!勝つとき 、すべての1.A> = 2bの後ので、より多くの悲惨な、アリス初回のみ記入し、記入してください<Bのある 2.a∈[1、2B-Bの+ 1]通常、唯一のスポットのみがある場合> = LEN 2b及び<= A + 4B-2 * /