练习3-N

题目:Problem N 

Problem Description
我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。<br><img src=../data/images/C40-1008-1.jpg>

Input
输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量。<br><br>

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

Sample Input
   
   
2 1 2

Sample Output
   
   
2 7

题意:

用折线切割平面,其中,一条折线的头部不会造成切割;

思路:

1递推递推,先分析下直线分割平面的情况,增加第n条直线的时候,跟之前的直线最多有n-1个交点,此时分出的部分多出了

      (n-1)+1;

2折线也是同理,f(1)=2,f(2)=7,先画好前面n-1条折线,当增加第n条拆线时,此时与图形新的交点最多有2*2(n-1)个,所以分出的部分多出了2*2(n-1)+1   

    所以推出f(n)=f(n-1)+4*(n-1)+1,n>=3



代码:

# include <iostream>


using namespace std;

int_fast64_t ff[10005];

int f()
{
    ff[0] = 0;
    ff[1] = 2;
    for(int i = 2; i < 10005; i++)
    {
        ff[i] = ff[i-1] + 4*(i-1)+1;
    }
}
int main()
{
    f();
    int n;
    cin >> n;
    while(n--)
    {
        int m;
        cin >> m;
        cout << ff[m] <<endl;
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(完整版)python练习题-答案 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布 之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版 )python练习题- 答案)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈 ,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为(完整版)python练习题-答案的全部内容。 (完整版)python练习题-答案 编辑整理:张嬗雒老师 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库, 发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望 (完整版)python练习题—答案 这篇文档能够给您的工作和学习带来便利。同时我们也真诚的希望收到您的建议和反馈 到下面的留言区,这将是我们进步的源泉,前进的动力. 本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为 <(完整版)python练习题-答案〉 这篇文档的全部内容. Python练习题库 By 郑红波 2017—12-19 1. 填空题 1. Python标准库math中用来计算平方根的函数是__________。(sqrt) 2. 在Python中__________表示空类型。(None) 3. 列表、元组、字符串是Python的_________(有序?无序)序列。(有序) 4. 查看变量类型的Python内置函数是________________。(type()) 5. 查看变量内存地址的Python内置函数是_________________。(id()) 6. 表达式[1, 2, 3]*3的执行结果为______________________。([1, 2, 3, 1, 2, 3, 1, 2, 3]) 7. list(map(str, [1, 2, 3]))的执行结果为_____________________。(['1', '2', '3']) 8. 已知 x = 3,并且id(x)的返回值为 496103280,那么执行语句 x += 6 之后,表达式 id(x) == 496103280 的值为___________。(False) 9. 已知 x = 3,那么执行语句 x *= 6 之后,x的值为________________。(18) 10. 表达式"[3] in [1, 2, 3, 4]"的值为________________。(False) 11. 假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是______________________。([6, 7, 9, 11]) 12. 使用列表推导式生成包含10个数字5的列表,语句可以写为_______________。([5 for i in range(10)]) 13. 假设有列表a = ['name', 'age', 'sex']和b = ['Dong', 38, 'Male'],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为 "键",以列表b中的元素为"值",这个语句可以写为_____________________。(c = dict(zip(a, b))) 14. 任意长度的Python列表、元组和字符串中最后一个元素的下标为________。(-1) 15. Python语句''.join(list('hello world!'))执行的结果是____________________。('hello world!') 16. 转义字符'\n'的含义是___________________。(回车换行) 17. Python语句list(range(1,10,3))执行结果为___________________.([1, 4, 7]) 18. 切片操作list(range(6))[::2]执行结果为________________.([0, 2, 4]) 19. 表达式 'ab' in 'acbed' 的值为________。(False) 20. Python 3.x语句 print(1, 2, 3, sep=':') 的输出结果为____________。(1:2:3) 21. 表达式 int(4**0。5) 的值为____________。(2) 22. 达式 sorted([111, 2, 33], key=lambda x: -len(str

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值