【BZOJ1584】[Usaco2009 Mar]Cleaning Up 打扫卫生【DP】
来源:互联网 发布:矩阵开关说明书 编辑:程序博客网 时间:2024/04/28 00:33
【题目链接】
【hzwer的题解】
维护转移位置的数组有点神。。
/* Telekinetic Forest Guard */#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int maxn = 40005, inf = 0x3f3f3f3f;int n, m, num[maxn], dp[maxn], pos[maxn], pre[maxn], cnt[maxn];inline int iread() {int f = 1, x = 0; char ch = getchar();for(; ch < '0' || ch > '9'; ch = getchar()) f = ch == '-' ? -1 : 1;for(; ch >= '0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';return f * x;}int main() {n = iread(); m = iread();for(int i = 1; i <= n; i++) num[i] = iread(), dp[i] = inf, pre[i] = -1;n = unique(num + 1, num + 1 + n) - (num + 1);m = sqrt(n);dp[0] = 0;for(int i = 1; i <= n; i++) {for(int j = 1; j <= m; j++) if(pre[num[i]] <= pos[j]) cnt[j]++;pre[num[i]] = i;for(int j = 1; j <= m; j++) if(cnt[j] > j) {int t = pos[j] + 1;for(; pre[num[t]] > t; t++);pos[j] = t; cnt[j]--;}for(int j = 1; j <= m; j++) dp[i] = min(dp[i], dp[pos[j]] + j * j);}printf("%d\n", dp[n]);return 0;}
0 0
- bzoj1584【Usaco2009 Mar】Cleaning Up 打扫卫生
- [bzoj1584] [Usaco2009 Mar]Cleaning Up 打扫卫生
- 【BZOJ1584】[Usaco2009 Mar]Cleaning Up 打扫卫生【DP】
- bzoj1584 [Usaco2009 Mar]Cleaning Up 打扫卫生 dp
- [BZOJ1584][Usaco2009 Mar]Cleaning Up 打扫卫生(dp+数学相关优化)
- 1584: [Usaco2009 Mar]Cleaning Up 打扫卫生
- BZOJ 1584 [Usaco2009 Mar]Cleaning Up 打扫卫生 动态规划
- DP Cleaning Up 打扫卫生
- bzoj 1584 Cleaning Up 打扫卫生 dp
- bzoj1584 [ Usaco2009 Mar ] --DP
- [Usaco2009 Mar]Cleaning Up
- [bzoj1584]打扫卫生
- BZOJ 1584 [Usaco2009 Mar] Cleaning Up
- BZOJ1584 USACO 2009 Mar Gold 2.Cleaning Up
- bzoj3401[Usaco2009 Mar]Look Up 仰望
- [BZOJ3401] [Usaco2009 Mar]Look Up 仰望
- BZOJ 3401: [Usaco2009 Mar]Look Up 仰望
- bzoj 3401: [Usaco2009 Mar]Look Up 仰望
- linux下安装weblogic
- 第13周项目2--动物这样叫(1)
- 网络请求
- Hadoop网络拓扑
- 数组类模板
- 【BZOJ1584】[Usaco2009 Mar]Cleaning Up 打扫卫生【DP】
- c#tabcontrol控件选项卡竖直显示,上面的文字水平显示
- 分代回收机制
- Middle-题目9:318. Maximum Product of Word Lengths
- 2016年5月编程语言排行榜:Ruby排名创历史新高
- maven 项目本地调试正确,部署到云服务器上依旧报原先的错误,可能的原因
- Eclipse崩溃后无法启动的问题解决
- 【Leetcode】Longest Increasing Path in a Matrix
- 文件