P4158 [SCOI2009] 粉刷匠

news/2025/11/26 21:23:48/文章来源:https://www.cnblogs.com/UesugiErii-/p/19274693

没看到每个格子只能染一次色。。?11

于是 \(f_{i,j}\) 预处理每块木板涂 \(j\) 次色最多有多少个涂正确的,这个直接暴力枚举最后一次涂色的区间就好了。有了 \(f\) 就是简单背包了。

#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/hash_policy.hpp>
#define fin(x) freopen(#x".in","r",stdin)
#define fout(x) freopen(#x".out","w",stdout)
#define fr(x) fin(x),fout(x);
#define Fr(x,y) fin(x),fout(y)
#define INPUT(_1,_2,FILE,...) FILE
#define IO(...) INPUT(__VA_ARGS__,Fr,fr)(__VA_ARGS__)
using namespace std;
using namespace __gnu_pbds;
#define mp make_pair
#define pii pair<int,int>
#define fi first
#define se second
#define pb push_back
#define cfast ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
#define ll long long
#define ull unsigned long long
#define intz(x,y) memset((x),(y),sizeof((x)))
char *p1,*p2,buf[100000];
#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
#define tup(x) array<int,(x)>
inline ll read(){ll x=0,f=1;char ch=nc();while(ch<48||ch>57){if(ch=='-')f=-1;ch=nc();}while(ch>=48&&ch<=57)x=x*10+ch-48,ch=nc();return x*f;
}
//void write(int x){cout<<x<<' ';}
//void write(pii x){cout<<"P("<<x.fi<<','<<x.se<<")\n";}
//void write(vector<auto>x){for(auto i:x)write(i);cout<<'\n';}
//void write(auto *a,int l,int r){for(int i=l;i<=r;i++)write(a[i]);cout<<'\n';}
inline ll lowbit(ll x){return x&-x;}
inline int pcount(ll x){for(int i=0,res=0;;res+=(x>>i)&1,i++)if(i>60)return res;
}//struct mt{
//	ll v;
//	mt(){v=0;}
//	mt(int x){this->v=x;}
//	inline mt operator+(mt x){return {(v+x.v)%mod};}
//	inline mt operator-(mt x){return {(v+mod-x.v)%mod};}
//	inline mt operator*(mt x){return {1ll*v*x.v%mod};}
//};
//inline void add(mt &x,mt y){x=x+y;}
//mt qp(mt x,int y){mt res(1);for(;y;x=x*x,y>>=1)if(y&1)res=res*x;return res;}
const int N=55,M=2505;
#define int ll
char s[N][N];int f[N][N][M],c[N][2],g[M],tmp[M];
inline void UesugiErii(){int n,m,t;cin>>n>>m>>t;for(int i=1;i<=n;i++)cin>>(s[i]+1);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)c[j][0]=c[j-1][0],c[j][1]=c[j-1][1],++c[j][s[i][j]-'0'];for(int j=1;j<=m;j++)for(int p=1;p<=t;p++){f[i][j][p]=f[i][j-1][p];for(int k=0;k<j;k++)f[i][j][p]=max(f[i][j][p],f[i][k][p-1]+max(c[j][0]-c[k][0],c[j][1]-c[k][1]));}}for(int i=1;i<=n;i++){for(int j=1;j<=t;j++)tmp[j]=g[j];for(int k=1;k<=t;k++)for(int j=t;j>=k;j--)tmp[j]=max(tmp[j],g[j-k]+f[i][m][k]);swap(tmp,g);}cout<<g[t];
}
signed main(){//IO();//cfast;int _=1;//cin>>_;for(;_;_--)UesugiErii();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/977668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Temperature、Top P 的原理以及两者区别

Temperature、Top P 的原理以及两者区别Posted on 2025-11-26 21:21 Java后端的Ai之路 阅读(0) 评论(0) 收藏 举报🌟 Temperature & Top P一句话总结: Temperature = AI的"胆量"(胆小→保守,大…

Python convert class list in CSV file via pandas.dataframe

import time import threading import datetime import pandas as pdclass Book():def __init__(self,id,name,author,comment,content,isbn,summary,title,topic):self.id=idself.name=nameself.author=authorself.co…

Google 新出的 Antigravity 有哪些新特性?

1、Antigravity 有哪些新功能? Google 在推出 Antigravity 之前,对市面上 Cursor、Windsurf 等竞品做了深入研究之后,总结出 AI开发者在2025年必不可少的三个核心组件: 1)编辑器体验 编辑器依然是核心,开发者需要…

RabbitMQ消息分发详解:从默认轮询到智能负载均衡 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

宇树 Qmini 双足机器人训练个人经验总结

github:https://github.com/vsislab/RoboTamer4Qmini本篇内容基于我在 AutoDL 云服务器 上对 Qmini 做完整训练与测试的实践总结,涵盖训练、可视化、策略测试、模型导出、URDF 调试等环节,并重点说明 headless(无显…

11月26日

上午离散数学马原 下午补上周马原的课

slkjflksjdklflsdkjfjlksdlkjfsflkjsd

[JOI Open 2019] 三级跳 / Triple Jump三元组等多元组/子区间/子序列问题,求极值。 例如三元组 \((a,b,c)\) 求极值,可以关注两个数 \((a,b)\),再确定 \(c\) 的范围,这样枚举 \((a,b)\) 是 \(O(n^2)\) 的。有时最优…

实用指南:文档搜索引擎搜索模块:从需求拆解到落地的全流程实现指南

实用指南:文档搜索引擎搜索模块:从需求拆解到落地的全流程实现指南2025-11-26 21:08 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto …

AI元人文实践:家庭旅游规划

这是完整版《AI元人文实践:家庭旅游规划》AI元人文实践:家庭旅游规划 从价值冲突到共识涌现的共生之旅 引言:超越决策困境的范式革命 家庭旅游规划,这一看似平常的日常活动,实则是一个多元价值交锋的微观宇宙。传…

十一月份《代码大全》观后感

在大二之前,我代码的终极追求就是“能跑就行”。只要程序能正确输出结果,代码长一点、乱一点,变量名随意一点,都无所谓。我甚至觉得花时间整理代码格式、优化结构是浪费时间,是“过度设计”。 《代码大全2》彻底重…

[KaibaMath]1026 海明码校验位数求解方法的进一步简化

本文基于[logm]+1=⌈log(m+1)⌉,对1020的结果做进一步简化。

畅通工程 小记

1.最短路的板子 2.u=0是哨兵 意味着所有都要+1(0开始的话)!!!起点和终点 3.Dj里的d定义n+1个 4.有多条边时更新之后要存到!!!数组里!!!双向 (通过deepseek检查真的可以收获很多) #include <bits/stdc+…

畅通工程 小记

1.最短路的板子 2.u=0是哨兵 意味着所有都要+1(0开始的话)!!!起点和终点 3.Dj里的d定义n+1个 4.有多条边时更新之后要存到!!!数组里!!!双向 (通过deepseek检查真的可以收获很多) #include <bits/stdc+…

一篇文章详解Kafka Broker - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

一篇文章详解Kafka Broker - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Redhat-9-中编译-EFS-客户端工具-即过程中-报错提示-warning: aws-lc-fips-sys@0.13.9: Building with: CMake-解决方法

Redhat-9-中编译-EFS-客户端工具-即过程中-报错提示-warning: aws-lc-fips-sys@0.13.9: Building with: CMake-解决方法Posted on 2025-11-26 20:53 520_1351 阅读(0) 评论(0) 收藏 举报如果在Amazon linux 系统上…

2025年11月【口碑好的】通讯管理机【公司】【推荐】【哪家好】

2025年11月【口碑好的】通讯管理机【公司】【推荐】【哪家好】市面上通讯规约转换器/嵌入式机柜通讯管理机/工业级通讯管理机/发电厂通讯管理机/远动通讯管理机/光伏通讯管理机/机房通讯管理机/电力通讯管理机/变电站通…

05app抓包

这篇文章写app抓包写得不错!网页:https://forum.butian.net/share/4651

Python store class list data in excel file via pandas

import datetime import pandas as pd import timeclass Book():def __init__(self,id,name,isbn,comment,content,summary,title,topic):self.id=idself.name=nameself.isbn=isbnself.comment=commentself.content=co…

Linuxの磁盘知识2

swap分区1.由于进程占用大量的内存导致系统出现oom报错信息 2.oom 内存溢出:导致系统杀死占用内存最高的进程 解决办法:增加内存 导致内存飙升的因素: 1)由于大量的用户访问 (正常现象) 2)开发写的程序错误导致(jav…