様々な食堂を訪問した後、学校、どのような有名な観光名所?この瞬間、私ではもちろん、教室、
彼らは、高三階に来ました。あなたは身元認証システムへの三階入り口、まだいくつか持っている何かに高いがあることがわかります
人類の歴史の痛みを。
人は遅れている9月の到着は毎年、子供の靴の三年は、主に学校のスケジュールに使用されていないが、
非常に活発作成、2013年のように、moreDの同志大臣年の規律検査部門不可避である
身元認証システムの犠牲者を。彼は、子供用の靴の各プラス電子ミールカードの認証情報を提供します:n個の* n個の
すべての行と列が2つの特定のポイントを持って行列を、。moreD仲間デザインアイデンティティ認証システムは、
これらの行列がでてくる読みになり、独自のマトリックスをベースと各学生ので、これは、解析され
、システムが0.00001s子供の靴の身元を認証することができます。このような靴は後半登録率がしますしている
(クレジットカードの事)加速し、私たちのクラスの時間は、単純で、速い、便利な統計を無駄にされることはありません。この
カットのおかげでは、神聖な牛をmoreD。
しかし、そこに超高IQ者、子供用の靴は、しばしば遅く、ペナルティなしのため、彼は割れたmoreDのある
身元認証システム、および独自の認証情報は、変更を行いました。ニュースの直後にmoreDその
本や他の悪いバグの改善。
彼は限り偽のID認証情報製造、行列のうち、「リピート」のように、いくつかの行列のためにことがわかっ
率が多くを削減されます。
「繰り返し」行列Aとして定義され、行列Bへの変換のランクを介して任意の回数、行列A、B
考え重複。
たとえば、次の3×3行列に対して、前記マトリックスは、マトリックスBは行列を「繰り返し」と見なされています。
moreD nに疑問に思い、どのように異なるを埋めるために、行列の「リピート」することはできません多く
、身元認証システムを変更することが忙しいmoreD学生情報、この骨の折れる作業は、あなただけの、あなたに与えられています
高い学生はあまりないかもしれないので答えは、その上に100000007 MODの出力値が必要です。
入力フォーマット:
最初の行、整数tは、データセットの数を表します。次T線は、それぞれ、整数n、データのセットを並べます。
出力フォーマット:
T線、各プログラムの数を表す整数。答えは大きいかもしれないので、唯一の出力番号プログラムする必要があり、その上に値MOD 100000007を。
サンプル入力:
3 2 3 4
出力例:
1 1 2
データ範囲:
データのための10%をn≤5、データN≤150の50%、
100%のデータT≤5N≤2,000。
制限時間:
1Sスペースの制限:
256MDP + +番号理論について図
10分後に暴力がテーブルを打ったときのゲーム
だから、最初のプッシュ結論
点として、それぞれ元の長方形の各行の各列について
その後、矩形上の点であっても片側の対応する行と列の点
その後、画像は、辺の数$ 2 * n個の$、$ 2 * n個の$である二部グラフは、ポイントを取得示します
長方形のランクを変更することができるので、その後の答えは、この二部グラフ、本質的には、異なる数字の数です
異なる性質二部グラフは、で得られた二部グラフの反対側から接続モードを変更することなく、交換列または行セットポイントによって設定されていません
上記の、両方の二部グラフは基本的に同じです
それを見つけることができる場合は、その限り2つのリンク部グラフと、彼らは、本質的に異なっていなければならない異なるブロックサイズの数など
タイトルは、各行が各列が2点を有していなければならないことを確認します
次いで二部グラフは、2つのブロックユニコムの最小であるべきです
プログラム番号は、その後、最終的な答えは、正の整数N解決(2以上の正の整数)であります
DPの前に、列挙子は、分割スキームを蓄積することができます
#include <bits/stdc++.h> #define mod 100000007 using namespace std; int t,n,dp[2100]; int main() { scanf("%d",&t); while (t--) { scanf("%d",&n); memset(dp,0,sizeof(dp)); dp[0]=1; for (int i=2;i<=n;i++) { ための(int型 J = I; J <= nであり、j ++ ) { DP [J] =(DP [J] + DP [JI])%MOD。 } } のprintf(" %d個の\ n " 、DP [N])。 } }