JZOJ 1035. 【SCOI2009】粉刷匠
题目
Description
每条木板被分为 M 个格子。
每个格子要被刷成红色或蓝色。
windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。
每个格子最多只能被粉刷一次。
如果windy只能粉刷 T 次,他最多能正确粉刷多少格子?
一个格子如果未被粉刷或者被粉刷错颜色,就算错误粉刷。
Input
接下来有N行,每行一个长度为M的字符串,'0'表示红色,'1'表示蓝色。
Output
Sample Input
3 6 3 111111 000000 001100
Sample Output
16
Data Constraint
Hint
分析
- 设f[i][j][0/1]为前i个格子刷了j次,当前第i格的颜色为0/1
- 显然
r=((i-1)*m)+j;if (j!=1)f[r][k][0]=max(f[r-1][k][0],f[r-1][k-1][1]), f[r][k][1]=max(f[r-1][k][1],f[r-1][k-1][0]); else f[r][k][0]=max(f[r-1][k-1][0],f[r-1][k-1][1]), f[r][k][1]=max(f[r-1][k-1][1],f[r-1][k-1][0]); if (s[j-1]=='0') f[r][k][0]++; else f[r][k][1]++;
代码
1 #include <iostream> 2 using namespace std; 3 int f[2501][2501][2],r; 4 int main() 5 { 6 int n,m,t; 7 cin>>n>>m>>t; 8 string s; 9 for (int i=1;i<=n;i++) 10 { 11 cin>>s; 12 for (int j=1;j<=m;j++) 13 for (int k=1;k<=t;k++) 14 { 15 r=((i-1)*m)+j; 16 if (j!=1) 17 f[r][k][0]=max(f[r-1][k][0],f[r-1][k-1][1]), 18 f[r][k][1]=max(f[r-1][k][1],f[r-1][k-1][0]); 19 else 20 f[r][k][0]=max(f[r-1][k-1][0],f[r-1][k-1][1]), 21 f[r][k][1]=max(f[r-1][k-1][1],f[r-1][k-1][0]); 22 if (s[j-1]=='0') f[r][k][0]++; 23 else f[r][k][1]++; 24 25 } 26 } 27 cout<<max(f[r][t][1],f[r][t][0]); 28 }
转载于:https://www.cnblogs.com/zjzjzj/p/11330409.html
JZOJ 1035. 【SCOI2009】粉刷匠相关推荐
- BZOJ1296:[SCOI2009]粉刷匠
1296: [SCOI2009]粉刷匠 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2038 Solved: 1182 [Submit][Sta ...
- BZOJ 1296: [SCOI2009]粉刷匠( dp )
dp[ i ][ j ] = max( dp[ i - 1 ][ k ] + w[ i ][ j - k ] ) ( 0 <= k <= j ) 表示前 i 行用了 j 次粉刷的机会能正 ...
- bzoj 1296: [SCOI2009]粉刷匠(DP+DP)
1296: [SCOI2009]粉刷匠 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2339 Solved: 1348 [Submit][Sta ...
- [SCOI2009]粉刷匠 DP)
[SCOI2009]粉刷匠 题目描述: windy有 N 条木板需要被粉刷. 每条木板被分为 M 个格子. 每个格子要被刷成红色或蓝色. windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上 ...
- [洛谷P4158][SCOI2009]粉刷匠(动态规划)
[洛谷P4158][SCOI2009]粉刷匠(动态规划) 题目描述 输入描述 输出描述 示例 输入 输出 题目思路 代码 欢迎关注微信公众号:Java后台开发 题目描述 windy有 N 条木板需要被 ...
- [SCOI2009]粉刷匠 牛客DP入门
0x00 题目来源 [SCOI2009]粉刷匠 0x10 Tag 线性DP.区间DP 0x20 题目描述 windy有 N 条木板需要被粉刷. 每条木板被分为 M 个格子. 每个格子要被刷成红色'0' ...
- P4158 [SCOI2009]粉刷匠(dp)
P4158 [SCOI2009]粉刷匠(dp) 考虑每行独立计算. 所以可以开一个三维数组:g[i][j][k]g[i][j][k]g[i][j][k]第iii行前jjj列涂了kkk次的最大值. 然后 ...
- 【题解】P4158 [SCOI2009]粉刷匠(DP,背包)
[题解]P4158 [SCOI2009]粉刷匠 是一道资源规划 DP 的好题,但是我想了很久还去看了题解./kk我真菜. 题目链接 P4158 [SCOI2009]粉刷匠 - 洛谷 题意概述 发现自己 ...
- 牛客网 【每日一题】[SCOI2009]粉刷匠
链接: 题目描述 windy有 N 条木板需要被粉刷. 每条木板被分为 M 个格子. 每个格子要被刷成红色或蓝色. windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色. 每个格子最 ...
- bzoj1296 [SCOI2009]粉刷匠 区间dp+背包
每一条都是独立的,所以可以分开处理 对于一条,粉刷一定是粉刷完完整的一条是最优的(不会有比它优的),所以枚举次数起点转移 不同条之间就是分组背包的关系了.. 码: #include<iostre ...
最新文章
- DCASE 2020权威声学比赛:腾讯多媒体实验室斩获双项指标国内第一
- buffer sort Oracle,[转]BUFFER SORT是BUFFER却不是SORT
- 04 列表的增删改查 常用方法 元祖 range
- TCP协议疑难杂症全景解析|硬核
- 最小二乘多项式拟合程序matlab,最小二乘法的多项式拟合(matlab实现)
- JS线程与事件循环解析
- Oracle中日期和时间字段的日常使用
- 【转载】linux进程控制-exec系列 exec系统调用
- CodeSmith 基础教程
- 使用Modular QoS CLI(MQC)基于FR的DLCI号对包进行分类
- 机遇与财富并存,一家网吧打造自己的客户数据库,后端疯狂盈利!
- java中的for循环里面创建对象和for循环外面创建对象之间的区别
- Mysql 死锁和死锁的解决方案
- unable to infer tagged configuration编译报错
- 攻击篇--远程控制(一)生成被控端与主控端
- API:BUMO Keypair 指导
- 遮挡人脸识别:基于Python3.8+Tensorflow2.2人脸遮挡情况的人脸识别
- Tomcat 8005/tcp端口安全配置
- ERROR! The server quit without updating PID file (/usr/local/mysql/data/
- GlidedSky爬虫-IP屏蔽1