hdu1466 计算直线的交点数
题意:
平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数。
比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行)。
分析:
DP
设状态:f[i][j]表示i条直线能否产生j个交点。
有不同的交点数--->n条直线中有平行线。;n个点最多有n(n-1)/2个交点。
i条直线中j(j<=i)条平行线,i-j条自由线。
则此种交法的交点数就为(i-j)*j+k((i-j)*j为i-j条自由线与j条平行线的交点数,k为i-j条自由线的交点数 )
则状态转移方程:f[i][j] = f[(i-j)*j+k]( f[i-j][k]为真 )
code:
#include <stdio.h>
#include <string.h>
const int maxn = 21;
int f[maxn][191];
void init()
{int i, j, k;memset(f,0,sizeof(f));for(i=1; i<maxn; i++)f[i][0] = 1;for(i=1; i<maxn; i++)for(j=0; j<i; j++)for(k=0; k<=(i-j)*(i-j-1)/2; k++)if(f[i-j][k])f[i][(i-j)*j+k] = 1;
}
int main()
{int n, i;init();while(~scanf("%d",&n)){printf("0");for(i=1; i<=n*(n-1)/2; i++)if(f[n][i])printf(" %d",i);printf("\n");}return 0;
}
hdu1466 计算直线的交点数相关推荐
- HDU1466 计算直线的交点数
计算直线的交点数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- 杭电1466计算直线的交点数
计算直线的交点数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- 两直线交点坐标c语言,【计算直线的交点数】 (C语言代码)
解题思路: 将n条直线排成一个序列,直线2和直线1最多只有一个交点,直线3和直线1,2最多有两个交点,--,直线n 和其他n-1条直线最多有n-1个交点.由此得出n条直线互不平行且无三线共点的最多交点 ...
- C++ 计算直线的交点数(动态规划)
问题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1466 Problem Description 平面上有n条直线,且无三线共点,问这些直线能有多少种不同 ...
- hdu 1466 计算直线的交点数 递推
以前做这道题目的时候,花了好长时间找规律,感觉十分高大上,今天回顾这个题目的时候,突然有了顿悟, 有了递推的思想就容易解决了. 题意:给你n条直线,问:输出这些直线所有相交情况下的交点个数(升序输出) ...
- python直线交点数量_计算直线的交点数
0 1 0 2 3 n条直线两两相交最多有n*(n-1)/2个交点 n最大为20 交点最多为190 假设f(n)为n条直线的交点方案 有k条不互相平行的直线 那么f(n)=k*(n-k)(n-k条互 ...
- 【HDOJ7079】Pty loves lines(计算直线的交点方案数,打表)
Pty loves lines 题意: 平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数,输出方案,n<=700 思路: 原题是HDOJ1466,不过数据只有20. 首先考虑原本简 ...
- opencv判断 线夹角_opencv计算直线的斜率、截距,与水平线弧度值、角度值
opencv计算直线的斜率.截距,与水平线弧度值.角度值 发布时间:2018-07-10 12:56, 浏览次数:1324 , 标签: opencv 1.输入一堆直线,返回每条直线的斜率和截距 斜率和 ...
- 计算直线和平面的交点
平面的法向量N和平面上点P1可以确定一个平面 直线的方向向量N1和直线上一个点P0确定一条直线 已知P0不在平面上,计算直线和平面的交点P2 很容易理解,向量P0P1和向量P0P2在平面法线上的投影长 ...
最新文章
- java sql编码_java+sql 编码 UTF-8、ISO-8859-1、GBK
- 惊:FastThreadLocal吞吐量居然是ThreadLocal的3倍!!!
- C++_STL——unordered_map、unordered_multimap、unordered_set、unordered_multiset
- 一篇文章7.4万,Nature 33种期刊开放获取新政引争议,社区斥其「寄生虫」
- 小姐姐在硅谷生活了三年,实现了理想的生活模式
- [转载]婚姻不只是娶一个女人那么简单
- feign.RetryableException null executing post
- 千万商家的智能决策引擎AnalyticDB
- 基于.NET Compact Framework的应用程序和库汇总
- Docker 安装常用软件记录
- JavaScript面试题整理
- 数字图像处理理论课件(清华大学计算机科学与技术系)
- 开发一个类似美团的外卖小程序多少钱
- python写金字塔(数字金字塔)
- python方位角计算
- setDaemon python守护进程,队列通信子线程
- 基于asp.net181艺术品在线交易系统
- java 蓝桥杯 天干地支
- node.js菜鸟问题—— data被报无定义
- TS 类型备忘 音视频格式
热门文章
- it专员职责_网络IT专员岗位职责
- poj1509最小表示法
- UVA11624大火蔓延的迷宫
- 【Linux 内核 内存管理】Linux 内核内存布局 ④ ( ARM64 架构体系内存分布 | 内核启动源码 start_kernel | 内存初始化 mm_init | mem_init )
- 【设计模式】备忘录模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
- 【错误记录】Android 应用 release 打包报错处理 ( 关闭语法检查 | 日志处理 | release 配置 )
- 【错误记录】Android NDK 错误排查记录 ( Could not get version from cmake.dir path ‘xxx\cmake\3.6.4111459‘. )
- 【集合论】有序对 ( 有序对 | 有序三元组 | 有序 n 元祖 )
- vue切换路由时动画
- 如何将Android的AOSP仓库放置到自己的gitlab服务器上?