HDU-3392 Pie DP
来源:互联网 发布:靠谱欧洲代购淘宝店 编辑:程序博客网 时间:2024/06/10 12:33
题目链接
题目意思是让输入N个男的身高M个女的身高
让min(N,M)那一方全部配对完,求最小的差值总和
注意题目条件 |n – m| <= 100
题目意思是让输入N个男的身高M个女的身高
让min(N,M)那一方全部配对完,求最小的差值总和
注意题目条件 |n – m| <= 100
所以每个只要从i+1找到i+n-m就可以了
#include "stdio.h"#include "string.h"#include "algorithm"using namespace std;int n,m;double b[10005],g[10005];double dp[2][120]; //一维滚动数组 |n-m|小于等于100 所以二维超过100即可double fabs( double x ){return x>=0?x:-x;}double min( double a,double b ){return a<=b?a:b;}void DP( int n,int m,double *a,double *b ){sort( a+1,a+n+1 ); //排序sort( b+1,b+m+1 );memset(dp,0,sizeof(dp));int len = m-n+1; //长度差for( int i=1; i<=n; i++ ) //男生{dp[i%2][1] = dp[(i-1)%2][1] + fabs( a[i] - b[i]); //默认先选第i个元素for( int j=2; j<=len; j++ )//匹配女生 匹配长度差超过len 后面的将不够匹配{dp[i%2][j] = min( dp[(i-1)%2][j]+fabs( a[i] - b[i+j-1]) , dp[i%2][j-1] ); }}printf("%.6lf\n",dp[n%2][len]);}int main(){int i;while( scanf("%d%d",&n,&m)==2,(n||m) ){for( i=1; i<=n; i++ )scanf("%lf",&b[i]);for( i=1; i<=m; i++ )scanf("%lf",&g[i]);if( n<=m ) //用短的匹配长的DP( n,m,b,g );elseDP( m,n,g,b );}return 0;}
- HDU-3392 Pie DP
- HDU 3392 Pie(DP)
- HDU 3392 Pie(dp滚动数组+思路)
- hdu 3392 Pie
- hdu Pie
- HDU Pie
- HDU 3311 Hie with the Pie(状压dp+TSP问题)
- HDU 1969 Pie
- hdu pie(二分+贪心)
- hdu 1969 Pie
- HDU 1969 - Pie
- hdu 1969 pie
- HDU 1969 Pie
- HDU-1969pie
- hdu 1969 Pie
- HDU 1969 Pie
- HDU 1176 Pie
- HDU 1969 Pie
- input子系统三 核心层和处理器注册
- Storyboard里面的几种Segue区别:push,modal,popover,replace和custom(转载) (
- 判断jquery 对象是否存在
- 21个新鲜的CSS 3教程与技巧强烈推荐
- 补算法相关知识一:蚂蚁算法
- HDU-3392 Pie DP
- android保存Bitmap图片到sd卡
- debian下安装php的一些扩展geoip,mongo,redis,libevent,proctitle,inotify,pcntl,uv,yaf
- C# 文件下载四方法
- Linux系统安装时分区的选择(推荐)
- 压缩感知进阶——有关稀疏矩阵
- 创建存储过程并用java调用实例
- 泊松分布
- listview 上拉 下拉刷新