G题 hdu 1466 计算直线的交点数
2015-07-05 20:59
176 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1466
Total Submission(s): 8799 Accepted Submission(s):
3973
[align=left]Problem Description[/align]
平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数。
比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行)。
[align=left]Input[/align]
输入数据包含多个测试实例,每个测试实例占一行,每行包含一个正整数n(n<=20),n表示直线的数量.
[align=left]Output[/align]
每个测试实例对应一行输出,从小到大列出所有相交方案,其中每个数为可能的交点数,每行的整数之间用一个空格隔开。
[align=left]Sample Input[/align]
2
3
[align=left]Sample Output[/align]
0 1
0 2 3
[align=left]Author[/align]
lcy
[align=left]Source[/align]
ACM暑期集训队练习赛(九)
题目大意:计算直线的交点数,注意考虑平行的问题,最后输出所有可能的交点个数。
解题思路:这里采用dp的方法。代码中有详解。
详见代码。
计算直线的交点数
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8799 Accepted Submission(s):
3973
[align=left]Problem Description[/align]
平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数。
比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行)。
[align=left]Input[/align]
输入数据包含多个测试实例,每个测试实例占一行,每行包含一个正整数n(n<=20),n表示直线的数量.
[align=left]Output[/align]
每个测试实例对应一行输出,从小到大列出所有相交方案,其中每个数为可能的交点数,每行的整数之间用一个空格隔开。
[align=left]Sample Input[/align]
2
3
[align=left]Sample Output[/align]
0 1
0 2 3
[align=left]Author[/align]
lcy
[align=left]Source[/align]
ACM暑期集训队练习赛(九)
题目大意:计算直线的交点数,注意考虑平行的问题,最后输出所有可能的交点个数。
解题思路:这里采用dp的方法。代码中有详解。
详见代码。
#include <iostream> #include <cstdio> #include <cstring> using namespace std; long long a[21][200]; //a[i][j]表示i条直线有j个交点,因为20条直线最多有C(20,2)=190条直线 //开200数组就够,下面循环也是一样。 int main () { memset(a, 0, sizeof(0)); for (int i=1; i<=20; i++) { a[i][0] = 1; for (int j=1; j<=i; j++) //i条直线中有j条非平行线,则有i-j条非平行线。 { for (int k=0; k<=190; k++) //遍历0-190,若j条线有k个交点成立,则在加上i-j条平行线就有i条线(i-j)*j+k个交点成立 { if (a[j][k]) a[i][(i-j)*j+k] = 1; } } } int n; while (scanf ("%d",&n)==1) { printf ("0"); for (int i=1; i<=190; i++) if (a [i]) printf (" %d",i); printf ("\n"); } return 0; }
相关文章推荐
- 声明一个不同数据类型的程序
- 胶体电荷重整化
- 黑马-OC语法-自定义构造方法和分类
- Unix/linux 进程间通讯 - 共享内存
- 8.事件处理
- SQL Server 2008的数据库快照功能介绍
- Ganglia监控搭建
- ajax的全局事件
- ubuntu change passward
- leetCode 13.Roman to Integer (罗马数字转整形) 解题思路和方法
- SQL Server中的Merge关键字
- Hadoop运行原理详解
- mosquitto在Linux环境下的部署/安装/使用/测试
- STL之rb_tree的find函数
- DELL R710在阵列卡上做raid的图例
- mosquitto在Linux环境下的部署/安装/使用/测试
- Debian - 设置MYSQL开机启动
- 图形化界面知识点
- javascript 删除数组中所有指定的值
- 厦门海沧区磁盘只有1TB的解决方案