UVA_10271

总的来讲,我们应该从大到小去安排筷子,因为如果从小到大去安排的话,最后剩下的不一定可以作为最长的那根。

我首先将筷子反过来存在了数组a[]里面,这样用f[i][j]表示一共有到第i根这么多的筷子安排给j个人的最小的badness,那么如果3*j==i+1,f[i][j]=f[i-2][j-1]+(a[i–1]–a[i])*(a[i-1]-a[i]),否则f[i][j]=min{f[i][j-1],f[i-2][j-1]+ (a[i–1]–a[i])*(a[i-1]-a[i])},当然3*j<=i+1且j<=K+8。

#include<stdio.h>#include<string.h>#define MAXD 5010#define MAXK 1010#define INF 1000000000int K, N, a[MAXD], f[MAXD][MAXK];void init(){int i, j;    scanf("%d%d", &K, &N);for(i = N - 1; i >= 0; i --)        scanf("%d", &a[i]);}void solve(){int i, j, k, temp;for(i = 0; i < N; i ++)for(j = 0; j <= K + 8; j ++)        {if(j)                f[i][j] = INF;else                f[i][j] = 0;        }for(i = 0; i < N; i ++)for(j = 1; 3 * j <= i + 1 && j <= K + 8; j ++)        {            f[i][j] = f[i - 2][j - 1] + (a[i - 1] - a[i]) * (a[i - 1] - a[i]);if(3 * j < i + 1)            {if(f[i - 1][j] < f[i][j])                    f[i][j] = f[i - 1][j];            }        }    printf("%d\n", f[N - 1][K + 8]);}int main(){int t;    scanf("%d", &t);while(t --)    {        init();        solve();    }return 0;}

UVA 10271 Chopsticks相关推荐

  1. ZOJ 1234 UVA 10271 Chopsticks

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

  2. uva 10271——Chopsticks

    题意:有n只筷子,然后选出来k+8套(一套有三只,分别ABC),一套筷子质量为最小的两只的平方,选出的使得总的质量和最小. 思路:01背包.dp[i][j]表示j套利选出来i套的最优解,每个都有选当前 ...

  3. UVa在线比赛单题汇总-----DP专题

    动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...

  4. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  5. UVa Online Judge 工具網站

    UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...

  6. (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  7. 算法竞赛入门经典+挑战编程+USACO

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  8. 提取了下刘汝佳推荐的题号...

    今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started    10055 - Hashmat the Brave Warrior ...

  9. ACMer Training 学习指导

    本文原地址 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 二.<算法竞赛入门经典> ...

最新文章

  1. 哪些是我们必须要会深度学习知识
  2. 深入理解Android Paging分页加载库
  3. 微信小程序开发遇到的那些“坑”(1.2.0-1.4.0)
  4. 计算机网络实用期末试题和答案,计算机网络期末考试试题及答案(1)
  5. 二级c语言程序设计bug,《C语言及程序设计》实践项目——发现Bug
  6. 查看进程占用,并kill掉
  7. 原理图符号(原理图库)创建流程及注意事项
  8. 中芯国际三季度营业收入创新高;德州仪器与德赛西威签署合作备忘录 | 全球TMT...
  9. 英语用法整理_英式\美式英语区分
  10. dos(cmd)命令
  11. 开发操作系统(2)键盘驱动
  12. 前端学习笔记 - px,em,rem,%,vw,vh,vm
  13. 16_ZYNQ7020开发板gpio输入实验
  14. OLTP、OLAP与HTAP
  15. mysql报警代码183_mysql误删操作回复
  16. iOS 抖音插件 抖音直播红包插件 抖音直播红包采集 抖音直播红包自动领取 抖音hook Tweak 源码
  17. Java项目:SSM驾校预约管理系统
  18. CSS伪类(Pseudo-classes)、伪元素、伪类选择器
  19. SPSS正交设计的操作
  20. 【python 图片识别】python识别图片是不是包含二维码

热门文章

  1. 通过ping命令测试主机与虚拟机之间是否连通
  2. android 网络时区 错误,React native 安卓机器上调试代码报错:网络请求出错TypeError: Network request failed...
  3. SVN主干与分支的合并
  4. c++二进制文件java读取int_吃透Java基础十二:IO
  5. php中静态方法的调用,php中静态方法和非静态方法如何相互调用?
  6. 第四范式送上2022虎年祝福
  7. erlang精要(30)-卫语句
  8. rust(52)-二叉最大堆BinaryHeap
  9. 【Python基础】太香了!推荐6个Python数据分析神器!!
  10. 中文分词的古今中外,你想知道的都在这里