HDU-2050
来源:互联网 发布:scilab 矩阵作差 编辑:程序博客网 时间:2024/06/05 08:41
链接:
http://acm.hdu.edu.cn/showproblem.php?pid=2050
题目:
Problem Description
我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。
Input
输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0
Output
对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。
Sample Input
2
1
2
Sample Output
2
7
思路:
转自:zhouhong1026,我稍微优化了一下公式。
1.如果在一个平面上有一个圆和n条直线,这些直线中每一条在圆内同其他直线相交,假设没有3条直线相交于一点,试问这些直线将圆分成多少区域。
容易得出:每新增一条直线,就将原来所有的区域分为两半,因此第n条直线会在原来的基础上新增n个平面:
通项推导:
2. 若每次使用两条直线分割,即此时的n相当于原来的2n,直接将上述问题推导结果中的n替换为2n,即:
3. 若是普通直线,相交处所分割的平面为4份,而折线为两份,即每次分割比上面所考虑的情况少2份,那么只要在上述情况的每次分割时减去2就能得到本题的结果了:
通项公式:
实现:
#include <cstdio>int main() { long long t, n; scanf("%lld", &t); while(scanf("%lld", &n), t--) printf("%lld\n", 2*n*n-n+1); return 0;}
- hdu 2050
- hdu 2050
- hdu 2050
- hdu 2050
- HDU-2050
- HDU-2050
- hdu 2050
- hdu 2050
- hdu 2050
- hdu 2050
- hdu 2050
- HDU 2050
- hdu 2050
- HDU-2050
- HDU 2050 递推
- HDU:2050解题报告
- hdu 1290 2050
- HDU 2050 分割问题
- Java的几种对象(PO,VO,DAO,BO,POJO)解释
- PAT——1020月饼
- 面向虚拟现实更新旧版 Unity* 游戏
- leetcode 292. Nim Game(C语言)
- 第3周实践项目7 删除链表元素最大值
- HDU-2050
- 精简版jre下tzmapping文件的问题
- ./nginx: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No
- 解除分配UNASSIGN
- zookeeper服务端
- tcp和udp 学习整理(1)
- Python join()函数的使用
- 如何高效设计游戏——游戏策划的自我修养与心得
- 各种top