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