[DP]直線の交点

説明

nはまっすぐ平面上の線、3線や無の共通点がありますが、直線はどのように多くの異なる交点求められることができます。
例えば、n = 2の場合、可能な交点の数が0(平行)または1(非平行)です。

エントリー

テストケースを複数備えた入力データは、ラインごとに各テストケースは、各ラインは、N(N <= 20)は、正の整数が含まれ、nは直線の数を表します。

輸出

クロスポイントのそれぞれの可能な数は、各列の間の整数で空白で区切られた前記小から大への出力の1行に各テストケースに相当するが、すべての交差方式をリストします。

サンプル入力

2
3

サンプル出力

0 1
0 2 3

元のタイトル

HDOJ
分析:
動的プログラミングは、提供されたn個の直線が平行線をm個の
平行線(NM)の直線N = M *の交差点を+直線(nm)の直線の交点。
コード:
の#include <ビット/ STDC ++ H.>
使用して名前空間STD;
int型のmain()
{
int型A [201]、N- [21である];
のmemset(A、0、はsizeof(A))、
A [0] [0] = A [1] [0] = 1;
のための(INT I = 2、I <21であり; I ++)
{
A [I] [0] = 1;
のための(INT J = 1; J <Iは、J ++)
{
int型X = J;
INT Y =のIJ;
のための(INT K = 0; K <= Y *(Y-1)/ 2; K ++)// C(N-2)/ 2
{
IF(A [Y] [K 】)
A [I] [X Y + K] = 1;
}
}
}
ながら(N - >> CIN)
{
int型T = 0;
のための(INT I = 0; I <= N
(N - 1)/ 2。 ++ I)
{
IF(I == 0){COUT << I; T = 1;}
そうでない
場合([N] [I])
{
IF(T)COUT <<」「。
coutの<< I;
}
}
COUT << ENDL。
}
0を返します。
}

公開された65元の記事 ウォンの賞賛0 ビュー1310

おすすめ

転載: blog.csdn.net/Skynamer/article/details/104055719