题目描述

神牛有很多...当然...每个同学都有自己衷心膜拜的神牛.

某学校有两位神牛,神牛甲和神牛乙。新入学的 n 位同学们早已耳闻他们的神话。

所以,已经衷心地膜拜其中一位了。现在,老师要给他们分机房。但是,要么保证整个机房都是同一位神牛的膜拜者,或者两个神牛的膜拜者人数差不超过 m。另外,现在 n 位同学排成一排,老师只会把连续一段的同学分进一个机房。老师想知道,至少需要多少个机房。

输入格式

输入文件第一行包含两个整数 nn 和 mm。

第 2 到第 (n + 1)行,每行一个非 1 即 2 的整数,第 (i+1) 行的整数表示第 ii 个同学崇拜的对象,1 表示甲,2 表示乙。

输出格式

输出一个整数,表示最小需要机房的数量。

输入输出样例

输入 #1复制

5 1
2
2
1
2
2

输出 #1复制

2

说明/提示

数据规模与约定

  • 对于 30\%30% 的数据,保证1≤n,m≤50。
  • 对于 100\%100% 的数据,保证 1≤n,m≤2500。
  • //dp[i]表示前i个人所需的最少机房数。
    //前缀和+差分思想。
    //如果第i个人是1,那么sum[i]=sum[i-1]+1, 否则sum[i]=sum[i-1]-1
    //if(abs(sum[i]-sum[j-1]==i-j+1)),说明i到j都相同
    //if(abs(sum[i]-sum[j-1]<=m)),说明i和j之间的不同人数差不超过m
    //在符合以上两个条件下,转移方程:dp[i]=min(dp[i],dp[j-1]+1)
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int n,m;
    int be[2505],sum[2505],dp[2505];
    int main()
    {memset(dp+1,0x7f,sizeof(dp));scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&be[i]);if(be[i]&1) sum[i]=sum[i-1]+1;//前缀和 else sum[i]=sum[i-1]-1;}for(int i=1;i<=n;i++)//枚举人数 {for(int j=1;j<=i;j++)//枚举前i个 {if(abs(sum[i]-sum[j-1])==i-j+1||abs(sum[i]-sum[j-1])<=m){dp[i]=min(dp[i],dp[j-1]+1);}}}printf("%d",dp[n]);return 0;
    }

参考

洛谷 P1564 膜拜 C++ dp相关推荐

  1. 洛谷P1564 膜拜 题解

    膜拜 - 洛谷 description: 给定一串 个仅含有 数字的串,请将其分割成若干个子串,使得其中满足只有 或者 ,或者两种数字的数量之差不超过 . solution: 比较基础的 . 首先,前 ...

  2. 洛谷--橙色百道DP总结

    最近刷完了洛谷橙色DP大约一百道,算是发现了一些套路,就部分题目做一些总结. 大概分为三类 第一类,九大背包及其衍生 第二类,经典DP模型,如LCS,LIS等 第三类,实际问题背景的普通,环形,树上D ...

  3. Educational Codeforces Round 81 (Rated for Div. 2) F.Good Contest \ 洛谷 划艇 组合 计数dp

    cf传送门 P3643 [APIO2016]划艇 文章目录 题意: 思路: 题意: aia_iai​在[li,ri][l_i,r_i][li​,ri​]等概率随机选一个数,求aaa数组不增的概率. 思 ...

  4. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 "低价购买"这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:"低价购买:再低价购买".每次你购买一支股 ...

  5. 洛谷P1244 青蛙过河 DP/思路

    又是一道奇奇怪怪的DP(其实是思路题). 原文戳>>https://www.luogu.org/problem/show?pid=1244<< 这题的意思给的挺模糊,需要一定的 ...

  6. 洛谷 P2657 (数位DP)

    ### 洛谷 P2657 题目链接 ### 题目大意:给你一个数的范围 [A,B] ,问你这段区间内,有几个数满足如下条件: 1.两个相邻数位上的数的差值至少为 2 . 2.不包含前导零. 很简单的数 ...

  7. 洛谷 Golden Sword(dp,优先队列优化【含板子】)|| 补充练习:洛谷 跳房子

    题目链接: 「SWTR-03」Golden Sword - 洛谷 思路: 设表示放第i个原料,锅里共有 j 个时的耐久度之和. 容易知道dp方程为,其中 这样就可以写出暴力dp的代码如下:(需要枚举i ...

  8. layui树形父子不关联_DP专题7 | 没有上司的舞会 洛谷1352(树形DP)

    高能预警:这是一篇超过5分钟的学习文章,暑假了可以多学会 本篇继续咱们的DP专题,树形DP入门.动态规划每一个类型的DP都是深坑,期望童鞋们自己在这个系列的基础上多花时间进行拓展,学习愉快~ 在讨论树 ...

  9. 洛谷 P2679 子串 【dp神题】【滚动数组】【2015 noip d2t2】

    偷个懒,题解看这里:https://www.luogu.org/problemnew/solution/P2679 看作者 GuessYCB  写的 ===2018.9.6=== 这一次算理解深一点了 ...

最新文章

  1. 英特尔支持员工自带设备办公
  2. 核心动画的接触点滴(五)
  3. 【teradata】强制解锁
  4. OpenCASCADE绘制测试线束:图形命令之AIS 查看器——查看命令
  5. Eclipse更改默认字符集 设置UTF-8
  6. java正则表达式判断_Java正则表达式判断
  7. HTML下拉菜单为什么无线拉长,【CSS】怎么拉长一个div的高度
  8. canal下载 linux_阿里canal数据库同步ES使用
  9. 【Oracle 学习】Scott账号解锁
  10. mysql常用语句1
  11. 计算机窗口保护颜色,如何设置电脑保护色,教你设置电脑保护色
  12. html设置了背景图片不显示,CSS设置背景图片不显示的解决方法
  13. 课外读物积累-----如何提高英文的科研写作能力(摘自施一公寄语)
  14. 海马玩安卓模拟器linux,Droid4X 0.8.4 海马玩安卓模拟器 安卓的福音
  15. cdn perl_用perl对CDN节点日志进行统计
  16. centOS域名访问问题,/etc/hosts详解
  17. Matlab论文插图绘制模板第39期—阶梯图(Stairs)
  18. 165页最全银行IT核心系统研究框架
  19. vue3+vite+electron项目搭建
  20. 来自远方的“僵尸之手”

热门文章

  1. WARNING: Device for PV 0lQ0Gl-RBe5-fPrr-OKYB-whwD-qHPF-izvEES not found or rejected by a filter
  2. 跳转微信小程序和支付宝小程序
  3. 64码高清电视 android版,爱直播tv版-爱直播v4.7.64 安卓智能电视版__西西安卓tv
  4. PCB入门使用技巧——个人笔记
  5. 使用STL给选手打分
  6. 宁静、万茜等姐姐们“乘风破浪”,各品牌借势掀起新一波火热营销
  7. [1002]:A+BII(大数计算)
  8. Easyrecovery如何正确激活
  9. 同比、定比和环比分析
  10. Javaweb学习之中文乱码问题