平面分割問題
p條直線相交于一點時,分割的圖形有 2*(n-1) 個,此時再加一條直線,在 2*(n-1) 的基礎上再加 n條,此時為2*n
?
n條曲線,其中有m條相交于一點,每兩個曲線都交于兩點
?
平面上有n條直線,且無三線共點,問這些直線能有多少種不同交點數。 比如,如果n=2,則可能的交點數量為0(平行)或者1(不平行)。


1 #include<iostream> 2 #include<cstdio> 3 #include<string> 4 #include<cstring> 5 #include<map> 6 #include<set> 7 #include<algorithm> 8 #include<cmath> 9 #include<cstdlib> 10 using namespace std; 11 int f[25][200]; 12 void solve() 13 { 14 f[1][0] = 1; 15 for (int n = 2; n <= 20; n++) 16 { 17 f[n][0] = 1; 18 for (int i = 1; i < n; i++) 19 for (int j = 0; j < 200; j++) 20 if (f[n - i][j]==1) 21 f[n][j + i * (n - i)] = 1; 22 } 23 } 24 int main() 25 { 26 solve(); 27 int n; 28 while (scanf("%d", &n) != EOF) 29 { 30 int t = 0; 31 for (int i = 0; i <= n * (n - 1) / 2; i++) 32 if (f[n][i]) 33 { 34 t++; 35 if (t != 1) printf(" "); 36 printf("%d",i); 37 } 38 printf("\n"); 39 } 40 41 return 0; 42 } 43
?
https://blog.csdn.net/somksomk/article/details/8500194