计算直线的交点数
2013-07-15 11:48
323 查看
计算直线的交点数
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K
(Java/Others)
Problem Description
平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数。
比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行)。
Input
输入数据包含多个测试实例,每个测试实例占一行,每行包含一个正整数n(n<=20),n表示直线的数量.
Output
每个测试实例对应一行输出,从小到大列出所有相交方案,其中每个数为可能的交点数,每行的整数之间用一个空格隔开。
Sample Input
2
3
Sample Output
0 1
0 2 3
Author
lcy
Source
ACM暑期集训队练习赛(九)
Recommend
lcy
思路:
i(i〈20)表示只限条数,交点最多为i*(i-1)/2,因此开一个数组为a[20][201]。第一个下标为直线条数,第二个坐标为可能的交点数。
j=0时,表示第k条直线与其他(i-k)条直线都平行。
j!=0时,表示第k条直线与其他(i-k)条直线不全部平行。
#include<stdio.h>
#include<string.h>
int main()
{
int a[21][200],i,j,k,n;
memset(a,0,sizeof(a));
a[0][0]=1;
a[1][0]=1;
a[2][0]=1;
a[2][1]=1;
for(i=3;i<=20;i++)
for(k=i-1;k>=0;k--)
for(j=0;j<=k*(k-1)/2;j++)
if(a[k][j]==1)a[i][(i-k)*k+j]=1;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<=n*(n-1)/2;i++)
{
if(i==0){printf("0");continue;}
if(a
[i]==1)printf(" %d",i);
}
printf("\n");
}
}
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K
(Java/Others)
Problem Description
平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数。
比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行)。
Input
输入数据包含多个测试实例,每个测试实例占一行,每行包含一个正整数n(n<=20),n表示直线的数量.
Output
每个测试实例对应一行输出,从小到大列出所有相交方案,其中每个数为可能的交点数,每行的整数之间用一个空格隔开。
Sample Input
2
3
Sample Output
0 1
0 2 3
Author
lcy
Source
ACM暑期集训队练习赛(九)
Recommend
lcy
思路:
i(i〈20)表示只限条数,交点最多为i*(i-1)/2,因此开一个数组为a[20][201]。第一个下标为直线条数,第二个坐标为可能的交点数。
j=0时,表示第k条直线与其他(i-k)条直线都平行。
j!=0时,表示第k条直线与其他(i-k)条直线不全部平行。
#include<stdio.h>
#include<string.h>
int main()
{
int a[21][200],i,j,k,n;
memset(a,0,sizeof(a));
a[0][0]=1;
a[1][0]=1;
a[2][0]=1;
a[2][1]=1;
for(i=3;i<=20;i++)
for(k=i-1;k>=0;k--)
for(j=0;j<=k*(k-1)/2;j++)
if(a[k][j]==1)a[i][(i-k)*k+j]=1;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<=n*(n-1)/2;i++)
{
if(i==0){printf("0");continue;}
if(a
[i]==1)printf(" %d",i);
}
printf("\n");
}
}
相关文章推荐
- hdu 1466 计算直线的交点数
- hdu 1466 计算直线交点数
- POJ1269(计算几何基础-直线与直线之间的关系与它们的交点)
- hdoj1466 计算直线的交点数 ( DP )
- cf#21-B-Intersection-计算几何-求直线交点个数
- [HDU1466][动态规划DP]计算直线的交点数
- hdu 1466 计算直线的交点数
- 计算直线的交点数(HDU 1466)
- 计算直线的交点数
- 杭电-1466 计算直线的交点数
- DP+数学——计算直线的交点数
- HDU 1466 计算直线的交点数(简单dp)
- HDU 1466 计算直线的交点数
- poj 3340 Segments(计算几何,直线跟线段的交点)
- UVA 11178 Morley’s Theorem(计算几何直线的交点)
- 递推—杭电1466 计算直线的交点数(待解决)
- HDU 1466 计算直线的交点数
- HDU 1466 计算直线的交点数
- HDU 1466 计算直线的交点数
- 【杭电】[1466]计算直线的交点数