hdu1466计算直线的交点数

    xiaoxiao2021-03-25  95

    题目链接:点击打开链接

    对于n个点,若有m条相互平行的线,则交点数可以是m*(n-m)+(n-m)个点所相交的个数

    #include<stdio.h> int main() { int n,m,i,j,k; int a[25][210]; for(i=0;i<210;i++) a[0][i]=0; for(i=1;i<=20;i++) { a[i][0]=1; for(j=1;j<=i*(i-1)/2;j++) a[i][j]=0; for(j=1;j<i;j++) { m=i-j; for(k=0;k<=m*(m-1)/2;k++) if(a[m][k]) a[i][j*m+k]=1; } } while(~scanf("%d",&n)) { printf("0"); for(i=1;i<=n*(n-1)/2;i++) if(a[n][i]) printf(" %d",i); printf("\n"); } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-16228.html

    最新回复(0)