咋一看,Manhattan Sort?纳尼?其实水题一道...运用了贪心,因为要总的移动的距离最小的最优办法就是直接把它挪到它应该放的地方,况且每个数都是唯一的
struct node{
int id;
int v;
}p[33];
bool cmp(node a,node b){
return a.v<b.v;
}
int main(){
int t;
scanf("%d",&t);
int ca=1;
while(t--){
int n;
scanf("%d",&n);
int i;
int ans = 0;
for(i=1;i<=n;i++){
scanf("%d",&p[i].v);
p[i].id = i;
}
sort(p+1,p+1+n,cmp);
for(i=1;i<=n;i++){
ans += abs(p[i].id-i);
}
printf("Case #%d: %d\n",ca++,ans/2);
}
return 0;
}
722

被折叠的 条评论
为什么被折叠?



