【HDU】3480 Division
http://acm.hdu.edu.cn/showproblem.php?pid=3480
题意:一个n个元素的集合S要求分成m个子集且子集并为S,要求$\sum_{S_i} (MAX-MIN)^2$最小。(n<=10000, m<=5000)
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;
const int N=10005;
typedef long long ll;
ll d[2][N];
int n, p, x[N], s[2][N];
inline ll sqr(ll a) { return a*a; }
inline ll w(int i, int j) { return sqr(x[j]-x[i]); }
int main() {
int T; scanf("%d", &T);
for(int __=1; __<=T; ++__) {
scanf("%d%d", &n, &p);
for(int i=1; i<=n; ++i) scanf("%d", &x[i]);
sort(x+1, x+1+n);
int h=0, t=1;
for(int i=2; i<=n; ++i) d[h][i]=w(1, i), s[h][i]=1;
for(int i=2; i<=p; ++i) {
s[t][n+1]=n;
for(int j=n; j>=1; --j) {
int l=s[h][j], r=s[t][j+1], &pos=s[t][j]; ll &now=d[t][j];
now=~0ull>>1;
for(int k=l; k<=r; ++k) {
ll t=d[h][k-1]+w(k, j);
if(now>=t) now=t, pos=k;
}
}
swap(t, h);
}
printf("Case %d: %lld\n", __, d[h][n]);
}
return 0;
}
看完题目就知道很简单= =可是看到数据范围的时候傻了= =就算$O(n^2)$也不能这样卡是不是!!
可是发现时限5s!!!
于是同上一题一样,详细看上一题题解= =
【HDU】3480 Division的更多相关文章
- 【HDOJ】3480 Division
		斜率dp+滚动数组. /* 3480 */ #include <iostream> #include <sstream> #include <string> #in ... 
- 【HDU】4888 Redraw Beautiful Drawings 网络流【推断解是否唯一】
		传送门:pid=4888">[HDU]4888 Redraw Beautiful Drawings 题目分析: 比赛的时候看出是个网络流,可是没有敲出来.各种反面样例推倒自己(究其原因 ... 
- 【HDU6037】Expectation Division(动态规划,搜索)
		[HDU6037]Expectation Division(动态规划,搜索) 题面 Vjudge 你有一个数\(n\),\(n\le 10^{24}\),为了方便会告诉你\(n\)分解之后有\(m\) ... 
- 【HDU】2191 多重背包问题
		原题目:悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 [算法]多重背包(有限背包) 动态规划 [题解]http://blog.csdn.net/acdreamers/article/detail ... 
- 【HDU】6110 路径交(2017百度之星) 线段树+RMQ-LCA+树链的交
		[题目]2017"百度之星"程序设计大赛 - 初赛(A) [题意]给定n个点的带边权树,m条编号1~m的路径,Q次询问编号区间[L,R]所有链的交集的长度.n<=500000 ... 
- 【HDU】6148 Valley Numer 数位DP
		[算法]数位DP [题意]定义V-number为从左到看单位数字未出现先递增后递减现象的数字,求0~N中满足条件的数字个数.T<=200,lenth(n)<=100 [题解]百度之星201 ... 
- 【HDU】5269 ZYB loves Xor I
		[算法]trie [题解] 为了让数据有序,求lowbit无法直接排序,从而考虑倒过来排序,然后数据就会呈现出明显的规律: 法一:将数字倒着贴在字典树上,则容易发现两数的lowbit就是它们岔道结点的 ... 
- 【HDU】3068 最长回文
		[算法]manacher [题解][算法]字符串 #include<cstdio> #include<algorithm> #include<cstring> us ... 
- 【HDU】2222 Keywords Search
		[算法]AC自动机 [题解]本题注意题意是多少关键字能匹配而不是能匹配多少次,以及可能有重复单词. 询问时AC自动机与KMP最大的区别是因为建立了trie,所以对于目标串T与自动机串是否匹配只需要直接 ... 
随机推荐
- 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)
			1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ... 
- JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)
			1.IP简述使用//获取本地主机ip地址对象.InetAddress ip = InetAddress.getLocalHost();//获取其他主机的ip地址对象.ip = InetAddress. ... 
- 在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程
			在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程 本教程提供PDF格式下载: 在RedHat.Enterprise.Linux_v6.3系统中安装Ora ... 
- python实现支持并发、断点续传的Ftp程序
			一.要求 1.用户md5认证 2.支持多用户同时登陆(并发) 3.进入用户的命令行模式,支持cd切换目录,ls查看目录子文件 4.执行命令(ipconfig) 5.传输文件: a.支持断点续传 b.传 ... 
- python实现学生选课系统  面向对象的应用:
			一.要求: 选课系统 管理员: 创建老师:姓名.性别.年龄.资产 创建课程:课程名称.上课时间.课时费.关联老师 使用pickle保存在文件 学生: 学生:用户名.密码.性别.年龄.选课列表[].上课 ... 
- .NET Framework 4 与 .NET Framework 4 Client Profile
			今天碰到的一个问题和Client Profile相关的.问题是这样的:一个WPF工程,需要引用另外几个.NET的assembly, 在WPF工程中添加了对这几个assembly的引用,并在程序中可以添 ... 
- TortoiseSVN常用操作说明
			TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具.通过使用它,我们可以可视化的管理我们的版本库.不过由于它只是一个客户端,所以它不能对版本库进行权限管理. TortoiseS ... 
- 新浪微博的账号登录及api操作
			.sina.php <?php /** * PHP Library for weibo.com * * @author */ class sinaPHP { function __constru ... 
- 【译】安装Sonar要求
			本文仅为本人看sonar官方文档时,因其为英文,故简单整理翻译[英语不好,见谅!] http://docs.sonarqube.org/display/SONAR/Requirements 目录 ... 
- 直接拿来用!最火的Android开源项目(二)(转)
			GitHub上的开源项目不胜枚举,通过这些项目,也能让开发者在应用开发过程中事半功倍,作为开发者的你,在用这些开源项目吗?今天我们将介绍另外20个在GitHub上备受欢迎的Android开源项目,你准 ... 
