这是比较经典的DP  有一点很明显 却很难肯定的

那就是在最好的分组方案中,每组中两根较短的筷子在有序筷子数列中一定是相邻的
dp[j][i]表示从前i根筷子中挑出j组(不考虑第三根)
dp[j][i]=min{
                 dp[j][i-1];(i>j*2)
                 dp[j-1][i-2]+(hash[i]-hash[i-1])^2;(n-i>(k-j)*3)
              }

太恶心了 做得我很郁闷 代码贴上 备忘

#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
long hash[5010];
long dp[1010][5010];
int main()
{
    long T,K,N;
    scanf("%ld",&T);
    while (T--)
    {
        scanf("%ld %ld",&K,&N);
        long i,j;
        for(i=0;i<N;++i)
        {
            scanf("%ld",&hash[i]);
        }
        sort(hash,hash+N,greater<long>());
        long t=hash[1]-hash[2];
        dp[0][2]=t*t;

for (i=3;i<N;++i)
        {
            t=hash[i]-hash[i-1];
            t*=t;
            dp[0][i]=dp[0][i-1]>t?t:dp[0][i-1];
        }

for (i=1;i<K+8;++i)
        {
            long s=3*i+2;
            t=hash[s]-hash[s-1];
            t*=t;

dp[i][s]=dp[i-1][s-2]+t;
            for (j=s+1;j<N;++j)
            {
                t=hash[j]-hash[j-1];
                t*=t;
                t=dp[i-1][j-2]+t;

dp[i][j]=dp[i][j-1]>t?t:dp[i][j-1];
            }
        }
        printf("%ld\n",dp[K+7][N-1]);

}
    return 0;
}

转载于:https://www.cnblogs.com/zhuangli/archive/2008/08/05/1261508.html

HDU 1500(经典的恶心DP)相关推荐

  1. hdu 2196(经典树形dp)

    题意:给你一颗边带权值的树,求树上的每一点距离其最远的一个点的距离 解题思路:这道题网上说是经典的树形dp,不过确实很巧妙.两次dfs应该是比较好想到的,因为某节点最大的距离要么就是一直走到叶子节点, ...

  2. HDU 1231.最大连续子序列-dp+位置标记

    最大连续子序列 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  3. hdu 1500 Chopsticks

    http://acm.hdu.edu.cn/showproblem.php?pid=1500 dp[i][j]为第i个人第j个筷子. 1 #include <cstdio> 2 #incl ...

  4. HDU 6156 Palindrome Function 数位DP

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6156 题目描述: 求L~R所有的数的l~r进制的f(x), f(x) = 当前进制 如果回文串, f ...

  5. HDU 4652 Dice:期望dp(成环)【错位相减】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4652 题意: 给你一个有m个面的骰子. 两种询问: (1)"0 m n": &qu ...

  6. HDU 5115 Dire Wolf 区间dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5115 Dire Wolf Time Limit: 5000/5000 MS (Java/Others ...

  7. HDU 6143 Killer Names (组合数学+DP)

    Description 字母表的长度为\(m\),用表中的字母构造长度为\(2n\)的字符串,要求同一种字母能同时出现在前\(n\)个字符中和后\(n\)个字符中.输出方案数,结果模\(10^9+7\ ...

  8. HDU 5693 D Game 区间dp

    D Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5693 Description 众所周知,度度熊喜欢的字符只有两个:B 和D. 今天,它 ...

  9. Hdu 2089-不要62 数位dp

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=2089 不要62 Time Limit: 1000/1000 MS (Java/Others)    Me ...

最新文章

  1. 通过异或运算符加密解密 难度二星
  2. 大剑无锋之内存泄漏是什么?【面试推荐】
  3. js倒计时代码最简单的_代码设计开发-6大基本原则解读(最简单扼要的理解)
  4. Ansible基础概述
  5. 【图论】【模板】静态仙人掌(luogu 5236)
  6. kasp技术原理_KASP基因型测定技术在各个学科的应用实践(内附官方重要资料)...
  7. 旷视科技Face++进军机器人业务
  8. pythonsocket自定义协议_Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器...
  9. 笔记-js高程-第七章 函数表达式
  10. APP界面设计流程和APP产品设计流程知识汇总
  11. 购物提醒(基于python的信息轰炸)
  12. windows 7 远程桌面连接图文教程
  13. BGP多线和双线双IP服务器有什么区别? 哪个网站访问速度更快?
  14. 如何用计算机弹出斗地主的声音,电脑为什么只有斗地主的时候有声音?
  15. php上传文件失败解决方式
  16. Android流畅度总结
  17. 教育行业课程介绍话术
  18. ILSSI|六西格玛DMAIC的历程
  19. 流媒体、直播解决方案及趋势
  20. DOM ------ 仿淘宝关闭二维码

热门文章

  1. stretchblt 模糊_微软开源持续开发模糊测试工具OneFuzz
  2. 思科三层交换机开启ipv6路由功能_三层交换机实现路由功能配置示例与详解 (Cisco Packer Tracer 模拟器)...
  3. android图片传输三方框架,Android开发三种第三方图片加载的框架
  4. java 方法绑定_java 方法调用绑定
  5. Python 列表实现原理
  6. error: src refspec main does not match any
  7. 【火炉炼AI】机器学习042-NLP文本的主题建模
  8. 总结|数学建模的收获
  9. Sublime Text 3运行JavaScript控制台
  10. 一种新的人机交流方式——sound ware 声件