题目网址:http://codeforces.com/contest/1151/problem/A

题目大意:给定一个由大写字母构成的字符串和它的长度,有这样的操作,使任意一个字母变成与其相邻的字母,默认A与Z相邻,问最少多少次操作使得有字串是ACTG?

题解:数据量小,暴力即可,即从左向右扫,四个一组进行判断,注意,扫到Z要分析两种情况。

 #include<bits/stdc++.h>
#define ll long long
using namespace std;
string a="ACTG";
int main()
{
int n,ans=,res=;
string s;
cin>>n;
cin>>s;
for(int i=;i<=n-;i++) {
ans=;
for(int j=;j<=;j++) {
ans+=min(abs(s[i+j]-a[j]),-abs(s[i+j]-a[j]));
}
res=min(res,ans);
}
cout<<res<<endl;
return ;
}
05-11 15:25
查看更多