UVA-714 二分

        把可能的进行二分判断,判断的时候尽量向右取,一直取到不能去为止,这样才有可能成功分割。

判断是否可以把up作为最大值的代码:

bool judge(LL up){if(up < Big) return false; //Big是数组中最大值,如果up小于最大值是不可能成功划分的LL sum = 0;int cnt = 0;for(int i = 0; i < n; ){sum = 0;while(i < n){sum += a[i];if(sum <= up) ++i;else break;}++cnt;}if(cnt <= k) return true; //成功划分return false;
}

值得注意的是,最后得到最小的最大值时应该如何划分,题目要求前面的尽量小,那么就从后面尽可能多的划分,但是不能只满足小于等于up,也要考虑到组成k个序列,不能让某些序列为空。

AC代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
const int maxn = 500 + 5;
int a[maxn], vis[maxn];
int Big = -1; //Biggest number
int n,k; //Divid n numbers to k squencesbool judge(LL up){if(up < Big) return false;LL sum = 0;int cnt = 0;for(int i = 0; i < n; ){sum = 0;while(i < n){sum += a[i];if(sum <= up) ++i;else break;}++cnt;}if(cnt <= k) return true;return false;
}LL Binary_Search(LL x, LL y){ //[x,y]while(x < y){LL mid = x + (y - x) / 2;bool ok = judge(mid);if(ok) y = mid;else x = mid + 1;}return y;
}int main(){int T;scanf("%d", &T);while(T--) {memset(vis, 0, sizeof(vis));LL sum = 0;Big = -1;scanf("%d%d",&n,&k);for(int i = 0; i < n; ++i){scanf("%d",&a[i]);sum += a[i];Big = max(Big, a[i]);}LL up = Binary_Search(1, sum);LL div;int cnt = 0;for( int  i = n-1; i >= 0;){div = 0;while(div <= up && i >= 0 && i + 1 >= k - cnt){div += a[i];if(div <= up) --i;}++cnt;if(i >= 0) vis[i] = 1;}//print the answerfor(int i = 0; i < n; ++i){if(i == n-1) printf("%d\n", a[i]);else printf("%d ", a[i]);if(vis[i]) printf("/ ");}}return 0;
}

如有不当之处欢迎指出!

转载于:https://www.cnblogs.com/flyawayl/p/8305470.html

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

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

相关文章

html5不支持的属性,HTML5 常用语法一览(列举不支持的属性)

HTML头部标记标记描述HTML5标准定义页面中所有链接的基准URL设定显示在浏览器左上方的标题内容表明该文档是一个可用于检索的网关脚本不支持文档本身的元信息,例如查询关键词,有效期等设定CSS层叠样式表内容设定外部资源的链接页面脚本内容元信息标记属性标记描述值HTML5标准ht…

守护线程

/*守护线程&#xff08;后台线程&#xff09;:在一个进程中如果只剩下了守护线程&#xff0c;那么守护线程也会死亡。需求&#xff1a; 模拟QQ下载更新包。一个线程默认都不是守护线程。*/ public class Demo7 extends Thread {public Demo7(String name){super(name);}Overrid…

c 的word转为html5,word与html互转(1) -- word转html

使用忠告使用该方式进行xhtml到word的转换, 简单转换是可以, 但是可能并没有想象中那么满意, 转换出来的word格式并不完美, 比如目录和标题都会丢失, 标题显示看起来一样, 但是是用正文加粗和加大字号来显示的. 毕竟word是一种文档格式, 而html是一种标记性语言, 要想实现完美兼…

html5列表菜单特效,HTML5 SVG汉堡包菜单按钮分段动画特效

这是一款效果非常炫酷的HTML5 SVG汉堡包菜单按钮分段动画特效。该菜单按钮特效在用户点击汉堡包按钮时&#xff0c;按钮会分割为多段&#xff0c;并旋转变形为关闭按钮的状态。当再次点击该按钮时&#xff0c;它会逆向变形为汉堡包图标。该特效是基于Segment.js插件(一款可以只…

计算机选修课学什么,计算机专业都学什么 主要课程有什么

计算机专业的主要学习内容有什么呢&#xff0c;都开设哪些课程呢&#xff0c;下面小编为大家提供计算机专业主要学习内容&#xff0c;仅供大家参考。计算机专业主要学习内容一、数学类主要课程&#xff1a;高等数学、线性代数、离散数学、概率论、数理统计二、语言类主要课程&a…

Python学习札记(十七) 高级特性3 列表生成式

参考&#xff1a;列表生成式 Note 1.List Comprehensions&#xff0c;即列表生成式&#xff0c;是Python中内置的非常强大的list生成式。 eg.生成一个列表&#xff1a;[1*1, 2*2, ..., 10*10] 使用for...in的方法&#xff1a; #!/usr/bin/env python3L1 []for i in range(1, 1…

excel取html文本长度,excel字符长度 怎么计算excel里的字符串的长度

请教&#xff1a;在EXCEL中如何统计字符长度&#xff1f;打开excel文件&#xff0c;确定需要编辑的内容选择功能区的“公式”功能在公式中选择“LEN”功能在text中选择需要编辑的单元格 7、点击“确定” 8、系统自动计算出了单元excel中怎么判断字符串的长度在Excel中可以使用两…

Java学习之String StringBuffer StringBuilder区别

1.String&#xff1a;对象长度是不可变的&#xff0c;是线程安全。 2.StringBuffer&#xff1a;对象长度是可变的&#xff0c;是线程安全。 3.StringBuilder&#xff1a;对象长度是可变&#xff0c;不是线程安全。转载于:https://www.cnblogs.com/michaelShao/p/6372556.html

计算机找不到管理无线网络,电脑wifi密码忘了 并且找不到管理无线网络该怎么处理?...

电脑能连无线网而不能连有线网怎么办你的网卡的TCP/IP协议&#xff0c;设置了自动获取IP地址&#xff0c;然而你的局域网中不存在可以让你的机器得到IP地址的DHCP服务器。所以你的IP地址没有获取到&#xff0c;当然是受限制或无连接。解决方法是&#xff0c;为每个网卡设置一个…

Java虚拟机(JVM)默认字符集详解

Java中对字符串等进行转换字节数组时, 需要根据字符集编码来进行转换, 当不显示的指定字符集编码时(如: "测试".getBytes()), 会使用Charset.defaultCharset()获取到的字符集编码进行转换! 相关代码如下: 上面的代码可以看出, 在JVM中defaultCharset()是在初始化阶段…

计算机本地用户删除后怎么恢复,Default User文件夹被删了怎样恢复

满意答案opposities2013.06.06采纳率&#xff1a;80% 等级&#xff1a;24已帮助&#xff1a;17327人1、开机后出现“Windows 不能加载本地存储的配置文件。此问题的可能原因是安全权限不足或本地配置文件损坏。如果此问题持续存在&#xff0c;请与您的网络管理员联系。倒数3…

08-SSH综合案例:前台用户模块:注册页面的前台JS校验

这个是MyEclipse设置的问题 把设置去掉就没问题了。 你也可以在每一个input后面加个span来显示提示的信息。这些东西也要提交到后台&#xff0c;后台也是要对这些东西进行校验的。转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/6377756.html

html绘制波形图,JS实现波形图

一直想写个波线图&#xff0c;但写出来发现这是点阵组成的&#xff0c;不知道如何把线条弄的特别的平滑&#xff0c;有会的&#xff0c;求留言评论指导。1.[代码][JavaScript]代码Document.container{width:500px;height:500px;border:1px solid #DEDEDE;}.container span{widt…

sql 中on和where的区别

table a(id, type): id type ---------------------------------- 1 1 2 1 3 2 table b(id, class): id class --------------------------------- 1 1 2 2 sql语句1&#xff1a;select a.*, b.* from a left j…

计算机管理员无法创建密码,找到电脑管理员的密码

轻松找回遗忘的WinXP管理员密码很多“不拘小节”的朋友在使用电脑时&#xff0c;经常是昨天改了Windows XP帐户密码&#xff0c;今天便忘记了内容&#xff0c;把自己锁在“门外”的情况时有发生。对此&#xff0c;大多数朋友只能痛苦的去重新安装系统。其实如果你有以下的条件&…

上传文件插件(plupload)

引入插件&#xff1a; <script src"../../static/js/plupload.full.min.js"></script> /** 上传文件配置* *///配置uploadervar uploader new plupload.Uploader({runtimes: html5,flash,silverlight,html4,browse_button : uploader,url:/delivery/bat…

计算机网络项目实训教程课后答案,计算机网络项目实训教程

摘要&#xff1a;《计算机网络项目实训教程》是专门为Nikon D700相机用户或潜在用户量身定制的实用型图书.将官方手册中抽象的功能描述及没有讲清楚的内容,通过实拍测试及精美照片示例具体地展现出来,特别是精选的摄影玩家实际使用经验与技巧,让您感觉身边时刻有"高手点拨…

如何正确的做事

职场中&#xff0c;常常遇见下列两种人&#xff0c;一种是永远处在无休止忙碌状态&#xff0c;却事倍功半的人&#xff0c;一种是处理工作十拿九稳&#xff0c;经常事半功倍的人。 同样都是做事&#xff0c;造成两种结果的原因究竟是什么呢&#xff1f;答案其实很简单。前者&am…

北大计算机科学与技术专业河南录取分数线,北京大学河南录取分数线|2021北京大学河南分数线|2021年北京大学河南高考分数线|2021年北京大学河南招生计划录取人数...

北京大学2014年在河南省高考录取工作顺利结束。今年北大在豫共录取考生200名&#xff0c;其中全省理科第一名曹林菁、文科投档分第一名齐华瑞和文科实考分第一名齐思涵三位全省最高分考生均选择进入北京大学。今年北大在豫招生无论是总体招生数量还是顶尖高分考生录取&#xff…

clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight

clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight是几个困惑了好久的元素属性&#xff0c;趁着有时间整理一下 1. clientWidth 和 clientHeight 网页中的每个元素都具有 clientWidth 和 clientHeight 属性&#xff0c;表示可视区域的宽高&…