方法セパレータを順に最後の項目であるn列のK、K + 1個のブロックに分割されている挿入するように、セパレータの列数です。
、nはプログラムの最後のn個の数にジャンプ、M回のジャンプで、k以上のそれぞれの遷移距離を列数の問題を単純化することを意図しています。
我々は、問題となる何方法セパレータを使用して、m個のブロックに挿入され、その後、我々はすべての長さを置くことができ、各セクションの長さをK以上であることを保証するために、組み合わせの数を左にプッシュされ理解します。
被検体は、問題(M-2)の選択された組合せの数(N-2-(M-1)*(K-1))が必要です。
最後ルーカス決意因子定理2は、パリティを決定することができます。
#include <ビット/ STDC ++ H> の#defineは長い長いllの 使用 名前空間STDを、 LL T、N、M、K。 インライン読み取り11() { LL、X = 0、FF = 1 。 チャー CH = GETCHAR()。 一方、(!isdigit(CH)) { 場合(CH == ' - ')FF = - 1 。 CH = GETCHAR()。 } 一方(isdigit(CH)) { X =(X << 1)+(X << 3)+(CH ^ 48)。 CH = GETCHAR()。 } 戻りのx *のFF。 } int型のmain() { freopenは(" 1.in "、" R " 、STDIN)。 T = 読み取ります(); 以下のために(int型 iは= 1 ; iが<= T iが++ ) { N = read()は、M =()を読み出す; = K (リード)。 もし(((M- 2)&(N- 2 - (M- 1)*(K- 1)))==(M- 2))はcout << " はい" << てendl; 他 裁判所未満<< " ノー」 << てendl; } リターン 0 ; }
...