BZOJ 2933([Poi1999]地图-区间Dp)
2933: [Poi1999]地图
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 7
Solved: 7
[
Submit][
Status]
Description
- 在用颜色k的区域中至少有一半的区域的人口不大于A(k)
- 在用颜色k的区域中至少有一半的区域的人口不小于A(k)
- 读入每个区域的人口数
- 计算最小的累计误差
- 将结果输出
Input
Output
Sample Input
3
21
14
6
18
10
2
15
12
3
2
2
Sample Output
HINT
Source
区间Dp
w[i][j]表示i到j划为一段的代价。。。
f[i][j]表示前i个用j个颜色的mincost
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<functional>
#include<cmath>
#include<cctype>
#include<cassert>
#include<climits>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define RepD(i,n) for(int i=n;i>=0;i--)
#define MEM(a) memset(a,0,sizeof(a))
#define MEMI(a) memset(a,127,sizeof(a))
#define MEMi(a) memset(a,128,sizeof(a))
#define INF (2139062143)
#define F (1000000009)
#define MAXN (3000+10)
#define MAXM (10+10)
typedef long long ll;
int n,m;
ll a[MAXN],f[MAXN][MAXM]={0},w[MAXN][MAXN]={0};
int main()
{
// freopen("bzoj2933.in","r",stdin);
scanf("%d%d",&n,&m);
For(i,n) scanf("%lld",&a[i]);
sort(a+1,a+1+n);
For(j,n)
{
ForD(i,j-1)
{
w[i][j]=w[i+1][j]+a[((i+1)+j)/2]-a[i];
}
}
Rep(i,n+1) Rep(j,m+1) f[i][j]=INF;
f[0][0]=0;
For(i,n)
For(j,m)
{
f[i][j]=INF;
Rep(k,i)
{
f[i][j]=min(f[i][j],f[k][j-1]+w[k+1][i]);
}
}
cout<<f[n][m]<<endl;
// while(1);
return 0;
}
BZOJ 2933([Poi1999]地图-区间Dp)的更多相关文章
- BZOJ 1260&UVa 4394 区间DP
题意: 给一段字符串成段染色,问染成目标串最少次数. SOL: 区间DP... DP[i][j]表示从i染到j最小代价 转移:dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k ...
- BZOJ 1055 玩具取名(区间DP)
很显然的区间DP,定义dp[i][j][k], 如果dp[i][j][k]=1表示字符串[i,j]可以组成k字符. # include <cstdio> # include <cst ...
- bzoj 1068 [SCOI2007]压缩 区间dp
[SCOI2007]压缩 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1644 Solved: 1042[Submit][Status][Discu ...
- BZOJ 2121: 字符串游戏 区间DP + 思维
Description BX正在进行一个字符串游戏,他手上有一个字符串L,以及其他一些字符串的集合S,然后他可以进行以下操作:对 于一个在集合S中的字符串p,如果p在L中出现,BX就可以选择是否将其删 ...
- bzoj 1003物流运输 区间dp+spfa
基本思路: 一开始确实没什么思路,因为觉得怎么着都会超时,然后看一下数据范围,呵,怎么都不会超时. 思路: 1.看到能改变线路,想到可以用以下区间dp,区间dp的话,先枚举长度,枚举开始位置,然后枚举 ...
- bzoj 1564 [NOI2009]二叉查找树 区间DP
[NOI2009]二叉查找树 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 906 Solved: 630[Submit][Status][Discu ...
- bzoj 1761: [Baltic2009]beetle 区间dp
1761: [Baltic2009]beetle Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 255 Solved: 92[Submit][Statu ...
- BZOJ 1090 字符串折叠(区间DP)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1090 题意:字符串AAAAAAAAAABABABCCD的最短折叠为9(A)3(AB)CC ...
- BZOJ 2298 problem a(区间DP)
题意:一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) 思路:考虑最多有多少人说真,那么答案就是n-max. ai个人分数 ...
随机推荐
- checkbox在jquery版本1.9 以上用attr不可重复操作的问题【附解决方案】
最近做个项目,需要重复多次更改checkbox的状态,使用jquery 1.10.2的最新版本时发现,对checkbox的选中状态无法多次选中.测试代码如下: <!DOCTYPE html PU ...
- css3流式布局
css3布局方式: 不推荐使用float,有时候使用浮动的时候,对于可适应的流氏布局,无法胜任. 推荐使用css3的display:webkit-box. 使用的html代码 <div clas ...
- c++模板实例化的一个例子
以下是c++模板实例化的一个例子,虽然ObjectList::clear()里面调用的test()函数是没有定义的,但是以下代码能够编译通过,可见ObjectList::clear()未编译: tem ...
- iBatis系列之三
iBatis和Hibernate最大差别就是在于iBatis没有严格的和具体的表做关联:而是将结果集和DAO做关联. iBatis的SqlConfig.xml配置一个properties文件,其实可以 ...
- pyramid的第一个项目
1,安装pyramid --在次之前最好先安装python virtualenv --python virtualenv ---激活方式pyenv activate pip install pyram ...
- share my tools With Xcode
1.让Xcode的控制台支持LLDB类型的打印 在Xcode断点调试的时候, 在控制台输入 po self.view.frame 或者 po id 类型的时候就死翘翘了. 进入正题: 安装LLDB调试 ...
- .where(provider).FirstOrDefault()和.FirstOrDefault(provider)的性能比较
最近遇到一个关于Linq的问题,.where(provider).FirstOrDefault();和.FirstOrDefault(provider);的性能比较 关于这个主要有以下三种说法,但这方 ...
- VS2010/MFC编程入门之十四(对话框:向导对话框的创建及显示)
原文地址:http://www.jizhuomi.com/software/166.html 上一讲鸡啄米讲了属性页对话框和相关的两个类CPropertyPage类和CPropertySheet类,对 ...
- BZOJ 1640: [Usaco2007 Nov]Best Cow Line 队列变换
Description FJ打算带着他可爱的N (1 ≤ N ≤ 2,000)头奶牛去参加"年度最佳老农"的比赛.在比赛中,每个农夫把他的奶牛排成一列,然后准备经过评委检验. 比赛 ...
- java虚拟机运行机制
转自java虚拟机运行机制 首先简单阐述下解释型语言和编译型语言的联系与区别. 编译型语言是通过编译器将程序编译成目标机器所能识别的机器码,而解释型语言不需要编译过程.由该语言的解释器读取脚本,按照语 ...