Codeforces文字列で1221 Eゲーム

フェイス質問

 

   一見、私は法律を見つけるために、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 
	
* /

  

おすすめ

転載: www.cnblogs.com/JYYHH/p/11566607.html