[2019年湘潭大学程序设计竞赛(重现赛)H chat][背包dp]
链接:https://ac.nowcoder.com/acm/contest/893/H
来源:牛客网
题目描述
最近Casya的女神终于答应在接下来的n天中与Casya聊天,Casya非常激动。
在这n天中的每一天的每一个小时中女神可能会在线或者不在线,
某个小时如果女神如果在线且Casya在线的话他们就会开心的聊一个小时;
反之如果女神在线Casya没有在线的话女神就会认为Casya放了她的鸽子而积累一点生气度。
而Casya是个很懒惰的人,他每天只愿意上线一次,当他某天下线后就不愿意再上线了。
换句话说,他每天在线的时间必须是连续的。
现在Casya已经知道每一天的每个小时女神是否会在线
Casya希望在这n天中女神的总生气度不超过k,在此前提下Casya希望他的总上线时间最小。
假设每个小时Casya和女神要么完整在线要么完整不在线,请问Casya在这n天中最小的总上线时间是多少小时?
输入描述:
第一行一个数字T(1≤T≤30)T(1≤T≤30)--样例个数。 每个样例第一行三个数字n,m,k(1≤n,m≤200,0≤k≤200)n,m,k(1≤n,m≤200,0≤k≤200)。
然后这n行,每行一个长度为m的只含'0'和'1'的字符串,
第i个字符串的第j个字符为'0'代表女神第i天的第j个小时不在线,为'1'表示女神第i天的第j个小时在线。 保证所有样例中∑n×m∑n×m不超过5×1055×105。
输出描述:
每个样例输出一行一个数字--Casya在这n天中最小的总上线时间
说明
第一个样例:
一种可行的方案:
Casya第一天只在第2个小时上线,第五个小时女生在线而Casya不在线,生气度积累1;
Casya第一天在第1、2、3、4个小时上线。
Casya的总上线时间是1+4=5。
第二个样例:
只能老老实实上线。
Casya第一天在第2、3、4、5个小时上线;
Casya第一天在第1、2、3、4个小时上线。
Casya的总上线时间是4+4=8。
题意:给出n个01串,每个01串取一个区间,要求至少覆盖sum-k个1,其中sum为所有字符串的1的个数,并且使n个区间的总长度最短,求最短总长度
题解:预处理出每个01串丢弃j个1可以得到的贡献,然后背包dp就行了
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define debug(x) cout<<"["<<#x<<"]"<<" is "<<x<<endl;
char ch[][];
int dp[][],dp2[][],a[][],b[];
int main(){
int t;
cin>>t;
while(t--){
int n,m,k;
scanf("%d%d%d",&n,&m,&k);
int sum=;
memset(dp,,sizeof(dp));
memset(dp2,0x3f3f3f3f,sizeof(dp2));
dp2[][]=;
for(int i=;i<=n;i++){
scanf("%s",ch[i]+);
int tot=;
for(int j=;j<=m;j++){
if(ch[i][j]==''){
a[i][++tot]=j;
sum++;
}
}
b[i]=tot;
for(int q=;q<=tot;q++){
dp[i][tot]=a[i][tot]-a[i][]+;
for(int w=;tot-q+w>=&&tot-q+w<=tot;w++){
dp[i][q]=max(dp[i][q],a[i][tot]-a[i][]+-(a[i][tot-q+w]-a[i][w+]+));
}
}
}
for(int i=;i<=n;i++){
for(int w=;w<=k;w++){
for(int j=min(b[i],w);j>=;j--){
if(dp2[i-][w-j]!=0x3f3f3f3f)dp2[i][w]=min(dp2[i][w],dp2[i-][w-j]+a[i][b[i]]-a[i][]+-dp[i][j]);
}
}
}
if(sum<=k)printf("0\n");
else printf("%d\n",dp2[n][k]);
}
return ;
}
[2019年湘潭大学程序设计竞赛(重现赛)H chat][背包dp]的更多相关文章
- 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 H - 圣诞节糖果
题目描述 圣诞节临近,彩虹岛的黑心商人
- 2019年湘潭大学程序设计竞赛(重现赛)F.Black&White
传送门 F.Black&White •题意 操作 m 次后,求连续的1或连续的0的最大值,每次操作只能反转一个位置: •思路1(反悔操作) 定义队列q:依次存放两个零之间的1的个数+1: 首先 ...
- 江西财经大学第二届程序设计竞赛同步赛 H大时钟 (扩展欧几里得)
链接:https://ac.nowcoder.com/acm/contest/635/H来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...
- “浪潮杯”第九届山东省ACM大学生程序设计竞赛重现赛 C-Cities
题目描述:There are n cities in Byteland, and the ith city has a value ai. The cost of building a bidirec ...
- 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 G - 彩虹岛套娃
题目描述 俄罗斯套娃是俄罗斯特产的木制玩具,一般由多个一样图案的空心木娃娃一个套一个组成,最多可达十多个,通常为圆柱形,底部平坦可以直立.颜色有红色,蓝色,绿色,紫色等.最普通的图案是一个穿着俄罗斯民 ...
- 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 F - 打铁的箱子
题目描述 作为彩虹岛上最擅长打铁的人,
- 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 D - 新卡片游戏
题目描述
- 第十四届浙江财经大学程序设计竞赛重现赛--A-A Sad Story
链接:https://www.nowcoder.com/acm/contest/89/A 来源:牛客网 1.题目描述 The Great Wall story of Meng Jiangnv’s Bi ...
- 牛客网 湖南大学2018年第十四届程序设计竞赛重现赛 A game
链接:https://www.nowcoder.com/acm/contest/125/A来源:牛客网 Tony and Macle are good friends. One day they jo ...
随机推荐
- Mui 沉浸模式以及状态栏颜色改变
手机的顶部状态栏,也就是信号.电量那条,有4种状态,分别是正常.变色.透明(也称沉浸式状态栏).消失(也就是全屏).后3种特殊用法,具体见下: 这些都是真机运行不生效,需提交App云端打包后才生效: ...
- Jmeter 跨线程组传递参数 之两种方法(转)
终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...
- Java:HashMap的实现原理(JDK1.8)
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变 ...
- 注册中心Eureka 说明
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCloud将它集成在其子项 ...
- 笔记-4:mysql数据查询
1.创建查询表 1.1 创建班级表 含义 字段名 数据类型 宽度 班级编号 classNo 字符型 6 班级名称 className 字符型 20 所属院系 department 字符型 30 年级 ...
- ThreadLocal内存泄漏真因探究(转)
出处: 链接:https://www.jianshu.com/p/a1cd61fa22da ThreadLocal原理回顾 ThreadLocal的原理:每个Thread内部维护着一个ThreadLo ...
- 解决GitHub下载速度缓慢的问题
随着微软大大宣布GitHub针对个人用户的仓库免费,相信每位开发者都感受到了"真香". 然而因为一些众所周知的原因,国内访问GitHub总会遇到下载速度缓慢.链接意外终止的情况. ...
- Spring Boot Redis 分布式缓存的使用
一.pom 依赖 <!-- 分布式缓存 --> <dependency> <groupId>org.springframework.boot</groupId ...
- R语言做逻辑回归
前面写过一个多分类的逻辑回归,现在要做一个简单的二分类,用glm函数 导入csv格式如下: mydata<-read.csv("D://li.csv",header=T) c ...
- 转:让PIP源使用国内镜像,提升下载速度和安装成功率
转载,自己记录使用,原文http://www.cnblogs.com/microman/p/6107879.html 对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太 ...