[bzoj1584][Usaco2009 Mar]Cleaning Up 打扫卫生
Orz w_yqts
卡了18次,终于rank1了…
f[i]表示以i为结尾的最小代价
f[i]最大为i(每个点单独一段)
f[i]=min{f[j]+cnt(j+1~i)^2}
若cnt(j+1~i)^2>i就可以退出了.
若存在相同数字可以用链表删除.
大概是O(n^3/2)的.#include <cstdio>
#define N 40005
inline int read()
原创
2018-01-03 13:34:34 ·
326 阅读 ·
0 评论