5196: [Usaco2018 Feb]Taming the Herd

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 78  Solved: 71
[Submit][Status][Discuss]

Description

一大清早,Farmer John就被木材破裂的声音吵醒了。是这些奶牛们干的,她们又逃出牛棚了!Farmer John已经厌
烦了奶牛在清晨出逃,他觉得受够了:是时候采取强硬措施了。他在牛棚的墙上钉了一个计数器,追踪从上次出逃
开始经过的天数。所以如果某一天早上发生了出逃事件,这一天的计数器就为0;如果最近的出逃是3天前,计数器
读数就为3。Farmer John一丝不苟地记录了每一天计数器的读数。年末到了,Farmer John准备做一些统计。他说
,你们这些奶牛会付出代价的!然而他的某些记录看上去不太对劲……Farmer John想要知道从他开始记录以来发
生过多少次出逃。但是,他怀疑这些奶牛篡改了它的记录,现在他所确定的只有他是从发生出逃的某一天开始记录
的。请帮助他求出,对于每个从他开始记录以来可能发生的出逃次数,他被篡改了的记录条数的最小值。

Input

输入的第一行包含一个整数N(1≤N≤100),表示从Farmer John开始对奶牛出逃计数器进行计数以来已经经过的天数。
第二行包含N个空格分隔的整数。
第i个整数是一个非负整数ai(不超过100),表示在第i天计数器的数字是ai,除非奶牛篡改了这一天的记录条目。

Output

输出包含N个整数,每行一个。
第i个整数为所有发生i次出逃的事件序列中,与该事件序列不一致的记录条目条数的最小值。

Sample Input

6
1 1 2 0 0 1

Sample Output

4
2
1
2
3
4
如果只发生1次出逃,则正确的记录应该为0 1 2 3 4 5,有4处与给定的记录不同。
如果发生2次出逃,则正确的记录可能为0 1 2 3 0 1,有2处与给定的记录不同。
在这个例子中,出逃发生在第一天和第五天。
如果发生3次出逃,则正确的记录可能为0 1 2 0 0 1,仅有1处与给定的记录不符。
在这个例子中,出逃发生在第一天、第四天和第五天。
以此类推。

思路:dp[i][j][k]表示第i个数以k结尾的,且用了j个0的最小修改次数,然后可以得到O(N^3)的 方程。

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=;
const int inf=0x3f3f3f3f;
int N,a[maxn],dp[maxn][maxn][maxn],ans[maxn];
int main(){
scanf("%d",&N); rep(i,,N) scanf("%d",&a[i]);
memset(dp,0x3f,sizeof(dp)); memset(ans,0x3f,sizeof(ans));
dp[][][]=(a[]!=);
rep(i,,N){
rep(j,,i){
rep(k,,i-j) dp[i][j][]=min(dp[i][j][],dp[i-][j-][k]+(a[i]!=));
rep(k,,i-j) dp[i][j][k]=min(dp[i][j][k],dp[i-][j][k-]+(a[i]!=k));
}
}
rep(i,,N) rep(j,,N) ans[i]=min(ans[i],dp[N][i][j]);
rep(i,,N) printf("%d\n",ans[i]);
return ;
}

BZOJ5196: [Usaco2018 Feb]Taming the Herd(DP暴力)的更多相关文章

  1. BZOJ5194: [Usaco2018 Feb]Snow Boots(排序&set)(可线段树优化)

    5194: [Usaco2018 Feb]Snow Boots Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 102  Solved: 79[Subm ...

  2. 2019 GDUT Rating Contest II : A. Taming the Herd

    题面: A. Taming the Herd Input file: standard input Output file: standard output Time limit: 1 second Me ...

  3. bzoj 5195: [Usaco2018 Feb]Directory Traversal【树形dp】

    注意到目录是一颗树结构,然后就简单了,预以1为根的处理出dis[u]为以这个点为根,到子树内的目录总长,si为子树内叶子数 第二遍dfs换根即可 #include<iostream> #i ...

  4. POJ 2029 DP || 暴力

    在大矩形中找一个小矩形 使小矩形包括的*最多 暴力或者DP  水题 暴力: #include "stdio.h" #include "string.h" int ...

  5. 区间Dp 暴力枚举+动态规划 Hdu1081

    F - 最大子矩形 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit Status Des ...

  6. Codeforces 914 C 数位DP+暴力打表+思维

    题意 给出一个二进制数\(n\),每次操作可以将一个整数\(x\)简化为\(x\)的二进制表示中\(1\)的个数,如果一个数简化为\(1\)所需的最小次数为\(k\),将这个数叫做特殊的数, 问从\( ...

  7. BZOJ1569: [JSOI2008]Blue Mary的职员分配(dp 暴力)

    Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 483  Solved: 189[Submit][Status][Discuss] Descriptio ...

  8. 【BZOJ3696】化合物 树形DP+暴力

    [BZOJ3696]化合物 Description 首长NOI惨跪,于是去念文化课了.现在,他面对一道化学题.    这题的来源是因为在一个奇怪的学校两个化竞党在玩一个奇怪的博弈论游戏.这个游戏很蛋疼 ...

  9. Codeforces Round #369 (Div. 2) C 基本dp+暴力

    C. Coloring Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

随机推荐

  1. apache配置ssl

    1.确认是否安装ssl模块 是否有mod_ssl.so文件   2.生成证书和密钥   linux下 步骤1:生成密钥 命令:openssl genrsa 1024 > server.key 说 ...

  2. WebBrowser与console.log()

    在WebBrowser中,页面上的console.log()会影响后续代码的执行. <script>console.log(1); alert("1"); //不执行 ...

  3. JSP 异常处理

    JSP 异常处理 当编写JSP程序的时候,程序员可能会遗漏一些BUG,这些BUG可能会出现在程序的任何地方.JSP代码中通常有以下几类异常: 检查型异常:检查型异常就是一个典型的用户错误或者一个程序员 ...

  4. Java中子类对象赋值给父类变量

    1. 在Java中将一个字类对象赋值给父类变量是合法的,这也是实现多态(即方法的动态分派)的前提条件之一. 2. 在Java中父类赋值同样也适用于数组.可以将一个子类数组赋值给一个父类数组变量.但可能 ...

  5. 剑指offer算法总结

    剑指offer算法学习总结 节选剑指offer比较经典和巧妙的一些题目,以便复习使用.一部分题目给出了完整代码,一部分题目比较简单直接给出思路.但是不保证我说的思路都是正确的,个人对算法也不是特别在行 ...

  6. yii2手动添加插件PHPExcel

    1.下载地址:https://github.com/PHPOffice/PHPExcel 2.解压并修改文件名为phpexcel 之后在yii项目的vendor目录下创建一个文件夹命名为phpoffi ...

  7. 最近玩了一下qt5.2.1,顺着写点东西,关于这个版本设置程序主窗口居中

    #include <QtGui/QGuiApplication> #include <QDebug> #include <QScreen> #include &qu ...

  8. iptables疑问总结(一)

    1.关于-j 的return说明 1. 从一个CHAIN里可以jump到另一个CHAIN, jump到的那个CHAIN是子CHAIN.2. 从子CHAIN return后,回到触发jump的那条规则, ...

  9. linux下网卡配置vlan

      yum install vconfig -y  modprobe 8021qvconfig add eth0 900 ifconfig eth0.900 172.16.90.57/24 up    ...

  10. MySQL20个经典面试题

    MySQL20个经典面试题 Part2:经典题目 1.MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联: 2.MySQL中myisam与innodb的区别,至少5点 (1).问5点不 ...