首页 > 代码库 > hdu 1466 计算直线的交点数
hdu 1466 计算直线的交点数
http://acm.hdu.edu.cn/showproblem.php?pid=1466
N条直线的交点方案数 = c 条直线交叉的交点数与(N-c)条平行线 + c 条直线本身的交点方案 = (N - c) * c + c 条直线之间的交点数。
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 int dp[21][200]; 7 8 void inti() 9 {10 for(int i=0; i<=20; i++)11 {12 for(int j=0; j<=190; j++)13 dp[i][j]=0;14 }15 for(int i=0; i<=20; i++)16 {17 dp[i][0]=1;18 for(int j=0; j<=i; j++)19 {20 for(int k=0; k<=j*(j-1)/2; k++)21 {22 dp[i][(i-j)*j+dp[j][k]*k]=1;23 }24 }25 }26 }27 28 int main()29 {30 int n;31 inti();32 while(scanf("%d",&n)!=EOF)33 {34 printf("0");35 for(int i=1; i<=190; i++)36 {37 if(dp[n][i])38 {39 printf(" %d",i);40 }41 }42 printf("\n");43 }44 return 0;45 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。