1. 程式人生 > 其它 >找規律+遞推: J - 折線分割平面

找規律+遞推: J - 折線分割平面

技術標籤:演算法技巧

https://vjudge.net/contest/423078#problem/J

我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。

Input

輸入資料的第一行是一個整數C,表示測試例項的個數,然後是C 行資料,每行包含一個整數n(0<n<=10000),表示折線的數量。

Output

對於每個測試例項,請輸出平面的最大分割數,每個例項的輸出佔一行。

Sample Input

2
1
2

Sample Output

2
7

AC程式碼:

#include<cstdio>
#include<iostream>
#pragma warning (disable:4996)
#include<string>
using namespace std;
const int maxn = 10000 + 5;
const int INF = 0x7fffffff;
long long int dp[maxn] = { 0 };
int main() {
	int c;
	scanf("%d", &c);
	dp[1] = 2;
	dp[2] = 7;
	for (int i = 3; i < maxn; i++)
		dp[i] = dp[i - 1] + 4 * (i - 1) + 1;
	for(int i=0;i<c;i++) {
		int n;
		scanf("%d", &n);
		printf("%lld\n", dp[n]);
	}
	return 0;
}