题目链接
题目大意:
n 道菜放进烤箱 , 每道菜的最佳烹饪时间是 t [i] ,然后 如果在 T 时间取出 ,那么不愉快值就是 | T- t [i] | 一次只能取一盘
问 取出所有的菜最小不愉快值是多少
解题思路:
dp
代码如下:
#include<iostream>
#include<set>
#include<vector>
#include<algorithm>
using namespace std;
const int maxn=1e3;
const int inf=0x3f3f3f3f;
int dp[maxn][maxn];
int a[maxn];
int main()
{
int i,j,n,k,x;
int t;
cin>>t;
while(t--)
{
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+n+1);
for(i=0;i<=2*n;i++)
{
for(j=0;j<=n;j++)
{
dp[i][j]=inf;
dp[i][0]=0;
}
}
for(i=1;i<=2*n;i++)
for(j=1;j<=n;j++)
dp[i][j]=min(dp[i-1][j-1]+abs(a[j]-i),dp[i-1][j]);
cout<<dp[2*n][n]<<endl;
}
return 0;
}