Chopsticks

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=234

题目大意:给定n个筷子的长度,取k+8套筷子,每套有3个,长度分别为A,B,C。要求k+8套筷子中(A-B)^2的和最小,输出这个最小值。

分析:题目中筷子长度是非降序排列的,所以最小的两个A和B一定是相邻的。先不考虑筷子C,只要留着就行。

  令dp[i][j]表示从 j 个筷子中取 i 套筷子的最优值。

  dp[i][j] = min {dp[i][j-1] , dp[i-1][j-1] | (n - j > 3*(k - i))剩下的筷子可以凑满}

  可以用滚动数组

代码如下:

 1 # include<iostream>
 2 # include<cstring>
 3 # include<cstdio>
 4 using namespace std;
 5  long  MAX = 2147483647;
 6 long  dp[1005][5005];
 7 long  f[5005];
 8 int main(){
 9     int T,i,j,k,n;
10     long temp;
11     cin>>T;
12     while(T--)
13     {
14         scanf("%d%d",&k,&n);
15         for(i=1;i<=n;i++)
16             cin>>f[i];
17         k += 8;
18         memset(dp,0,sizeof(dp));
19         for(i=1;i<=k;i++)
20         {
21             for(j=i*2;j<=n;j++)
22             {
23                 dp[i][j] = MAX;
24                 if(j>i*2)
25                     dp[i][j] = dp[i][j-1];
26                 if(n-j>(k-i)*3)
27                 {
28                     temp = dp[i-1][j-2] + (f[j]-f[j-1])*(f[j]-f[j-1]);
29                     if(temp<dp[i][j])
30                         dp[i][j] = temp;
31                 }
32             }
33         }
34         cout<<dp[k][n]<<endl;
35     }
36     return 0;
37 }

转载于:https://www.cnblogs.com/acm-bingzi/p/3258805.html

ZOJ 1234 Chopsticks(动态规划)相关推荐

  1. ZOJ 1234 UVA 10271 Chopsticks

    这个题目,筷子应该最好是非降序排列的(只要输入的时候处理一下即可),这样处理起来就比较方便,因为这样就可以保证在后来的计算中,每取两个筷子都有比他们两根长的筷子,就可以符合题意了. 下面贴代码: Vi ...

  2. 神牛笔记:吉林大学ACM总结(fennec)

    其实在北京比赛完的时候,我就想写了,不过还是早了点,直到上海比赛结束,大家的心中都不是太好受.郭老师有句话:你们这样做也是对的,不成功就成仁.让我的心也能安慰了不少. 我是从大一下学期开始接触ACM的 ...

  3. 一位学长的ACM总结(感触颇深)

    发信人: fennec (fennec), 信区: Algorithm 标 题: acm 总结 by fennec 发信站: 吉林大学牡丹园站 (Wed Dec 8 16:27:55 2004) AC ...

  4. POJ ZOJ题目分类

    POJ,ZOJ题目分类(多篇整合版,分类很细致,全面) 标签: 题目分类POJ整理 2015-04-18 14:44 1672人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: ACM资料(5) ...

  5. POJ,ZOJ题目分类(多篇整合版,分类很细致,全面)

    水题: 3299,2159,2739,1083,2262,1503,3006,2255,3094 初级: 一.基本算法:        (1)枚举 (1753,2965)       (2)贪心(13 ...

  6. ZOJ 题目分类,学校的一个巨巨做的。

     DP: 1011      NTA                    简单题 1013      Great Equipment        简单题 1024      Calendar ...

  7. poj题目详细分类及算法推荐题目

    DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  1024   Calendar Game       简单题  ...

  8. ACM POJ 题目分类(完整整理版本)

    DP: 1011   NTA                 简单题  1013   Great Equipment     简单题  1024   Calendar Game       简单题   ...

  9. PUK ACM题目分类

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

最新文章

  1. L1-047 装睡 (结构体解决)
  2. 调试JDK源码-ConcurrentHashMap实现原理
  3. 公司网络问题----------网络设备老化的问题
  4. linux ssh免密登陆远程服务器
  5. 和华为hr电话面试的反思
  6. 计算机硬件性能提升定律,❤️多核编程·笔记
  7. js 在新窗口中打开URL
  8. SAP Spartacus里的WindowRef对象
  9. IdentityServer4(六)授权码流程原理之SPA
  10. 集合对偶律:分别用图文证明
  11. Eclipse 下载 开源项目 maven依赖丢失和 Deployment Assembly 丢失
  12. cocos2d-x画线
  13. moodle php代码解读_Moodle插件moodle 二次开发基础知识一
  14. C#实现将文件、文件夹压缩为压缩包
  15. 使用nslookup查询域名的MX记录
  16. 京东商城--商城研发部面试
  17. 使用pytorch获取bert词向量 将字符转换成词向量
  18. sklearn_逻辑回归制作评分卡_菜菜视频学习笔记
  19. 51单片机基础之继电器
  20. 4418. 选元素(动态规划)

热门文章

  1. SqlServer2005高效分页sql查询语句汇总
  2. 树形数据深度排序处理示例(递归法).sql
  3. Repeater使用 AspNetPager分页控件
  4. 改变客户端访问时的方法名
  5. mysql 关联关系
  6. Javascript编码规范,好的代码从书写规范开始,增强代码的可读性,可维护性,这是相当重要的!...
  7. Linux的DNS配置2-主从服务器
  8. 放在NSArray、NSDictionary等容器内的对象Item,Item中的property在程序运行过程中被无故释放...
  9. 最近用unity5弄的一些渲染
  10. 神经网络与机器学习 笔记—反向传播算法(BP)