洛谷2301

题目描述

眼看着老师大军浩浩荡荡的向机房前进。LOI 的同学们决定动用自己的力量来保卫他们的好朋友loidc。现在每个人都要挑选自己的武器——两根木棍。一根用做远距离投掷,另一根用做近距离搏斗。每个人都想挑到最好的,但这是不可能的。但是为了让多数人满意,也为了减少大家的矛盾。cony设计了一个矛盾指数,这个指数就是每个人的不舒服指数和,不舒服指数就(L1-L2)^2,其中L1,L2分别是两根木棍的长度。

cony决定让矛盾指数最少,于是他来向你寻求帮助,希望你能告诉他矛盾指数至少有多少。

输入输出格式

输入格式:
第一行两个数m,n.

表示有n个人,m个木棍。

接下来m个数表示每个木棍(肯定有解)。

(m<=2000,n<=500)

输出格式:
一个数,最少的矛盾指数。

输入输出样例

输入样例#1:
5 2
3
1
4
5
8
输出样例#1:
5

分析:

先排序,显然组成一对的木棍必相邻才是最优的。

故得到方程

f[i,j]=min(f[i-1,j],f[i-2,j-1]+sqr(a[i]-a[i-1])) i=2..m

初值f[i,0]:=0;

代码:

program work;
var
f:array[..,..]of int64;
a:array[..]of int64;
n,i,m,j:longint; t:int64;
function min(x,y:int64):int64;
begin
if x<y then min:=x else min:=y;
end;
begin
readln(m,n);
for i:= to m do readln(a[i]);
for i:= to m- do
for j:=i+ to m do
if a[i]>a[j] then
begin t:=a[i]; a[i]:=a[j]; a[j]:=t; end;
for i:= to m do
for j:= to n do f[i,j]:=maxlongint*;
f[,]:=; f[,]:=;
for i:= to m do
for j:= to min(m div ,n) do
f[i,j]:=min(f[i-,j],f[i-,j-]+sqr(a[i]-a[i-]));
writeln(f[m,n]);
end.

习题:就是干(DP)的更多相关文章

  1. Acwing-277-饼干(DP)

    链接: https://www.acwing.com/problem/content/279/ 题意: 圣诞老人共有M个饼干,准备全部分给N个孩子. 每个孩子有一个贪婪度,第 i 个孩子的贪婪度为 g ...

  2. 习题9-3 UVA1629(dp)

    Cake Slicing 题意:有一个n行m列的网格上有一些黑点,要求进行切割,使最后每块上只有一个黑点,求最少的刀数 思路:记忆化搜索,枚举每一条边来切,每一次搜索自己所能切割的所有情况取最小值 但 ...

  3. uva12063数位dp

    辣鸡军训毁我青春!!! 因为在军训,导致很长时间都只能看书yy题目,而不能溜到机房鏼题 于是在猫大的帮助下我发现这道习题是数位dp 然后想起之前讲dp的时候一直在补作业所以没怎么写,然后就试了试 果然 ...

  4. 干物妹小埋 (离散化 + 线段树 + DP)

    链接:https://ac.nowcoder.com/acm/contest/992/B来源:牛客网 题目描述 在之前很火的一个动漫<干物妹小埋>中,大家对小埋打游戏喝可乐的印象十分的深刻 ...

  5. 树形DP习题

    听闻noip要考树形DP,本蒟蒻万分惶恐,特刷一坨题目,以慰受惊之心. codevs 1486 /*和非常出名的"选课"是一个题*/ #include<cstdio> ...

  6. 习题:烽火传递(DP+单调队列)

    烽火传递[题目描述]烽火台又称烽燧,是重要的防御设施,一般建在险要处或交通要道上.一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息:夜晚燃烧干柴,以火光传递军情.在某两座城市之间有n个烽火台,每个烽火台 ...

  7. 紫书 习题 11-16 UVa 1669(树形dp)

    想了很久, 以为是网络流最大流, 后来建模建不出来, 无奈. 后来看了 https://blog.csdn.net/hao_zong_yin/article/details/79441180 感觉思路 ...

  8. 单调队列优化DP——习题收集

    前言 感觉可以用单调队列优化dp的模型还是挺活的,开个随笔记录一些遇到的比较有代表性的模型,断续更新.主要做一个收集整理总结工作. 记录 0x01 POJ - 1821 Fence,比较适合入门的题, ...

  9. 计蒜客习题:蒜头君的积木 (状压DP 枚举子集)

    问题描述 蒜头君酷爱搭积木,他用积木搭了 n 辆重量为 wi的小车和一艘最大载重量为 W 的小船,他想用这艘小船将 n 辆小车运输过河.每次小船运载的小车重量不能超过 W.另外,小船在运载小车时,每辆 ...

随机推荐

  1. JDBC配置文件db.properties(Mysql) 及dbutils的编写

    #数据库驱动driver=com.mysql.jdbc.Driver#数据库连接url=jdb:mysql://localhost:3306/newdb3?useUnicode=true&ch ...

  2. django+xadmin在线教育平台(十七)

    8-1 课程列表 拷贝课程列表页到template目录 创建课程相关的urls.py Mxonline2/urls.py中声明包含到course的url中: # 课程app的url配置 url(r&q ...

  3. Git 项目提交代码及一些常用命令

    在dev_ysg分支 : git add . //把项目添加到仓库 git commit -m "test" // 提交加注释 git push //推到dev_ysg分支上去 g ...

  4. laravel框架excel 的导入导出功能

      1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. ...

  5. Nodejs 使用 addons 调用c++ 初体验(一)

    纠结很久,决定写一点遇到的“坑”. 基础环境:win7-64bit  node(v7.5.0)   这些安装实在是太方便了,自行准备吧. 1. 安装 python(2.7.x ),用npm安装 nod ...

  6. Python系列5之模块

    模块 1. 模块的分类 模块,又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合(即程序代码和数据结构的集合体). (1)自定义模块 自己定义的一些可以独立完成某个功能的一段程序语句,可以是 ...

  7. docker和docker compose常用操作命令

    首先区分一下docker中几个概念 Image:镜像,相当于一个root文件系统,不包含任何动态数据 Container:容器,镜像运行时的实体,实质是进程,容器进程运行于属于自己的独立的命名空间 d ...

  8. python -pickle模块、re模块学习

    pickel模块 import pickle #pickle可以将任何数据类型序列化,json只能列表字典字符串数字等简单的数据类型,复杂的不可以 #但是pickle只能在python中使用,json ...

  9. python递归函数(计算阶乘)

    def f1(x,x1=1): if x == 1: return x1 #x1这个值为我们所需要的值,所以返回 x1 *= x r = f1(x-1,x1) #r接收返回值,并在下面接着返回 ret ...

  10. DHT11温湿度传感器编程思路以及代码的实现(转载)

    源自:https://blog.csdn.net/qq_34952376/article/details/81193938 在我们刚开始进入单片机的学习中,练习写传感器的时序是必不可少的,其实我比较推 ...