题目链接
题目大意:
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;
}