hdu2050 折线分割平面
2015-09-04 00:42
281 查看
欢迎参加——每周六晚的BestCoder(有米!)
折线分割平面
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 20660 Accepted Submission(s): 14155
Problem Description
我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。
Output
对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。
Sample Input
2
1
2
Sample Output
2
7
分析:出现最多的的区域,已知新出现的折线与原来的折线焦点越多,则区域越多,理论上第n折线的单边能与之前(n-1)*2条边形成交点,双边就是(n-1)*4,而面比交点多一,所以递推式是f(n)=4*(n-1)+1+f(n-1);
折线分割平面
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 20660 Accepted Submission(s): 14155
Problem Description
我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。
Output
对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。
Sample Input
2
1
2
Sample Output
2
7
分析:出现最多的的区域,已知新出现的折线与原来的折线焦点越多,则区域越多,理论上第n折线的单边能与之前(n-1)*2条边形成交点,双边就是(n-1)*4,而面比交点多一,所以递推式是f(n)=4*(n-1)+1+f(n-1);
[code]#include<cstdio> #include<cstring> using namespace std; long long a[10010]; int main() { a[0]=1,a[1]=2,a[2]=7; for(int i=3;i<10010;i++) a[i]=4*(i-1)+1+a[i-1]; int T;scanf("%d",&T); while(T--) { int n;scanf("%d",&n); printf("%lld\n",a ); } }
相关文章推荐
- C++ 虚函数表解析
- CURLOPT_NOSIGNAL
- 常见漏洞第三方扫描器
- python 编码问题:'ascii' codec can't encode characters in position 的解决方案
- 【Unlock xcode files?】
- 如何迅速将磁盘中文件目录树结构做成文本保存
- 修改Eclipse jdk环境
- [CSS] Animating SVG
- debug签名 和 release签名
- Expression Tree Introduction
- Android 录音PCM 转G711U,非常简单,非FFMPEG
- [Search Engine] 搜索引擎技术之网络爬虫
- swift 学习<五> String
- 通过SQL语句直接实现Excel与数据库的导入导出
- hdu2049 不容易系列之(4)——考新郎
- 【POJ3020】【总数-最大二分匹配】【最小路径覆盖和点覆盖的区别是 路径的话要所有点覆盖了】
- 充满梦想的log4net探索之旅
- iOS 自定义Loading指示器
- Date和Calendar类的使用(一个例子)
- Flume - Too many unapproved licenses: 1