HDU 1421 DP
来源:互联网 发布:数据库实施工程师 编辑:程序博客网 时间:2024/06/15 21:05
先qsort
i==j*2 dp[i][j]=dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]);
i>j*2 dp[i][j]=min(dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]),dp[i-1][j]);
测试数据:
6 21 8 9 9 10 20
2
7 3
7 9 4 3 1 9 2
2
10 4
100 200 250 9 9 126 270 300 54 78
1652
10 4
102 200 250 9 9 126 270 300 54 78
1552
10 4
102 200 250 45 45 126 270 300 54 78
1552
#include "iostream"#include "algorithm"using namespace std;int dp[2010][2010];int main(){int n,k,i,j;int a[2010];while (scanf("%d%d",&n,&k)!=EOF){for (i=0;i<n;i++)scanf("%d",&a[i]);sort(a,a+n);for (i=n;i>=1;i--)a[i]=a[i-1];memset(dp,-1,sizeof(dp));for (i=0;i<=n;i++)dp[i][0]=0;for (j=1;j<=k;j++){dp[j*2][j]=dp[j*2-2][j-1]+(a[j*2-1]-a[j*2])*(a[j*2-1]-a[j*2]);for (i=j*2+1;i<=n;i++){dp[i][j]=dp[i-1][j];if (dp[i-2][j-1]!=-1 && dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1])<dp[i][j])dp[i][j]=dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]);}}printf("%d\n",dp[n][k]);}return 0;}
0 0
- hdu 1421 dp
- hdu 1421 经典DP
- HDU 1421 DP
- HDU 1421 DP
- I DP Hdu 1421
- hdu 1421 dp
- dp HDU 1421
- hdu 1421 dp
- hdu 1421经典dp
- hdu 1421(dp)
- HDU 1421(线性DP)
- #HDU 1421 简单dp
- HDU 1421 DP计数
- hdu 1421(dp)
- hdu 1421 搬寝室 (DP)
- Hdu 1421 搬寝室 dp
- hdu 1421 搬寝室(DP)
- hdu 1421 搬寝室 dp
- 90后,出门找工作
- SSH2整合
- Hive文件格式(RCFILE)
- solr 排序限制
- Android 4.4 Kitkat Phone工作流程浅析(七)__来电(MT)响铃流程
- HDU 1421 DP
- 1>/dev/null 2>&1的含义
- lex yacc简单实例
- 关于多线程的问题
- 获取JAVA文件路径
- solr 查询参数说明
- Java OCR 图像智能字符识别技术,可识别中文
- #ifndef#define#endif防止头文件重复包含, 你不是真的懂
- OpenCV中Mat操作clone() 与copyto()的区别