http://acm.hdu.edu.cn/showproblem.php?pid=2546

http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=3361

http://blog.sina.com.cn/s/blog_5123df350100e8p8.html

http://blog.sina.com.cn/s/blog_51cea4040100gvn3.html

http://blog.csdn.net/wukonwukon/article/details/6939050

搬寝室

Problem 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
对应每组输入数据,输出数据只有一个表示他的最少的疲劳度,每个一行.

先对a[]按小到大排序.设:dp[i][j]表示前 i 个物品中搬 j 对的最少疲劳度.

显然,当i==2*j时,  dp[i][j]=dp[i-2][j-1] + (a[i]-a[i-1])^2
因为,当   (a1-a2)^2+(a3-a4)^2 <=  (a1-a4)^2+(a3-a2)^2 ( a1<=a2<=a3<=a4 ).
当i>2*j时,  dp[i][j]  =  min( dp[i-1][j] , dp[i-2][j-1]+(a[i]-a[i-1])^2 )

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
int dp[][];
int a[];
int n,k;
int pow2(int a) {return a*a;}
int min2(int a,int b) {return a<b?a:b;} int cmp(const void* a,const void* b){
return *(int*)a-*(int*)b;
} int main(){
int i,j,l;
while(EOF != scanf("%d%d",&n,&k)){
for(i=;i<=n;i++)
scanf("%d",&a[i]);
qsort(a+,n,sizeof(a[]),cmp);
memset(dp,,sizeof(dp));
for(i=;i<=n;i++){
l=i/;
for(j=;j<=l;j++){
if(i==*j)
dp[i][j]=dp[i-][j-]+pow2(a[i]-a[i-]);
else
dp[i][j]=min2(dp[i-][j],dp[i-][j-]+pow2(a[i]-a[i-]));
}
}
printf("%d\n",dp[n][k]);
}
return ;
}
Problem Description
A number whose only prime factors are 2,3,5 or 7 is called a humble number.
The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27,
... shows the first 20 humble numbers.

Write a program to find and print the nth element in this sequence

 #include <stdio.h>
int f[],n;
int i,j,k,l; int min(int a,int b,int c,int d){
int min=a;
if(b<min) min=b;
if(c<min) min=c;
if(d<min) min=d; if(a==min) i++;
if(b==min) j++;
if(c==min) k++;
if(d==min) l++; return min;
} int main(){
i=j=k=l=;
f[]=;
for(int t=;t<=;t++)
f[t]=min(*f[i],*f[j],*f[k],*f[l]); while(scanf("%d",&n)&&n!=){
if(n%==&&n%!=)
printf("The %dst humble number is %d.\n",n,f[n]);
else if(n%==&&n%!=)
printf("The %dnd humble number is %d.\n",n,f[n]);
else if(n%==&&n%!=)
printf("The %drd humble number is %d.\n",n,f[n]);
else
printf("The %dth humble number is %d.\n",n,f[n]);
}
return ;
}

【集训笔记】动态规划背包问题【HDOJ1421【HDOJ1058【HDOJ2546的更多相关文章

  1. 2017清北学堂(提高组精英班)集训笔记——动态规划Part3

    现在是晚上十二点半,好累(无奈脸),接着给各位——也是给自己,更新笔记吧~ 序列型状态划分: 经典例题:乘积最大(Luogu 1018) * 设有一个长度为 N 的数字串,要求选手使用 K 个乘号将它 ...

  2. js动态规划---背包问题

    //每种物品仅有一件,可以选择放或不放 //即f[i][w]表示前i件物品恰放入一个容量为w的背包可以获得的最大价值. //则其状态转移方程便是:f[i][w]=max{f[i-1][w],f[i-1 ...

  3. P1060 开心的金明(动态规划背包问题)

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱 ...

  4. leetcode笔记 动态规划在字符串匹配中的应用

    目录 leetcode笔记 动态规划在字符串匹配中的应用 0 参考文献 1. [10. Regular Expression Matching] 1.1 题目 1.2 思路 && 解题 ...

  5. 2019暑期金华集训 Day7 动态规划

    自闭集训 Day7 动态规划 LOJ6395 首先发现这个树的形态没啥用,只需要保证度数之和是\(2n-2\)且度数大于0即可. 然后设\(dp_{i,j}\)表示前\(i\)个点用了\(j\)个度数 ...

  6. 【集训笔记】动态规划【HDOJ1159【HDOJ1003

    终于开始DP了] HDOJ_1159  Common  Subsequence 题目链接 Sample Input abcfbc abfcab programming contest abcd mnp ...

  7. 动态规划-背包问题 Knapsack

    2018-03-15 13:11:12 背包问题(Knapsack problem)是一种组合优化的NP完全问题.问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何 ...

  8. 动态规划——背包问题python实现(01背包、完全背包、多重背包)

    目录 01背包问题 完全背包问题 多重背包问题 参考: 背包九讲--哔哩哔哩 背包九讲 01背包问题 01背包问题 描述: 有N件物品和一个容量为V的背包. 第i件物品的体积是vi,价值是wi. 求解 ...

  9. QDEZ集训笔记【更新中】

    这是一个绝妙的比喻,如果青岛二中的台阶上每级站一只平度一中的猫,差不多站满了吧 自己的理解 [2016-12-31] [主席树] http://www.cnblogs.com/candy99/p/61 ...

随机推荐

  1. Google Play和基于Feature的过滤

    田海立@CSDN 翻译自Google Play and Feature-Based Filtering GooglePlay会过滤出那些对用户可见的应用程序,因此用户只能看到和下载那些与他们的设备兼容 ...

  2. 高可用mysql集群搭建

    对web系统来说,瓶颈大多在数据库和磁盘IO上面,而不是服务器的计算能力.对于系统伸缩性我们一般有2种解决方案,scale-up(纵向扩展)和scale-out(横向扩展).前者如扩内存,增加单机性能 ...

  3. Sightseeing Cows(最优比率环)

    Sightseeing Cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8915   Accepted: 3000 ...

  4. Android多线程断点续传下载

    这个月接到一个项目.要写一个像360助手一样的对于软件管理的APP:当中.遇到了一个问题:多线程断点下载 这个 ,因为之前没有写过这方面的应用功能.所以.不免要自学了. 然后就在各个昂站上收索并整理了 ...

  5. android AChartEngine源代码

    昨天翻自己曾经下过的apache开源project项目,看到一个AChartEnginee看了一下自带的Demo才意识到这个东西的强大.立刻想把源代码down一份,在CSDN上有人挂5分让人下载,实在 ...

  6. AndroidStudio 0.2.x 引入多模块Eclipse项目

    !!!!太他妈的累人了!整整折腾了两天!!!!!!! 不知从那个版本开始ImportModule... 从AndroidStudio的File菜单中消失了,在0.2之前的版本作为library的模块可 ...

  7. Android JNI入门第一篇——HelloJni

    android支持使用NDK开发C程序,关于配置NDK环境问题应该不用再赘述了,这个网上有很多,这里通过一篇实例来讲述简单的JNI开发,大家可以参考这篇文章(Get Your Eclipse-Inte ...

  8. Webform中Repeater控件--绑定嵌入C#代码四种方式

    网页里面嵌入C#代码用的是<% %>,嵌入php代码<?php ?> 绑定数据的四种方式: 1.直接绑定 <%#Eval("Code") %> ...

  9. 「OC」@property @synthesize和id

    一.@property @synthesize关键字 这两个关键字是编译器特性,让Xcode可以自动生成getter和setter. (一)@property 关键字 @property 关键字可以自 ...

  10. CSS 初始化 代码

    腾讯QQ官网 样式初始化 ;} body{font:12px"宋体","Arial Narrow",HELVETICA;background:#fff;-web ...