题目记录5

题目: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;
    }
}
原文地址:https://www.cnblogs.com/miaos/p/miaoz-1-13.html