SGU135 Drawing Lines

来源:互联网 发布:网络大电影后期宣发 编辑:程序博客网 时间:2024/06/06 19:54

SGU135 Drawing Lines

题目大意

问N条直线最多能把平面划分为多少个区域

算法思路

当平面上有N条直线时,再画一条直线会多出N+1个区域
因此,fN+1=fN+N+1
不难得出通项公式,fN=N(N+1)2+1

时间复杂度: O(1)

代码

/** * Copyright © 2015 Authors. All rights reserved. *  * FileName: 135.cpp * Author: Beiyu Li <sysulby@gmail.com> * Date: 2015-06-14 */#include <bits/stdc++.h>using namespace std;#define rep(i,n) for (int i = 0; i < (n); ++i)#define For(i,s,t) for (int i = (s); i <= (t); ++i)#define foreach(i,c) for (__typeof(c.begin()) i = c.begin(); i != c.end(); ++i)typedef long long LL;typedef pair<int, int> Pii;const int inf = 0x3f3f3f3f;const LL infLL = 0x3f3f3f3f3f3f3f3fLL;int main(){        int n;        scanf("%d", &n);        printf("%d\n", (n & 1? (n + 1) / 2 * n: n / 2 * (n + 1)) + 1);        return 0;}

0 0
原创粉丝点击