题目名称 2009. [USACO Mar09]餐厅清扫
输入输出 cleanup.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 9
题目来源 Gravatarcstdio 于2015-07-01加入
开放分组 全部用户
提交状态
分类标签
USACO 动态规划
分享题解
通过:31, 提交:65, 通过率:47.69%
Gravatar~玖湫~ 100 0.023 s 0.55 MiB C++
GravatarBaDBoY 100 0.063 s 0.69 MiB C++
GravatarSky_miner 100 0.064 s 1.05 MiB C++
Gravatarmikumikumi 100 0.074 s 1.08 MiB C++
Gravatar梦那边的美好ET 100 0.084 s 1.39 MiB C++
Gravatar炎帝 100 0.085 s 1.08 MiB C++
GravatarCSU_Turkey 100 0.091 s 1.08 MiB C++
GravatarFoolMike 100 0.106 s 4.10 MiB C++
GravatarHzoi_Mafia 100 0.107 s 1.38 MiB C++
Gravatarxyz117 100 0.115 s 0.92 MiB C++
关于 餐厅清扫 的近10条评论(全部评论)
只因pos[2]sb的赋了初值,100变30。
。。。
Gravatar~玖湫~
2017-09-21 16:57 6楼
我老觉得我第二种写法不太对啊...但为什么还能a...好纠结
GravatarCSU_Turkey
2017-09-18 16:24 5楼
膜拜神犇wmdcstdio,一语道破
其实跳并查集的方法挺好写的……
GravatarFoolMike
2017-07-11 14:37 4楼
有些难优化
GravatarTenderRun
2016-04-08 20:31 3楼
我这种人只会写n^2暴力
GravatarSatoshi
2016-02-06 21:34 2楼
裸DP,记录有1~sqrt(N)个不同数的位置,只用它们更新……
也是简单粗暴……
Gravatarcstdio
2015-07-01 11:40 1楼

2009. [USACO Mar09]餐厅清扫

★★☆   输入文件:cleanup.in   输出文件:cleanup.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

很久很久以前,$Farmer John$只会做一种食品;而现在$John$能给他的$N(1<=N<=40000)$只奶牛供应$M(1<=M<=N)$种不同的食品。奶牛们非常挑剔,$i$号奶牛只吃食品$P_i(1<=P_i<=M)$。

每天,奶牛们按编号排队进自助餐厅用餐。不幸的是,这么多各类的食品让清扫工作变得非常复杂。当$John$供应$K$种食品,他之后就需要$K^2$的时间进行清扫。

为了减少清扫的时间,$John$决定把排好队的奶牛划分成若干组。

每一组包含一段连续的奶牛,每一次,只让一组奶牛进入餐厅。

这样,他可以让清扫所需的总用时变得最小。请计算这个最小用时。

【输入格式】

第1行输入$N$和$M$,之后$N$行一行输入一个整数$P_i$。

【输出格式】

输出最小用时。

【样例输入】

13 4

1

2

1

3

2

2

3

4

3

4

3

1

4

【样例输出】

11

【提示】

前4组每组包含1只奶牛,第5组包含两只奶牛,第6组包含5只奶牛,第7、8两组各包含1只奶牛。

【来源】

Paul Christiano, 2007

译者:BirDOR