杭州)、英雄互娱(杭州) |
计算直线的交点数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description 平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数。 2 3 0 1 0 2 3 思路: 我们假设把M(M==4)条直线分为a,b两组:(a组的直线和第四条直线平行,b组相反) 此时交点数应为:a组的交b组的交点数+b组内部的交点数(a组内部和第四条直线平行) 当有三条直线和第四条直线平行时 :(4-0)*0+0=0; 当有两条直线和第四条直线平行时 :(4-1)*1+0=3; 当有一条直线和第四条直线平行时 :<1> 当b组的两条直线之间相互平行时 :(4-2)*2+0=4; <2> 当b组的两条直线相交时: (4-2)*2+1=5; 当有零条直线和第四条直线平行时 :<1> 当b组的三直线之间互相平行时: (4-3)*1+0=3; <2> 当b组的三条直线有两个交点时: (4-3)*1+2=5; <3> 当b组的三条直线有三个交点是: (4-3)*1+3=6; 总结: 对于m条直线的交点数: m-a条平行直线和a条交叉直线的交点数为 (m-a)*a+a条直线的交点数; 所以只要知道a条直线的交点数a,就可以知道任意m条直线的交点数 (m-a)*a+a条直线本身的交点数; 依次就可以解决问题了! AC代码: |
hdoj 1466计算直线的交点数(经典dp)
原文作者:张小象
原文地址: https://blog.csdn.net/zhangxiaoxiang123/article/details/50814355
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/zhangxiaoxiang123/article/details/50814355
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。