/**
贪心 :贪心选择性质,可行性
(预先离散化处理)
*/
#include <algorithm>
#include <stdio.h>
#include <math.h>
using namespace std;
const int N = 103;
struct node
{
int num,id;
void input(int i)
{
scanf("%d",&num);
id = i;
}
}arr[N];
bool cmp(node a,node b)
{
return a.num < b.num;
}
int main()
{
int sp = 0,t,n,i,map[N];
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i = 0; i < n; ++i)
arr[i].input(i);
sort(arr,arr + n, cmp);
int res = 0;
for(i = 0; i < n; ++i)
map[arr[i].id] = i;
for(i = 0; i < n; ++i)
res += abs(i - arr[i].id);
printf("Case #%d: %d\n",++sp,res>>1);
}
return 0;
}
hdu 4137 Manhattan Sort 贪心 想法
最新推荐文章于 2022-12-03 19:48:18 发布
本文介绍了一种名为Manhattan Sort的排序算法,通过贪心策略实现。首先对输入进行离散化处理,然后根据数值大小进行排序,并计算每个元素与其原始位置之间的曼哈顿距离,最终输出平均距离的一半作为结果。
摘要由CSDN通过智能技术生成