问题标题: 酷町堂:5568 相同字母(same)TLE50

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者
#include <bits/stdc++.h>
#pragma GCC optimize(3)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize(2)
using namespace std;
int m,n;
void f(string &a){

    for(int i=0;i<n;i+=2){
        if(a[i]=='x'){
            a.insert(i+1,"x");
        }else{
            a[i]='x';
            a.insert(i+1,"y");
        }
        n=a.size();
    }
}
int main(){
    scanf("%d%d",&m,&n);
    string a,b;
    cin>>a>>b;
    for(int i=1;i<=m;i++){
        f(a);
        f(b);
    }
    int c=0;
    for(int i=0;i<n;i++){
        if(a[i]==b[i]){
            c++;
        }
    }
    printf("%d",c);
    return 0;
}

???????????????????

TLE50


0
0
李显晨
李显晨
中级启示者
中级启示者

主要代码:

for(int i=1;i<=m;i++) cin>>a[i];
    for(int i=1;i<=m;i++) cin>>b[i];
    int tmp=0;
    for(int i=1;i<=m;i++){
        if(a[i]!=b[i]) tmp++;
    }
    for(int i=1;i<=n;i++) m*=2;
    cout<<m-tmp;

不需要火车头!!!

0
汪宇航
汪宇航
新手启示者
新手启示者

注:力荐火车头、黑科技的各位,别痴心妄想的用"火车头和黑科技可以避免一部分超时问题"等来水回答了

PS:如果在我从此以后的贴里(TLE的)发"火车头和黑科技可以避免一部分超时问题"等,直接举报!刀下留头不留人!!!

0
被禁言 张皓轩
张皓轩
中级光能
中级光能

这题要想不超时,得有树状数组或线段树

建议用树状数组,好用&容易理解

王子耀会,这是初中冲刺班的一道题

0
车轩立
车轩立
资深守护
资深守护

用什么树状数组,要找规律;

这里把规律告诉你,

首先,需要算出变化n次后的字符串的长度;即用原字符串长度  乘上  2的n次方;

然后,可以发现变化后的两个字符串不一样的字符个数与原来两个字符串不一样的字符个数是一样的;

           所以,你只要求出原来两个字符串不一样的字符个数就是现在两个字符串不一样的字符个数;

           则:答案就是用变化n次后的字符串的长度  减去  原来两个字符串不一样的字符个数;即可

最后,记得数据用long long,否则会90分。

0
车轩立
车轩立
资深守护
资深守护

当然,用啥树状数组未必不行;

          想秀一下可以用,但本人不推荐;

0
0
我要回答