题目:http://vj.bit-studio.cn/contest/209424#problem/F
方法:额,我感觉自己走的是条捷径,就是找规律,首先可以把一条折线看作两条直线,找出k条折线与2k条直线划分平面之间的关系,假设划分数量分别MIAN(K)与main(2k);
我发现MAIN(K)=mian(2k)-2k;然后再找出2k条直线划分的规律;k=1,2,3,4;mian(2k)分别是2,4,7,11;发现mian(2k)=!(2k)+1;所以MIAN(K)=!(2K)+1-2K;就算出来了
d=====( ̄▽ ̄*)b
代码:
#include<iostream> #include<math.h> using namespace std; int k(int n) { int m = 0; for (int i = 1; i <= n; i++) m += i; return m; } int main() { int m; cin >> m; for (int i = 0; i < m; i++) { int p; cin >> p; cout << k(2*p) +1-2*p << endl; } }