题目意思就是每个人都有自己想得到的名次,0最后所结果的到的名次和预想的的差值,找出这个差值最小的和。
最近突然发现两个人分分值差的小问题,觉得很好玩就比较了一下,因为之前做过一道分值的背包问题,还让我想起前不久做的
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
int a[105];
int main()
{
int n,dif;
char s[45];
while(~scanf("%d",&n))
{
dif=0;
for(int i=1;i<=n;i++)
scanf("%s%d",s,&a[i]);
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
dif+=abs(i-a[i]);
printf("%d\n",dif);
}
return 0;
}
那个疯牛问题使最小距离最大化虽然知识点不同但是可以比较一下题型感觉蛮棒的,感兴趣的可以做一下。