网站建设汇报评估,wordpress播放m3u8,首页设计的公司官网,网站怎么做认证吗题意#xff1a;给定一个字符串#xff0c;然后判断最小经过若干次交换然后使这个串变成一个回文串#xff08;每次可以交换相邻两位#xff09;。 思路#xff1a;贪心。如果一个串的奇数字母的个数为奇数个#xff0c;那么一定是不可能的。以开头和结尾作为两头不断枚举…题意给定一个字符串然后判断最小经过若干次交换然后使这个串变成一个回文串每次可以交换相邻两位。 思路贪心。如果一个串的奇数字母的个数为奇数个那么一定是不可能的。以开头和结尾作为两头不断枚举最小交换次数直到字符串的个数为2. code #include iostream
#include cstdio
#include cmath
#include algorithm
#include cstring
#include sstream
#include string
#include vector
#include list
#include queue
#include stack
#include map
#include set
#include bitsetusing namespace std;typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;const int INF0x3fffffff;
const int inf-INF;
const int N1000000;
const int M2005;
const int mod1000000007;
const double piacos(-1.0);#define cls(x,c) memset(x,c,sizeof(x))
#define cpy(x,a) memcpy(x,a,sizeof(a))
#define ft(i,s,n) for (int is;in;i)
#define frt(i,s,n) for (int is;in;i--)
#define lson l,m,rt1
#define rson m1,r,rt1|1
#define lrt rt1
#define rrt rt1|1
#define middle int m(rl)1
#define lowbit(x) (x-x)
#define pii pairint,int
#define mk make_pair
#define IN freopen(in.txt,r,stdin);
#define OUT freopen(out.txt,w,stdout);char s[150];
int cnt[30];
int main()
{int T;scanf(%d,T);while (T--){scanf(%s,s);cls(cnt,0);int l0,rstrlen(s)-1,k0,ans0,m-1;ft(i,l,r){if (cnt[s[i]-a]) cnt[s[i]-a]--,k--;else cnt[s[i]-a],k;}if (k1) {puts(Impossible);continue;}if (k1) ft(i,0,26) if(cnt[i]1) mi;while(lr){if (s[l]s[r]) {l,r--;continue;}if (s[l]-am) {ft(i,l1,r-1){if (s[i]s[r]){frt(j,i,l1) swap(s[j],s[j-1]),ans;r--,l;break;}}}else {frt(i,r-1,l1)if (s[i]s[l]){ft(j,i,r-1)swap(s[j],s[j1]),ans;r--,l;break;}}}printf(%d\n,ans);}
}