洛谷 P4343 自动刷题机
题目链接:自动刷题机
思路
二分典题,两个二分判断出可能的最大值和最小值。需要注意当删掉y行代码后,当前代码行数小于0时需要将代码行数重新赋值为0,然后需要注意二分的n最大值的边界,因为x[i]的最大值为1e9,日志最多有1e5行,所以考虑极限情况,日志每一行都是写了1e9行代码,所以最大n可能为1e14,尽量将二分的r边界设大。
代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 1e5 + 10;
ll operate[N], l, k;
ll check(ll x) {
ll num = 0, ans = 0;
for (int i = 1; i <= l; i++) {
num += operate[i];
if (num < 0) {
num = 0;
}
if (num >= x) {
ans++;
num = 0;
}
}
return ans;
}
int main() {
cin >> l >> k;
for (int i = 1; i <= l; i++) {
cin >> operate[i];
}
ll nl = 1, nr = 1e18, mid = (nl + nr) >> 1, maxres = -1, minres = -1;
while (nl <= nr) {
mid = (nl + nr) >> 1;
if (check(mid) >= k) {
if (check(mid) == k)
maxres = mid;
nl = mid + 1;
} else {
nr = mid - 1;
}
}
nl = 1, nr = 1e18;
while (nl <= nr) {
mid = (nl + nr) >> 1;
if (check(mid) <= k) {
// 可能会出现只有check>k的情况,没有等于k,但是答案被赋值了,会直接输出,但是实际上结果为-1
if (check(mid) == k)
minres = mid;
nr = mid - 1;
} else {
nl = mid + 1;
}
}
if (maxres == -1) {
cout << -1 << endl;
} else
cout << minres << " " << maxres << endl;
return 0;
}
洛谷 P4343 自动刷题机的更多相关文章
- 洛谷 P4343 [SHOI2015]自动刷题机
思路 二分答案 显然的二分答案,但是因为二分判定条件 \(\text{wa}\) 了好几遍-- 可以发现,\(n\) 越大,\(k\) 就越小,所以答案是有单调性的,因此可以用两个二分,一次求最大值, ...
- luogu P4343 [SHOI2015]自动刷题机 |二分答案
题目描述 曾经发明了信号增幅仪的发明家 SHTSC 又公开了他的新发明:自动刷题机--一种可以自动 AC 题目的神秘装置. 自动刷题机刷题的方式非常简单:首先会瞬间得出题目的正确做法,然后开始写程序. ...
- 【BZOJ-4590】自动刷题机 二分 + 判定
4590: [Shoi2015]自动刷题机 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 156 Solved: 63[Submit][Status ...
- BZOJ4590 自动刷题机
Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动 刷题机刷题的方式非常简单:首先会瞬间得出题目的正确做法,然后开始写 ...
- BZOJ_4590_[Shoi2015]自动刷题机_二分答案
BZOJ_4590_[Shoi2015]自动刷题机_二分答案 Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动 刷题 ...
- BZOJ4590 Shoi2015 自动刷题机 【二分】
BZOJ4590 Shoi2015 自动刷题机 Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机–一种可以自动AC题目的神秘装置.自动刷题机刷题的方式非常简 ...
- 【BZOJ4590】[Shoi2015]自动刷题机 二分
[BZOJ4590][Shoi2015]自动刷题机 Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动刷题机刷题的方式 ...
- COGS2642 / Bzoj4590 [Shoi2015]自动刷题机
Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 906 Solved: 321 Description 曾经发明了信号增幅仪的发明家SHTSC又公开了 ...
- LibreOJ #2036. 「SHOI2015」自动刷题机
#2036. 「SHOI2015」自动刷题机 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 题目描述 曾经发明了信号增幅仪的发明家 SHTSC 又公开 ...
- bzoj4590: [Shoi2015]自动刷题机(二分答案)
4590: [Shoi2015]自动刷题机 题目:传送门 题解: 很明显的一道二分题. 对于二分性的判断:如果n越大,那么AC的题就越少,n越小,AC的题就越多,那么最大最小值都满足单调性,直接瞎搞. ...
随机推荐
- 技术干货|基于Apache Hudi 的CDC数据入湖「内附干货PPT下载渠道」
简介: 阿里云技术专家李少锋(风泽)在Apache Hudi 与 Apache Pulsar 联合 Meetup 杭州站上的演讲整理稿件,本议题将介绍典型 CDC 入湖场景,以及如何使用 Pulsa ...
- [FE] 被动检测 iframe 加载 src 成功失败的一种思路和方式 (Vue)
思路:设置定时器一个,n 秒后设置 404 或其它,此时给 iframe 的 onload 事件设置回调函数,加载完成则取消定时器. 示例: data () { return { handler: n ...
- [FAQ] Jetbrains 官网不能访问,获取 Goland 的下载地址
2020.02 安装包下载 Link:https://www.cnblogs.com/farwish/p/14186441.html
- [FE] yarn, npm 切换镜像源
yarn 设置命令如下,会修改 ~/.yarnrc 内容. $ yarn config set registry https://registry.yarnpkg.com npm 设置命令如下,会修改 ...
- 通过Ingress-nginx实现灰度发布---灰度发布(22)
1.通过Ingress-nginx实现灰度发布 场景一: 将新版本灰度给部分用户 假设线上运行了一套对外提供 7 层服务的 Service A 服务,后来开发了个新版本 Service A' 想 要上 ...
- django-rest-framework框架(一)
1.Web开发模式 # web开发模式 #前后端混合开发(前后端不分离):返回的是html的内容,需要写模板 #前后端分离:只专注于写后端接口,返回json,xml格式数据 # xml格式 <x ...
- js的几个截取
jsfun(){ let str = '01234567' let str1 str1 = str.slice(2,5) ...
- Dijkstra迪杰斯特拉求最短路和最短路的条数和各个点权值的最大值
作为一个城市的紧急救援队队长,你会得到一张你所在国家的特殊地图. 该地图显示了由一些道路连接的几个分散的城市. 地图上标出了每个城市的救援队伍数量以及任意两个城市之间每条道路的长度. 当其他城市接到紧 ...
- 16、数据库加固-mongo 加固
1.指定日志与数据库存放位置 在配置文件中设置指向目录位置 自建配置文件:vim /usr/local/mongodb/etc/mongodb.conf dbpath=/data/db logpath ...
- Linux — 进程管理
进程创建 进程通过fork()创建的大致过程: #include <stdio.h> #include <stdlib.h> #include <sys/types.h& ...