https://codeforces.com/problemset/problem/225/C

这个题目和之前一个题目很像 https://www.cnblogs.com/EchoZQN/p/10900373.html

只是这个数据范围更大一些,

不过刚开始我真的没有看出来。。。。

这个就是整列整列的处理,所以还是一样枚举当前的连续的j

dp[i][j][k] 这个k只有两个取值,一个是0,一个是1,0 代表白色,1代表黑色。

这个定义就是dp[i][j][0] 前面i个连续j个白色的列需要粉刷的最少的砖的数量。

另外一个同样,

所以按照之前的想法,很贱的就可以知道会有两种情况,一个是j==1 那就说明是之前的情况推过来的,因为之前的这个j不确定,

所以这里要枚举每一种情况。

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<queue>
#include<vector>
#define inf 0x3f3f3f3f
#define debug(x) cout<<"-----"<<" x = "<<x<<"-----"<<endl
using namespace std;
typedef long long ll;
const int maxn = 5e3 + ;
ll dp[][][];
char s[][];
int b[], w[];
int main()
{
int n, m, x, y;
scanf("%d%d%d%d", &n, &m, &x, &y);
for (int i = ; i <= n; i++) scanf("%s", s[i] + );
for(int j=;j<=m;j++)
{
for(int i=;i<=n;i++)
{
if (s[i][j] == '.') w[j]++;
else b[j]++;
}
}
memset(dp, inf, sizeof(dp));
dp[][][] = b[];
dp[][][] = w[];
for(int i=;i<=m;i++)
{
for(int j=;j<=y&&j<=i;j++)
{
if(j!=)
{
dp[i][j][] = dp[i-][j-][] + b[i];
dp[i][j][] = dp[i-][j-][] + w[i];
}
else
{
for(int k=x;k<=y;k++)
{
dp[i][j][] = min(dp[i][j][], dp[i-][k][] + b[i]);
dp[i][j][] = min(dp[i][j][], dp[i-][k][] + w[i]);
}
}
// printf("dp[%d][%d][0]=%lld\n", i, j, dp[i][j][0]);
// printf("dp[%d][%d][1]=%lld\n", i, j, dp[i][j][1]);
}
}
ll ans = inf;
for(int i=x;i<=y;i++)
{
ans = min(ans, dp[m][i][]);
ans = min(ans, dp[m][i][]);
}
printf("%lld\n", ans);
return ;
}

C. Barcode dp的更多相关文章

  1. CodeForces 225C Barcode DP

    也是一道dp ,想到了就会觉得很巧妙 矩阵中只有白块和黑块,要求repaint后满足下述条件: 每列一种颜色 根据输入范围x, y 要求条纹宽度在[x, y] 之间 数据范围: n, m, x and ...

  2. codeforces每日一题1-10

    目录: 1.1093D. Beautiful Graph(DFS染色) 2.514C - Watto and Mechanism(Tire) 3.69E.Subsegments(STL) 4.25C. ...

  3. CF 225C Barcode(DP)

    传送门:点我 You've got an n × m pixel picture. Each pixel can be white or black. Your task is to change t ...

  4. [CF225C] Barcode (简单DAG上dp)

    题目链接:http://codeforces.com/problemset/problem/225/C 题目大意:给你一个矩阵,矩阵中只有#和.两种符号.现在我们希望能够得到一个新的矩阵,新的矩阵满足 ...

  5. Codeforces 225C Barcode(矩阵上DP)

    题目链接:http://codeforces.com/contest/225/problem/C 题目大意: 给出一个矩阵,只有两种字符'.'和'#',问最少修改多少个点才能让每一列的字符一致,且字符 ...

  6. 给你的应用“一只”智慧的眼睛 —— Barcode常识普及以及识别信息处理

    在“如何用MediaCapture解决二维码扫描问题”这篇文章中,我们通过“成像”.“截图”与“识别”三个步骤介绍了使用MediaCapture扫码的主要过程及注意事项.本文主要针对“识别”的过程,对 ...

  7. CF思维联系–CodeForces - 225C. Barcode(二路动态规划)

    ACM思维题训练集合 Desciption You've got an n × m pixel picture. Each pixel can be white or black. Your task ...

  8. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4142  Solved: 1964[Submit][Statu ...

  9. 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...

随机推荐

  1. 【python实现卷积神经网络】padding2D层实现

    代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...

  2. AJ学IOS(25)UI之触摸事件

    AJ分享,必须精品 iOS中的事件 在用户使用app过程中,会产生各种各样的事件;iOS中的事件可以分为3大类型: 响应者对象–UIResponder 在iOS中不是任何对象都能处理事件,只有继承了U ...

  3. Docker-准备Docker环境

    1. 前言 要学习Docker,首先要搭建出虚拟机和docker环境.我的笔记本电脑是windows7系统,用VirtualBox创建虚拟机.虚拟机操作系统为CentOS7.5,Docker版本为18 ...

  4. webWMS开发过程记录(四)- 整体设计

    分层 View(Servlet/Action/JSP)--> Service(接口/实现类) --> Dao(接口/实现类) 所用技术 Struts2 Hibernate Spring J ...

  5. linux基础知识点扫描

    1.tty:查看自己的虚拟终端 2.echo "你的服务器已经被我控制,请立刻打钱给我,账号12312312312314123421,否则后果自负!!!"  >  /dev/ ...

  6. 试验使用t检验

    官方解释 Excel中使用T.TEST函数 T.TEST(array1,array2,tails,type) Array1      必需.第一个数据集. Array2      必需.第二个数据集. ...

  7. 惊呆了,Servlet Filter和Spring MVC Interceptor的实现居然这么简单

    前言 创建型:单例模式,工厂模式,建造者模式,原型模式 结构型:桥接模式,代理模式,装饰器模式,适配器模式,门面模式,组合模式,享元模式 行为型:观察者模式,模板模式,策略模式,责任链模式,状态模式, ...

  8. 功能测试--聊天功能测试&微信聊天

    微信聊天功能测试 发送对象 普通用户.公众号.群.其他特殊主体 衍生功能 转发.语音转文字.删除等 消息发送 单聊.群聊.语音.文字.图片.表情.链接.字符及长度 消息管理 发布通知.接受通知.发文件 ...

  9. [php] 猴子偷桃

    <?php /* 10:五只猴子采得一堆桃子,猴子彼此约定隔天早起后再分食. 不过,就在半夜里,一只猴子偷偷起来,把桃子均分成五堆后, 发现还多一个,它吃掉这桃子,并拿走了其中一堆.第二只猴子醒 ...

  10. [YII2] 去除自带头部以及底部右下角debug调试功能

    YII2 去除自带头部以及底部右下角debug调试功能