CSU - 2059 Water Problem(Z線分割平面)
阿新 • • 發佈:2018-07-26
pre fin 兩個 定義 ali algorithm mat height 個數字
一條‘Z’形線可以將平面分為兩個區域,那麽由N條Z形線所定義的區域的最大個數是多少呢?每條Z形線由兩條平行的無限半直線和一條直線段組成
Input
首先輸入一個數字T(T<100),代表有T次詢問 每次詢問輸入一個數字N(N<1e8),代表有N條Z形線
Output
對於每次詢問,在一行輸出N條‘Z’形線所能劃分的區域的最大個數為多少
Sample Input
2 1 2
Sample Output
2 12
Hint
分析:
首先考慮一個類似的問題:
有N組直線,每組都由3條平行的直線構成,3條直線的間距可以調整。
那麽N組直線最多劃分出多少個區域?
這個問題就很容易求出來,3n(3n-1)/2+1
本題的答案,就是把每組3條平行直線變成Z,也就是在3n(3n-1)/2+1的基礎上再減2n即可
所以:(9*n*n-7*n+2)/2
code:
#include<stdio.h> #include<algorithm> #include<memory.h> #include<math.h> using namespace std; typedef long long LL; #define INF 0x3f3f3f3f #define max_v 1005 int main() { int t; scanf("%d",&t); LL n;while(t--) { scanf("%lld",&n); printf("%lld\n",(9*n*n-7*n+2)/2); } return 0; }
CSU - 2059 Water Problem(Z線分割平面)