DP问题(2) : hdu 1421
题目转自hdu 1421,题目传送门
题目大意:
给你n个物品,你要搬走2*k个(也就是搬k次)
每次搬需要花费v,v=(ai-aj)2 (i表示左手拿的物品重量,j表示右手拿的物品的重量)
要求所有v相加得数最少
不难看出,这就像是01背包
这道题很水但我还是调了0.25h
感谢wsy大佬的帮助
解题思路:
emmm......
首先,这肯定是一个n*k的dp
其中,i表示有i个物品,j表示需要搬j回
那么我们可以得出它的转移方程:
dp[i][j]=min(dp[i-][j],dp[i-][j-]+(int)pow((w[i]-w[i-]),));
让后就很简单了
才怪,上面的我10min就想出来了,下面才让我最头疼
初始化
下面是我原来写的初始化:
memset(dp,0x7f,sizeof(dp));
然后各种WA
然后改了一下(25min),如下:
for(int i=;i<=n;i++) for(int j=;j<=k;j++) dp[i][j]=inf;
然后就AC了!!!
一个memset让我调了0.25h!(好不值)
以下是AC代码:
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<cmath>
#define inf 2147483647
using namespace std;
int n,k;
int w[];
int dp[][];
int main()
{
while(scanf("%d%d",&n,&k)!=EOF)
{
for(int i=;i<=n;i++) for(int j=;j<=k;j++) dp[i][j]=inf;
// memset(dp,0x7f,sizeof(dp));
for(int i=;i<=n;i++) scanf("%d",&w[i]);
sort(w+,w++n);
dp[][]=;
for(int i=;i<=n;i++) for(int j=;*j<=i;j++)
{
dp[i][j]=min(dp[i-][j],dp[i-][j-]+(int)pow((w[i]-w[i-]),));
// cout<<"dp["<<i<<"]["<<j<<"]="<<dp[i][j]<<endl;
}
printf("%d\n",dp[n][k]);
}
return ;
}
从这道题我得到了一个深刻的教训
永远不要相信memset
这道题就这样水过了,就这样......
DP问题(2) : hdu 1421的更多相关文章
- hdu 1421:搬寝室(动态规划 DP + 排序)
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- 【dp】HDU 1421 搬寝室
http://acm.hdu.edu.cn/showproblem.php?pid=1421 [题意] 给定n个数,要从n个数中选择k个二元组{x,y},最小化sum{(x-y)^2} 2<=2 ...
- 题解报告:hdu 1421 搬寝室(递推dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1421 Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9 ...
- HDU 1421 搬寝室 (线性dp 贪心预处理)
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- [HDU 1421]搬寝室(富有新意的DP)
题目地址:pid=1421" target="_blank">http://acm.hdu.edu.cn/showproblem.php? pid=1421 题目大 ...
- HDU 1421 DP
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- 搬寝室(HDU 1421 DP)
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- hdu 1421 搬寝室(dp)
Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆, ...
- hdu 1421 搬寝室 (dp)
思路分析: dp[i][j] 表示选取到第 i 个 组成了 j 对的最优答案. 当然排序之后 选取相邻两个是更优的. if(i==j*2) dp[i][j] = dp[i-2][j-1] + w[ ...
随机推荐
- 【mysql报错】MySQL5.7.27报错“[Warning] Using a password on the command line interface can be insecure.”
MySQL5.7.27报错“[Warning] Using a password on the command line interface can be insecure.”在命令行使用密码不安全警 ...
- Algorithm: CRT、EX-CRT & Lucas、Ex-Lucas
中国剩余定理 中国剩余定理,Chinese Remainder Theorem,又称孙子定理,给出了一元线性同余方程组的有解判定条件,并用构造法给出了通解的具体形式. \[ \begin{aligne ...
- ArcGIS Server 地图发布请求分析
1.1. 数据上传 请求 URL: https://172.16.2.17:6443/arcgis/admin/uploads/upload POST Location: ...
- PHP 类/对象函数
PHP类/对象函数是PHP核心的一部分,无需要安装就可以使用. 函数名称 描述 __autoload 尝试加载未定义的类 class_alias 为一个类创建别名 class_exists 检查类是否 ...
- php CI如何实现全站静态生成html,动态创建目录
php CI如何实现全站静态生成html,动态创建目录CodeIgniter框架生成HTML的方法 public function out_html($code) { $data['articles' ...
- a标使用window.open()方法
<a href="javascript:window.open('../Left_B/L_Gong_gao_Index', 'TencentLogin', 'width=1920px, ...
- css去掉button点击后的蓝框
转自:http://www.inbeijing.org/archives/1139 css控制Button 按钮的点击时候出现蓝色边框的问题 添加css属性,这样在点击安按钮的时候就不会有蓝色边框了. ...
- Arduino+esp8266-01+舵机 制作基于局域网的遥控门禁
这个最终的效果呢,就是可以通过手机连接上esp8266创建的wifi,然后连接其创建的服务器,发送特定指令就可实现遥控开门 (做工比较粗糙还请不要见笑...) 一.原理 其实这个一看就会明白,非常简单 ...
- maven 学习---Maven依赖机制
在 Maven 依赖机制的帮助下自动下载所有必需的依赖库,并保持版本升级. 案例分析 让我们看一个案例研究,以了解它是如何工作的.假设你想使用 Log4j 作为项目的日志.这里你要做什么? 1.在传统 ...
- Scrum冲刺第四篇
一.每日例会 会议照片 成员 昨日已完成的工作 今日计划完成的工作 工作中遇到的困难 陈嘉欣 撰写博客,管理成员提交代码 和队友一同开发音乐控制模块 对音频控制方面知识了解少,功能实现困难 邓镇港 帮 ...