简单dp
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int a[22][12];
int f[22][12];
int main()
{
// freopen("E:\input.txt", "r", stdin);
int n, k, i, j, min;
while ((scanf("%d%d", &n, &k)) != EOF)
{
memset(a, 0, sizeof(a));
memset(f, 0, sizeof(f));
for (i = 1; i <= n; i ++)
{
for (j = 1; j <= k; j++)
{
scanf("%d", &a[i][j]);
}
}
for (i = 1; i <= k; i++)
{
f[n][i] = 0;
}
for (i = n - 1; i >= 1; i--)
{
for (j = 1; j <= k; j++)
{
// int t = 1;
f[i][j] = abs(a[i][j] - a[i + 1][1]) + f[i + 1][1];
for (int t = 2; t <= k; t++)
{
int temp = abs(a[i + 1][t] - a[i][j]) + f[i + 1][t];
if (temp < f[i][j])
{
f[i][j] = temp;
}
}
}
}
min = f[1][1];
for (i = 2; i <= k; i++)
{
if (f[1][i] < min)
{
min = f[1][i];
}
}
printf("%d\n", min);
}
return 0;
}