度度熊剪纸条

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1788    Accepted Submission(s): 318

Problem Description
度度熊有一张纸条和一把剪刀。

纸条上依次写着 N 个数字,数字只可能是 0 或者 1。

度度熊想在纸条上剪 K 刀(每一刀只能剪在数字和数字之间),这样就形成了 K+1 段。

他再把这 K+1 段按一定的顺序重新拼起来。

不同的剪和接的方案,可能会得到不同的结果。

度度熊好奇的是,前缀 1 的数量最多能是多少。

Input
有多组数据,读到EOF结束。

对于每一组数据,第一行读入两个数 N 和 K 。

第二行有一个长度为 N 的字符串,依次表示初始时纸条上的 N 个数。

0≤K<N≤10000

所有数据 N 的总和不超过100000

Output
对于每一组数据,输出一个数,表示可能的最大前缀 1 的数量。
Sample Input
5 1 11010 5 2 11010
Sample Output
2 3
Source
2018 “百度之星”程序设计大赛 - 初赛(A)
Recommend
chendu   |   We have carefully selected several similar problems for you:  6437 6436 6435 6434 6433 
 
分析:求可能的最大前缀,首先我们把所有连续的1分离出来,考虑分离中间的连续1我们要进行两次操作,分离最前面和最后面的连续的1只要一次操作
  当k大于2的时候,我们直接加上最大的连续的1,当k<=2时,特判分离需要1次和两次的和的较大值
AC代码:
#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <queue>
#include <cstdio>
#include <vector>
#include <string>
#include <bitset>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <algorithm>
#define ls (r<<1)
#define rs (r<<1|1)
#define debug(a) cout << #a << " " << a << endl
using namespace std;
typedef long long ll;
const ll maxn = 1e4+10;
const ll mod = 998244353;
const double pi = acos(-1.0);
const double eps = 1e-8;
ll n, k, a[maxn];
bool cmp( ll p, ll q ) {return p > q;
}
int main() {ios::sync_with_stdio(0);while( cin >> n >> k ) {string s;cin >> s;bool flag = false;ll cnt = 0, j = 0, st = 0, ed = n-1, num1 = 0, num2 = 0, ans = 0;while(s[st]=='1'&&st<n) {st ++;}num1 = st;while(s[ed]=='1'&&st<=ed) {ed --;}num2 = n-1-ed;if( k == 0 ) {cout << num1 << endl;continue;}for( ll i = st; i <= ed; i ++ ) {if(s[i]=='0') {if(cnt) {a[++j] = cnt;}cnt = 0;} else {cnt ++;}}sort(a+1,a+j+1);ll x = 0;while( k > 2 && j >= 1 ) {ans += a[j--];k -= 2;}if( k == 1 ) {ans += max(num1+num2,a[j]);} else {ans += max(num1+num2,max(num1+a[j],num2+a[j]));}cout << ans << endl;}return 0;
}

  

转载于:https://www.cnblogs.com/l609929321/p/9520464.html

hdu6376 度度熊剪纸条 思维相关推荐

  1. HDU6376 度度熊剪纸条

    01背包 + 思维 首先可以发现,开头是1的要分开要切一次,中间的切两次,末尾是1的切一次. 把切的次数看成花费,1的个数看成价值,就可以01背包求解了. 但是有一点要注意,中间的连续1的串如果放在末 ...

  2. 【HDU - 6119】小小粉丝度度熊 (区间合并,尺取,思维)

    题干: 度度熊喜欢着喵哈哈村的大明星--星星小姐. 为什么度度熊会喜欢星星小姐呢? 首先星星小姐笑起来非常动人,其次星星小姐唱歌也非常好听. 但这都不是最重要的,最重要的是,星星小姐拍的一手好代码! ...

  3. 【2012百度之星/初赛上】A:度度熊就是要第一个出场

    描述:Baidu年会安排了一场时装秀节目.N名员工将依次身穿盛装上台表演.表演的顺序是通过一种"画线"抽签的方式决定的. 首先,员工们在一张白纸上画下N条平行的竖线.在竖线的上方从 ...

  4. 【HDU - 6118】度度熊的交易计划(最小费用可行流,网络流费用流变形 )

    题干: 度度熊参与了喵哈哈村的商业大会,但是这次商业大会遇到了一个难题: 喵哈哈村以及周围的村庄可以看做是一共由n个片区,m条公路组成的地区. 由于生产能力的区别,第i个片区能够花费a[i]元生产1个 ...

  5. 2017百度之星资格赛:1001. 度度熊保护村庄(floyd最小环)

    度度熊保护村庄  Accepts: 26  Submissions: 677  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 32768/ ...

  6. 2017百度之星初赛:B-1005. 度度熊的交易计划(最小费用流)

    度度熊的交易计划  Accepts: 460  Submissions: 2329  Time Limit: 12000/6000 MS (Java/Others)  Memory Limit: 32 ...

  7. HDU - 6082 度度熊与邪恶大魔王(背包变式)

    度度熊与邪恶大魔王 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式,第i种攻击方式,需 ...

  8. 【2012百度之星/初赛下】C:度度熊的礼物

    描述:度度熊拥有一个自己的Baidu空间,度度熊时不时会给空间朋友赠送礼物,以增加度度熊与朋友之间的友谊值.度度熊在偶然的机会下得到了两种超级礼物,于是决定给每位朋友赠送一件超级礼物.不同类型的朋友在 ...

  9. 【2012百度之星/初赛下】A:度度熊就是要刷排名第一

    描述:一天度度熊在Baidu游戏大厅中发现了一个隐藏的神奇游戏,叫做"度度熊的逆袭".度度熊很好奇到底是什么情况,于是就进入了游戏.这个游戏很神奇,游戏会给出n个数Ai,度度熊可以 ...

最新文章

  1. NM-1A-OC3MM和NM-CIDS-K9模块的苦恼
  2. 通过FPGA将图片信息通过RS232串口发送到PC端,使用MATLAB进行图片显示
  3. BJUI修改弹窗dialog的宽度和高度
  4. 把函数包起来就是一个R包 - 完整开发指南
  5. 在CentOS7上使用FastDFS搭建文件服务器
  6. Linux下双网卡绑定技术实现负载均衡和失效保护 bond
  7. html刘海屏高度,iphone刘海屏网页适配方法
  8. mysql查询当前时间和用户_MySQL学习笔记(3) - 查询服务器版本,当前时间,当前用户...
  9. 兼容M1芯片 Denise Audio poltergate Mac - 侧链均衡器
  10. linux安装R3.5.0
  11. 经验模态分解(EMD)
  12. es高亮搜索java_ES检索服务搜索结果高亮
  13. 在网站优化中怎么做好关键词密度?
  14. adt变频器故障代码ol2_变频器常见故障代码及处理实例
  15. Day41——Dp专题
  16. Python实现鸡群算法
  17. 2019年12月7日PAT甲级满分题解与经验总结
  18. 五 、Kotlin学习之命名参数默认参数
  19. Spring MVC框架:第二章:视图解析器和@RequestMapping注解使用在类级别及获取原生Servlet API对象
  20. 聊聊Windows的销售渠道和授权版本

热门文章

  1. android运行exe没有反应,安卓最担心的事情发生了
  2. java加载不进去_java sql添加不进去
  3. 作为一名程序员为什么要用vim作为自己的IDE编辑器
  4. layui循环数据并渲染_layui使用表格渲染获取行数据的例子
  5. FPGA逻辑设计回顾(9)DDR的前世今生以及演变过程中的技术差异
  6. 遇见BUG(1):都是非时钟专用引脚惹的祸?
  7. 【 FPGA 】FIR 滤波器之多相插值器(Polyphase Interpolator)
  8. 【FPGA】流水线学习笔记
  9. ubuntu root默认密码(初始密码)
  10. linux下防火墙的管理工具firewall-cmd