链接:https://ac.nowcoder.com/acm/problem/25581
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
在Casya生活的世界里,一天由m个小时组成。
最近Casya的女神终于答应在接下来的n天中与Casya聊天,Casya非常激动。

在这n天中的每一天的每一个小时中女神可能会在线或者不在线,
某个小时如果女神如果在线且Casya在线的话他们就会开心的聊一个小时;
反之如果女神在线Casya没有在线的话女神就会认为Casya放了她的鸽子而积累一点生气度。

而Casya是个很懒惰的人,他每天只愿意上线一次,当他某天下线后就不愿意再上线了。
换句话说,他每天在线的时间必须是连续的。

现在Casya已经知道每一天的每个小时女神是否会在线

Casya希望在这n天中女神的总生气度不超过k,在此前提下Casya希望他的总上线时间最小。
假设每个小时Casya和女神要么完整在线要么完整不在线,请问Casya在这n天中最小的总上线时间是多少小时?
输入描述:
链接:https://ac.nowcoder.com/acm/problem/25581
来源:牛客网

第一行一个数字T(1 \le T \le 30)T(1≤T≤30)–样例个数。

每个样例第一行三个数字n,m,k(1 \le n,m \le 200,0 \le k \le 200)n,m,k(1≤n,m≤200,0≤k≤200)。
然后这n行,每行一个长度为m的只含’0’和’1’的字符串,
第i个字符串的第j个字符为’0’代表女神第i天的第j个小时不在线,为’1’表示女神第i天的第j个小时在线。

保证所有样例中\sum n \times m∑n×m不超过5 \times 10^{5}5×10
5

输出描述:
每个样例输出一行一个数字–Casya在这n天中最小的总上线时间
示例1
输入
复制

2
2 5 1
01001
10110
2 5 0
01001
10110

输出
复制

5
8

说明
第一个样例:
一种可行的方案:
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。

/*
要求最小的总上线时间,可以转化为最大不在线时间。
即要丢弃尽可能多的1来得到更多不在线时间
题目给出最多可以丢弃k个1,所以就是丢弃k
个1来得到最大不在线时间。
我们需要预处理出每天丢弃1的个数获得的最大空闲时间,
每天处理出来的构成一个组,很明显这题是一个分组背包。

*/

#include <bits/stdc++.h>
using namespace std;
const int N = 205;
int sum[N];//前缀和
int f[N][N];//第i天丢弃j个1获得的最大空闲
int cnt[N];//第i天1的个数
int dp[N];
int n,m,K;
void init()
{memset(dp,0,sizeof(dp));for(int i = 0; i <= n; i++){for(int j = 0; j <= K; j++){f[i][j] = 0;}}
}
void getSum(int now,string s)
{for(int i = 0; i <= m; i++)sum[i] = 0;for(int i = 1; i <= m; i++){if(s[i]=='1')sum[i] = sum[i-1] + 1;elsesum[i] = sum[i-1];}cnt[now] = sum[m];//记录当天1的个数f[now][cnt[now]] = m; //当天丢弃全部1时当天获得m小时空闲//我打算在[i,j]时间段上线for(int i = 1; i <= m; i++){for(int j = i; j <= m; j++){int x = j - i + 1;//这个时间段需要消耗x小时int y = cnt[now]- (sum[j]-sum[i-1]);//这个时间段会丢弃y个1f[now][y] = max(f[now][y],m-x);//丢弃y个1获得的最大空闲时间}}
}
int main ()
{int T;cin>>T;while(T--){cin>>n>>m>>K;string s;init();for(int i = 1; i <= n; i++){cin>>s;s = " " + s;getSum(i,s);s.clear();}int ans = n * m;/*分组背包,求出丢弃K个1获得的最大空闲时间,ans = 总时间 - 最大空闲*/for(int i = 1; i <= n; i++){for(int j = K; j >= 0; j--){for(int k = 0; k<=cnt[i]&&j>=k; k++)//该组中选一件{dp[j] = max(dp[j],dp[j-k]+f[i][k]);}}}cout<<(ans-dp[K])<<endl;}return 0;
}

2019年湘潭大学程序设计竞赛(重现赛)补题:H.Chat(分组背包)相关推荐

  1. 2021年广东工业大学第11届腾讯杯新生程序设计竞赛(同步赛)错题笔记

    目录: 题目链接 A 比比谁更大 B 过生日 D 机器人 G 拼牛牛 I 史莱姆 J 水题 K 烧烤丝瓜 L 歪脖子树下的灯 题目链接 A 比比谁更大 题目描述 在一个夜黑风高的晚上,牛哥哥吃完心爱的 ...

  2. 2019年湘潭大学程序设计竞赛(重现赛)补题:F.Black White(尺取法)

    链接:https://ac.nowcoder.com/acm/contest/893/F 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  3. 2019年湘潭大学程序设计竞赛(重现赛)F.Truthman or Fakeman(并查集)

    链接:https://ac.nowcoder.com/acm/problem/25579 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  4. 2019年湘潭大学程序设计竞赛(重现赛)

    没有准时参加比赛,在比赛中只AC3题,主要是我太菜了!!! A,B两题送分题. C题: (搞得差不多了比赛却结束了??) C Math Problem https://ac.nowcoder.com/ ...

  5. 哈尔滨理工大学软件与微电子学院程序设计竞赛(新生赛) -补档

    time:2019.11.08 题目较多,所以使用目录. 文章目录 Problem A:[NowCoder54536 小乐乐学编程](https://ac.nowcoder.com/acm/probl ...

  6. 2019年湘潭大学程序设计竞赛

    Problem A Who's better? https://ac.nowcoder.com/acm/contest/893/A 题意:模拟ACM比赛计分规则 题解:模拟 C++版本一 /* *@A ...

  7. 福州大学第十四届程序设计竞赛-重现赛(Record)

    Problem A Salty Fish Accept: 108    Submit: 400 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Pr ...

  8. 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 G - 彩虹岛套娃

    题目描述 俄罗斯套娃是俄罗斯特产的木制玩具,一般由多个一样图案的空心木娃娃一个套一个组成,最多可达十多个,通常为圆柱形,底部平坦可以直立.颜色有红色,蓝色,绿色,紫色等.最普通的图案是一个穿着俄罗斯民 ...

  9. FZU Problem 2221 RunningMan(思维考查)——第六届福建省大学生程序设计竞赛-重现赛

    此文章可以使用目录功能哟↑(点击上方[+])  FZU Problem 2221 RunningMan Accept: 0    Submit: 0 Time Limit: 1000 mSec     ...

最新文章

  1. jquery动态添加列表后样式失效解决方式
  2. 网络工程师的职业发展路线
  3. 如何去除本地文件与svn服务器的关联
  4. CRTMPServer 在CentOS 64-bit下的编译(转)
  5. django前后端分离部署
  6. 【OS学习笔记】二十三 保护模式七:保护模式下任务的隔离与任务的特权级概念
  7. 95-849-040-源码-RPC-Flink中的RPC使用
  8. macbook proc 如何设置touch bar 为F键
  9. python实现三级菜单
  10. [常用工具]深度学习Caffe处理工具
  11. IDEA 运行 Tomcat 中文乱码的问题
  12. Snipaste下载安装(使用教程)
  13. WebView 监听 H5 下载
  14. java.sql.SQLException: Parameter index out of range (2 」 number of parameters, which is 1).
  15. android 跑马灯带图片,Android自定义跑马灯效果(适合任意布局)
  16. Mac中从pdf文件中提取指定页的方法
  17. 关于Oracle SQL中系统时间和库里数据时间的比较
  18. WordPress网站Logo
  19. caffe常用层:batchNorm使用
  20. ArcGIS空间分析实验教程-部分实验案例(ArcPy实现)

热门文章

  1. JRebel : java.lang.OutOfMemoryError: PermGen space 异常
  2. python中比较重要的几个函数_【python】python re模块中几个比较重要的函数
  3. 4x4矩阵键盘工作原理及扫描程序_AVR单片机扫描4X4矩阵键盘并数码管显示程序
  4. Java heap space设置方法记录
  5. 女程序员被阿里录取工资二万六,辞职时被领导挽留:给你四万留下
  6. php一次性执行多条sql_PHP循环执行多条SQL
  7. es6 日期字符串转日期_【R语言新书】1.4 数据结构Ⅲ:字符串、日期时间
  8. python祝福祖国代码_国庆节踩空间留言代码_国庆节祝福正在加载中
  9. 济南女子学院计算机科学与技术,山东女子学院计算机科学与技术专业2016年在山东理科高考录取最低分数线...
  10. 计算机科学导论实验考试,计算机科学导论实验指导书