• 题意:有\(n\)个菜在烤箱中,每个时刻只能将一个菜从烤箱中拿出来,第\(i\)个时刻拿出来的贡献是\(|i-a[i]|\),你可以在任意时刻把菜拿出来,问将所有菜拿出的最小贡献是多少?

  • 题解: 先对所有菜从小到大排序,因为\(a_i\)单调,我们可以枚举时刻\([1,2*n]\)来进行DP,先更新第一道菜的状态,然后再更新后面的状态,每道菜可以由当前时刻之前的前一道菜的状态转移而来,所以写出状态转移方程:\(dp[i][j]=min(dp[i-1][k]+abs(j-a[i]),dp[i][j])\).

  • 题解:

    int t;
    int n;
    int a[N];
    int dp[4000][4000];
    int ans; int main() {
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    cin>>t;
    while(t--){
    cin>>n;
    ans=INF;
    for(int i=1;i<=n;++i) cin>>a[i];
    sort(a+1,a+1+n);
    me(dp,INF,sizeof(dp));
    for(int i=1;i<=4*n;++i) dp[1][i]=abs(i-a[1]);
    for(int i=2;i<=n;++i){
    for(int j=i;j<=4*n;++j){
    for(int k=1;k<j;++k){
    dp[i][j]=min(dp[i-1][k]+abs(j-a[i]),dp[i][j]);
    }
    }
    }
    for(int i=1;i<=4*n;++i) ans=min(ans,dp[n][i]);
    cout<<ans<<endl;
    } return 0;
    }

最新文章

  1. 用Kotlin语言重新编写Plaid APP:经验教训(II)
  2. 再次记录 Visual Studio 2015 CTP 5 的一个坑
  3. .html(),.text()和.val()的差异总结:
  4. 应用Spring MVC发布restful服务是怎样的一种体验
  5. IOS的MVC
  6. ◆◆◆◆◆◆◆◆◆◆◆linux下软件包的管理◆◆◆◆◆◆◆◆◆◆◆◆◆◆
  7. iOS中解析 XML / JSON
  8. MySQL基础之 path环境变量的作用 (科普)
  9. codeforces 几道题目
  10. java--函数练习
  11. PHP中将内容循环出来
  12. 从equals和==的区别开始
  13. Linux useradd
  14. asp.net mvc ajax提交模型到控制器
  15. Visual Studio 2012 和 SVN 结合实现版本控制 AnkhSvn
  16. Android学习之Button按钮在程序运行时全部变大写的处理
  17. RedHat6.5安装zookeeper集群
  18. SQL Server查询时添加一列连续的自增列
  19. Ionic 安装最新版本错误
  20. lua的table的删除操作

热门文章

  1. 谈谈你不知道的gist
  2. MySQL的索引优化分析(一)
  3. docker 常用的容器命令
  4. 【Linux】find查找空文件夹
  5. 【Linux】添加硬盘不需要重启服务器
  6. 24V转3.3V芯片,同步降压调节器
  7. 干货!上古神器 sed 教程详解,小白也能看的懂
  8. IE双击打不开解决办法
  9. 时间模块,os模块,sys模块
  10. python基础(int,str,bool,list)