問題の意味
ありnは、商品の種類及びm個のバックパックは、満たすために各記事の無限の数、バックパックにこれらのアイテムの数が今、あります。
図1に示すように、バックパックの各々は、物品の同じ種類にすることはできません(バックパックフリー可能)が発生。
2、すべてメートルのバックパックは、それぞれの記事が登場しています。
プログラムの数を求めて10 ^ 7 + 9 のmod。
思考
少なくとも、各アイテムは、全体のスキームが減算されるように表示されないように、一度全てのバックパックに表示させたいので、その後のアイテムのために私は、SO 2をその、プログラム中の2が^メートルあり、それぞれのバックパック内の各項目が表示されますを考えます^ M - 1、アイテムがnあり、それは(2 ^ M -1)である^ nは
コード
#include <ビット/ STDC ++ H> 名前空間STDを使用して、 #define INF 0x3f3f3f3f の#define LL長い長 のconst int型N = 200005。 const int型MOD = 1E9 + 7。 constのダブルEPS = 1E-8; constのダブルPI = ACOS(-1.0); #define lowbit(X)(X&( - X)) LL GCD(-1,11,11- B){戻りB == 0:GCD(B、%のB);}? LL qpow(-1,11,11- B) {LL RES = 1;一方、(b)は、{(B&1)であれば、RES = RES *%のMOD; A = A *%のMOD; B >> = 1;}戻りRES;} LL INV(LL A、LL P ){戻りqpow(P-2);} int型のmain() { のstd :: IOS :: sync_with_stdio(偽)。 LL N、M。 CIN >> N >> M。 COUT << qpow((qpow(2、M)-1 + MOD)%のMOD、N)<< ENDL。 0を返します。 }