免费html转wordpress,衡水seo营销,网站后台无法修改信息,轮播网站题意#xff1a; N个外星人围成一桌坐下#xff0c;有序的排列指N在N-1与N1中间#xff0c;现在给出一个序列#xff0c;问至少交换几次可以得到有序的序列。 分析#xff1a; 复制一遍输入序列#xff0c;放在原序列之后。相当于环。通过枚举#xff0c;可以把最小交换…题意 N个外星人围成一桌坐下有序的排列指N在N-1与N1中间现在给出一个序列问至少交换几次可以得到有序的序列。 分析 复制一遍输入序列放在原序列之后。相当于环。通过枚举可以把最小交换次数求出来。正向枚举后将序列反过来再来一次。 代码 #include iostream#include cstring#include cstdio#include algorithm#include cmathusing namespace std;int v[1010];int vis[1010];int n;int solve(int l,int r){ memset(vis,0,sizeof(vis)); int cnt0; for(int il;ir;i) { if(vis[i]1) continue; cnt; int starti,nowv[i]l-1; while(now!start) { vis[now]1; nowv[now]l-1; } } return n-cnt;}int main(){ while(scanf(%d,n)n) { int i; for(i0;in;i) { scanf(%d,v[i]); v[in]v[i]; } int ans10000000; for(i0;in;i) ansmin(ans,solve(i,in-1)); reverse(v,vn); for(i0;in;i) v[in]v[i]; for(i0;in;i) ansmin(ans,solve(i,in-1)); printf(%d\n,ans); }}转载于:https://www.cnblogs.com/137033036-wjl/p/4929372.html