HDU 7105 Power Sum

题目链接:HDU 7105 Power Sum

题目大意:

题解:
易知((x+1)^2-(x+2)^2-(x+3)^2+(x+4)^2=4),所以可以令(n)(4)取模,根据余数(0,1,2,3)取不同的(01)序列,后面加上(frac{n}{4})个“(1001)”即可。

#include <iostream>
#include <string>
using namespace std;

int t, n;
const int ki[] = {0, 1, 4, 2};
const string ti[] = {"", "1", "0001", "01"};

int main() {
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    cin >> t;
    while (t--) {
        cin >> n;
        string ans = ti[n % 4];
        int k = ki[n % 4];
        while (n >= 4) {
            ans += "1001";
            k += 4;
            n -= 4;
        }
        cout << k << endl << ans << endl;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/IzumiSagiri/p/15203231.html