博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDOJ 3480 Division
阅读量:5977 次
发布时间:2019-06-20

本文共 1899 字,大约阅读时间需要 6 分钟。

斜率优化DP。

。。。

对数组排序后。dp【i】【j】表示对前j个物品分i段的最少代价,dp【i】【j】= min{ dp【i-1】【k】+(a【k+1】-a【j】)^2 }复杂度m*n^2      斜率优化一下就能够了。

Division

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 999999/400000 K (Java/Others)
Total Submission(s): 3008    Accepted Submission(s): 1173


Problem Description
Little D is really interested in the theorem of sets recently. There’s a problem that confused him a long time.  
Let T be a set of integers. Let the MIN be the minimum integer in T and MAX be the maximum, then the cost of set T if defined as (MAX – MIN)^2. Now given an integer set S, we want to find out M subsets S1, S2, …, SM of S, such that
and the total cost of each subset is minimal.
 

Input
The input contains multiple test cases.
In the first line of the input there’s an integer T which is the number of test cases. Then the description of T test cases will be given. 
For any test case, the first line contains two integers N (≤ 10,000) and M (≤ 5,000). N is the number of elements in S (may be duplicated). M is the number of subsets that we want to get. In the next line, there will be N integers giving set S.
 

Output
For each test case, output one line containing exactly one integer, the minimal total cost. Take a look at the sample output for format.
 

Sample Input
 
2 3 2 1 2 4 4 2 4 7 10 1
 

Sample Output
 
Case 1: 1 Case 2: 18
Hint
The answer will fit into a 32-bit signed integer.
 

Source
 

#include 
#include
#include
#include
using namespace std;const int maxn=11000;int n,m;int dp[maxn/2][maxn],a[maxn];int q[maxn],head,tail;int main(){ int T_T,cas=1; scanf("%d",&T_T); while(T_T--) { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",a+i); sort(a+1,a+n+1); for(int i=1;i<=n;i++) dp[1][i]=(a[i]-a[1])*(a[i]-a[1]); for(int i=2;i<=m;i++) { head=tail=0; q[tail++]=i-1; for(int j=i;j<=n;j++) { while(head+1

转载地址:http://lfsox.baihongyu.com/

你可能感兴趣的文章
Python回顾与整理10:模块
查看>>
Python 学习笔记 - Memcached
查看>>
重视细节,方能得到认可
查看>>
《Cisco IPv6网络实现技术(修订版)》一2.6 配置练习:使用Cisco路由器配置一个IPv6网络...
查看>>
Linux 内核存缺陷:66% 安卓设备面临受攻击风险
查看>>
《可穿戴创意设计:技术与时尚的融合》一一第2章 与可穿戴设备有关的故事...
查看>>
透过微信应用号,看HTML5与Native进入融合时代
查看>>
IE 市场份额暴跌,Edge 能否守住微软的辉煌
查看>>
NGINX Plus 提供的在线活动监控功能
查看>>
强迫症慎入:一大票让人看哭的音量键设计即将袭来
查看>>
客户端验证:JQuery Validation Plugin
查看>>
《编写高质量代码:改善c程序代码的125个建议》——建议4-1:整数转换为新类型时必须做范围检查...
查看>>
《Excel 职场手册:260招菜鸟变达人》一第 1 招 快捷键的妙用(基于Windows操作系统)...
查看>>
为什么世界需要 OpenStreetMap 开源道路地图
查看>>
《微信公众平台开发最佳实践》——第3章 基 础 接 口 3.1 接收用户消息
查看>>
《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》——3.3 微信开发者中心...
查看>>
融入产业生态的靶向孵化
查看>>
阿里内核月报2014年4月
查看>>
《Dreamweaver CS6完美网页制作——基础、实例与技巧从入门到精通》——1.3 常用网页设计软件...
查看>>
《PHP和MySQL Web开发从新手到高手(第5版)》一2.9 删除存储的数据
查看>>