折线分割平面

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 31105    Accepted Submission(s): 21012

Problem Description
我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。
 
Input
输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量。

 
Output
对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。

 
Sample Input
2
1
2
 
Sample Output
2
7
 
Author
lcy
 
Source

思路: 
第n条折线应该与前n-1条折线的两条边都相交时交点最多,由于该折现与每条折线的两条边分别有两个交点,每个交点都分割出一条线段(端点处为射线),所以此时有4*(n-1)条线段和两条射线,但是端点处两条线段相交,因此还要减去1。状态转移方程为:dp[n] = dp[n - 1] + 4 * (n - 1) + 2 - 1

参考:http://blog.csdn.net/wyk19950704/article/details/50429420?locationNum=10&fps=1

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define maxn 10010
int main()
{
int n,T;
long long dp[maxn];
dp[] = ;
for(int i=;i<=;i++){
dp[i] = dp[i-] + *(i-) + - ;
}
while(cin >> T){
while(T--){
cin >> n;
cout << dp[n] << endl;
}
}
return ;
}

最新文章

  1. 编译原理-词法分析05-正则表达式到DFA-01
  2. Android 网络开发之WIFI
  3. javascript code snippet -- Forwarding Mouse Events Through Layers
  4. 利用Redis cache优化app查询速度实践
  5. android studio没有org.apache.http.client.HttpClient;等包问题 解决方案
  6. 《跨终端Web》读书笔记
  7. 重启php-fpm
  8. 【Linux】 诊断工具-strace
  9. Delphi泛型评测(30篇)
  10. linux 多线程编程笔记
  11. ASCII与Unicode编码消息写文件浅析
  12. Android应用安全学习笔记前言
  13. 高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高可用热备
  14. SpringBoot 中 @RestController 和 @Controller 的区别
  15. jQuery 命名空间的使用
  16. 【Java】-NO.13.Java.1.Foundation.1.001-【Java IO】-
  17. js冒泡事件
  18. 一款纯css3实现的超炫动画背画特效
  19. 在Centos 7 上面 安装MySQL 5.7 简录
  20. 利用Docker快速部署Oracle环境

热门文章

  1. JDK的命令行工具系列 (一) jps、jstat
  2. java常见面试题目(三)
  3. redis实现排行榜
  4. 第二十二章 跳出循环-shift参数左移-函数的使用 随堂笔记
  5. 4、一个打了鸡血的for循环(增强型for循环)
  6. kafka客户端和服务端开发(三)
  7. abc -- 牛客
  8. Java——异常处理
  9. Window服务基于Quartz.Net组件实现定时任务调度(二)
  10. (18)ASP.NET Core 基于现有数据库创建EF模型(反向工程)