C:
#include<stdio.h>
#include<string.h>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a1,a2,a3,a4,a5,a6;
int i;
int sum=0;
scanf("%d%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5,&a6);
sum+= (a2+a1)*(a6+a1)*2-a1*a1-a4*a4;
printf("%d\n",sum);
return 0;
}
补成一个正三角形就好了,,,,,,推推公式。。。。。
数学还是太差了、、、、、、、
D:题意我理解的太费劲了,,,就是两个串相等,要么每位都相等,要么左和右两部分与另一个相等(这个相等的定义也含有左右两边)
所以就是一个递归了(是不= =)
奇数位的话必须每位都相等
#include<stdio.h>
#include<string.h>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
char s[200005];
char t[200005];
bool isEuqal(int a, int b, int len) {
if(strncmp(s+a, t+b, len) == 0) return true;
if(len % 2 == 1) return false;
int l = len >> 1;
if(isEuqal(a, b, l) && isEuqal(a+l, b+l, l)) return true;
if(isEuqal(a+l, b, l) && isEuqal(a, b+l, l)) return true;
return false;
}
int main() {
scanf("%s %s", s, t);
int len1 = strlen(s), len2 = strlen(t);
if(len1 == len2 && isEuqal(0, 0, len1)) puts("YES");
else puts("NO");
return 0;
}