您的位置:首页 > 其它

codeforces 560

2015-08-04 14:52 302 查看
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;

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: