搬寝室

搬寝室 - 九度教程第 99 题 搬寝室 - 九度教程第 99 题 题目 时间限制:1 秒 内存限制:32 兆 特殊判题:否 题目描述: 搬寝室是很累的,xhd 深有体会.时间追述 2006 年 7 月 9 号,那天 xhd 迫于无奈要从 27 号楼搬到 3 号楼,因为 10 号要封楼了.看着寝室里的 n 件物品,xhd 开始发呆,因为 n 是一个小于 2000 的整数,实在是太多了,于是 xhd 决定随便搬 2k 件过去就行了... 阅读详情


Description

搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2*k件过去就行了.但还是会很累,因为2*k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手的物品的重量差的平方成正比(这里补充一句,xhd每次搬两件东西,左手一件右手一件).例如xhd左手拿重量为3的物品,右手拿重量为6的物品,则他搬完这次的疲劳度为(6-3)^2 = 9.现在可怜的xhd希望知道搬完这2*k件物品后的最佳状态是怎样的(也就是最低的疲劳度),请告诉他吧.
 

Input

每组输入数据有两行,第一行有两个数n,k(2<=2*k<=n<2000).第二行有n个整数分别表示n件物品的重量(重量是一个小于2^15的正整数).
 

Output

对应每组输入数据,输出数据只有一个表示他的最少的疲劳度,每个一行.
 

Sample Input

2 1 1 3
 

Sample Output

4
 

看见这题目就笑了,不是和上次那题一样的思路吗,只是从最大变成了最小,还有初始化也有不同。

dp[i][j]=min(dp[i ][j - 1],dp[i-1][j-2]+d[j]);

i代表取的次数,j代表个数。

其中d[]数组代表的是这个数和前一个数的差的平方,这样这个数与前一个的差方和后一个数的差方都可以表示出来且不重复,就是记录一下值而已。还有,物品要先排序。

 

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long a[2005], d[2005];
long long dp[1005][2005];
long long min(long long a, long long b)
{
	return a < b ? a : b;
}
bool cmp(long long a, long long b)
{
	return a < b;
}
int main()
{
	int  i, j, m, n, k;long long ans, sum;
	while (scanf("%d%d", &n, &k) != EOF)
	{
		for (i = 1; i <= n; i++)
			cin >> a[i];
		sort(a + 1, a + 1 + n, cmp);
		d[0] = d[1] = 0; j = 0;
		for (i = 2; i <=n; i++)
		{
			d[i] = (a[i] - a[i - 1])*(a[i] - a[i - 1]);
		}
		dp[1][0] = dp[1][1] = 0;
		dp[1][2] = d[2];
		for (i = 3; i <= n; i++)
		{
			dp[1][i] = min(dp[1][i - 1], d[i]);
		}
		for (i = 2; i <= k; i++)
		{
			for (j = 2 * i; j <= n; j++)
			{
				if (j == 2 * i)
					dp[i][j] = dp[i - 1][j - 2] + d[j];
				else
					dp[i][j] = min(dp[i][j - 1], dp[i - 1][j - 2] + d[j]);
			}
		}
		//for (i = 1; i <= k; i++)
		//{
		//	for (j = 1; j <= n; j++)
		//		cout << dp[i][j] << " ";
		//	cout << endl;
		//}
		//for (i = 1; i <= n; i++)
		//	cout << d[i] << " ";
		//cout << endl;
		cout << dp[k][n] << endl;
	}
	return 0;
}


『杭电1421』搬寝室 Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2*k件过去就行了.但还是会很累,因为2*k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手的物品的重量差的平方成正比(这里补充一句,xhd每次搬两件东西,左手一件右手一件).例如xhd左手拿重量 阅读详情

相关推荐

从零到英雄:Spring Boot 微服务架构全攻略

在数字化转型的时代,微服务架构已成为构建可扩展、高可用系统的首选方案。本文以“从零到英雄”为主题,详细指导读者使用Spring Boot快速构建微服务帝国。从基础环境搭建入手,逐步深入到服务发现、配置管理、负载均衡、断路器、API网关、安全认证、监控与部署等核心模块。通过大量代码示例和详细解释,包括中文注释,帮助初学者和中级开发者掌握Spring Boot的核心概念和技术实践。文章强调实际操作,涵盖RESTful API开发、数据库集成、容器化部署等内容,并讨论常见问题与优化策略。无论你是Java开发者还是

一个被知识诅咒的人 2698

问题 C: 搬寝室(DP)

存在0+(val[i]-val[i-1])*(val[i]-val[i-1]) <所以要使得质量差的平方小,只能排序后取质量相邻两个物品作为一对;(但有个漏洞,每对第一个元素计算所用的。第i件物品和不含有第i件物品。f[i][j-1] 的情况。

2301_79140115的博客 426

避坑指南:大疆智图集群建模中5个90%新手会踩的雷(附错误日志分析)

本文针对大疆智图集群建模功能,总结了新手在部署和运行时极易遇到的五个常见问题,包括共享目录权限与路径、主从节点版本一致性、临时存储路径设置、网络与防火墙配置以及错误日志分析。文章结合具体错误日志,提供了详细的排查步骤和解决方案,旨在帮助用户快速定位并解决问题,充分发挥集群建模的效率优势。

weixin_29238147的博客 335

Hdoj 1421.搬寝室 题解

Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2k件过去就行了.但还是会很累,因为2k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度...

优快云2082的博客 427

达梦7实时主备集群

达梦7实时主备配置实时主备数据环境说明配置主库配置 dm.ini配置dmmal.ini配置dmarch.ini配置dmwatcher.ini配置dmwatcher.ini以mount方式启动主库设置OGUID修改数据库为primary模式配置备库 在服务器部署过程中,通常搭建有数据库主备集群,用于防备数据库服务器产生问题影响数据正常,在此,我们分享一下在虚拟机环境中模拟搭建实时主备的数据守护模式。 在搭建环境之前,需用户确认主备DM7的数据库已安装完成,且版本一致,同时还应注意各实例所在主机的操作系统位数、

g360382的博客 1022

华为od 面试八股文_C++_04_含答案

华为od 面试八股文_C++_04_含答案

MISAYAONE的博客 2472

HDU 1421 搬寝室

搬寝室 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1354Accepted Submission(s): 376 Problem Description 搬寝室是很累的,...

weixin_30770495的博客 263

使用Captum库对CIFAR数据集进行模型可解释性分析

为了训练模型,我们需要指定损失函数和优化技术。损失函数用于衡量模型的性能,在训练过程中,我们通过调整模型参数来最小化损失。本教程使用。

2501_90323865的博客 177

AutoRedTrader:基于合成虚假信息注入的交易智能体红队测试框架

在量化交易与AI系统安全领域,鲁棒性是衡量智能体在复杂、对抗性环境中稳定性的关键指标。其核心原理在于通过模拟真实威胁来检验系统的防御能力,从而提升其在不可预测场景下的决策可靠性。这一技术对于保障金融AI应用的安全与稳定具有重要价值,尤其在算法交易、风险管理等场景中,能够有效识别并修复模型漏洞。本文聚焦于如何利用合成虚假信息注入技术,构建一个自动化的红队测试框架,对交易智能体进行对抗性攻击模拟,以评估并增强其面对市场噪声和欺骗信息时的鲁棒性。

weixin_30629653的博客 469

13、使用 Mathematica 撰写文本

本文详细介绍了如何使用 Mathematica 进行文本撰写与处理。内容涵盖文本输入、格式设置、结构化排版、超链接插入、翻译与拼写检查工具的使用,以及将笔记本导出为多种格式(如 PDF、HTML、LATEX 和 RTF)的方法。通过实例演示了创建专业文档的完整流程,包括样式设置、公式推导、标题编号、页眉页脚配置等操作。适合希望利用 Mathematica 编写学术论文、技术报告或教学资料的用户参考。

sony5的博客 208

OpenClaw第2章:快速安装

本章将手把手教你安装 OpenClaw。

Maynor的博客 3236

NOIP:搬寝室

Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2k件过去就行了.但还是会很累,因为2k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手...

purfan2的博客 194

STM32(HAL库)驱动OLED

通过STM32F103C8T6单片机采用HAL库方式对0.96寸OLED(IIC通讯)屏幕进行驱动。

weixin_44597885的博客 8793

搬寝室dp

asd

wingacd的博客 126

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

hdoj_1421搬寝室

搬寝室 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11458Accepted Sub...

chouchijiao8952的博客 147

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

hdoj 1421 搬寝室

搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 33608 Accepted Submission(s): 11505 Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天...

D_mengxin的博客 256

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

dp 搬寝室

搬寝室 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 9 Accepted Submission(s) : 3 Font: Times New Roman | Verdana | Georgia Font ...

qq_43320761的博客 121

hdu 搬寝室

搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 30406    Accepted Submission(s): 10453 Problem Description 搬寝室是很累的,xhd深有体会.时间追述

梦想还是要有的 253

Hdu 1421 搬寝室

Hdu 1421 搬寝室 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1421 解题思路: 对于每一位的物品,都有取与不取两种做法,如果取了,那就要加上疲劳值,不取,那就等于前面算好的结果,(初始化要完整),用二维dp来处理,i表示物品数,j表示物品对数,状态转移方程:dp[i]j=min(dp[i-1]j,dp[i-2][j-1]+(num[i...

weixin_43823753的博客 256

搬寝室(dp)

搬寝室 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2k件过去就行了.但还是会很累,因为2k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手的物品的重量差的平方成正比(这里补充一句,xhd每次搬两件东西,左手一件右手一件).例如xhd左手拿重量为3的物品,右手拿重量为6的物品,则他搬

Anthcony的博客 229

杭电 1421 搬寝室

搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 16027    Accepted Submission(s): 5447 Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年

逸疏 1093

搬寝室(动态规划)

所以动态转移方程为:dp[i][j] = min(dp[i - 1][j], dp[i - 2][j-1] + (weight[i] - weight[i - 1]) * (weight[i] - weight[i - 1]));1.含有i件物品 则有 dp[i][j]=dp[i-2][j-1]+(weight[i]-weight[i-1])*(weight[i]-weight[i-1]);2.不含第i件物品则有 dp[i][j]=dp[i-1][j];

2301_79946347的博客 509

HDU 1421-搬寝室

搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 30368    Accepted Submission(s): 10437 题目链接:点击打开链接 Problem Description 搬寝室是很

别止的博客 297

动态规划 - 搬寝室

动态规划 - 搬寝室 题目描述: 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2*...

dichuangheng8094的博客 215
上一篇: George and Job
下一篇: 免费馅饼
Techay
博客等级 码龄11年 11粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值