基本思路:
这道题暴力拿到14分并不难,根据题意模拟即可,具体代码在下面。
至于最后一个测试点超时的问题,现已解决,AC代码在第二部分哦~
参考代码(14分):
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll num[100005];int main()
{for(int i = 1; i <= 50000; i++)num[i] = i*i;int n;cin >> n;int res, i = 0;int l, r;while(1){l = 0, r = 0;for(int j = 1; j <= n+1; j++)l += num[i+j-1];for(int j = i+n+1; j <= i+n+n; j++)r += num[j];if(l == r){res = i;break;}i++;}for(int i = 1; i <= n+1; i++){if(i > 1)printf(" + ");printf("%d^2", res+i-1);}printf(" =\n");for(int i = 1; i <= n; i++){if(i > 1)printf(" + ");printf("%d^2", res+n+i);}return 0;
}
参考代码(15分):
#include<bits/stdc++.h>
using namespace std;int main()
{int n;scanf("%d", &n);int res = 2*n*n + n;for(int i = 1; i <= n+1; i++){if(i > 1)printf(" + ");printf("%d^2", res+i-1);}printf(" =\n");for(int i = 1; i <= n; i++){if(i > 1)printf(" + ");printf("%d^2", res+n+i);}return 0;
}
具体思路参考这位大佬啦~
思路来源