1. /*
  2. 有理有据的二分答案
  3. 因为在过程中最多减到零 所以n越小显然就能刷更多的题
  4.  
  5. 无解时就是无论如何也无法得到k , 这个特判一下即可
  6. */
  7.  
  8. #include<cstdio>
  9. #include<algorithm>
  10. #include<cstring>
  11. #include<iostream>
  12. #define M 100010
  13. #define ll long long
  14. #define inf 100000000000ll
  15. using namespace std;
  16. ll read()
  17. {
  18. ll nm = , f = ;
  19. char c = getchar();
  20. for(; !isdigit(c); c = getchar()) if(c == '-') f = -;
  21. for(; isdigit(c); c = getchar()) nm = nm * + c - '';
  22. return nm * f;
  23. }
  24. ll note[M], n, k;
  25.  
  26. ll check(ll x)
  27. {
  28. ll sum = , ans = ;
  29. for(int i = ; i <= n; i++)
  30. {
  31. sum += note[i];
  32. if(sum >= x) ans++, sum = ;
  33. if(sum < ) sum = ;
  34. }
  35. return ans;
  36. }
  37.  
  38. int main()
  39. {
  40. n = read(), k = read();
  41. for(int i = ; i <= n; i++) note[i] = read();
  42. ll l = , r = inf, ln, rn;
  43. while(l + < r)
  44. {
  45. ll mid = (l + r) >> ;
  46. if(check(mid) <= k) r = mid;
  47. else l = mid;
  48. }
  49. if(check(l) == k) r = l;
  50. ln = r;
  51. l = , r = inf;
  52. while(l + < r)
  53. {
  54. ll mid = (l + r) >> ;
  55. if(check(mid) >= k) l = mid;
  56. else r = mid;
  57. }
  58. if(check(r) == k) l = r;
  59. rn = l;
  60. if(ln > rn || check(ln) != k) return puts("-1");
  61. cout << ln << " " << rn << "\n";
  62. return ;
  63. }

「SHOI2015」自动刷题机的更多相关文章

  1. LibreOJ #2036. 「SHOI2015」自动刷题机

    #2036. 「SHOI2015」自动刷题机 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 题目描述 曾经发明了信号增幅仪的发明家 SHTSC 又公开 ...

  2. 「BZOJ4590」「SHOI2015」 自动刷题机 解题报告

    自动刷题机 Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动刷题机刷题的方式非常简单:首先会瞬间得出题目的正确做法, ...

  3. Loj #2036. 「SHOI2015」自动刷题机

    link : https://loj.ac/problem/2036 这个显然具有单调性,N小的话更容易A题,不仅因为A一次题减少的代码,并且A题的下限也低. 所以直接上二分就行了,注意上限一定不要设 ...

  4. BZOJ_4590_[Shoi2015]自动刷题机_二分答案

    BZOJ_4590_[Shoi2015]自动刷题机_二分答案 Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动 刷题 ...

  5. BZOJ4590 Shoi2015 自动刷题机 【二分】

    BZOJ4590 Shoi2015 自动刷题机 Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机–一种可以自动AC题目的神秘装置.自动刷题机刷题的方式非常简 ...

  6. 【BZOJ4590】[Shoi2015]自动刷题机 二分

    [BZOJ4590][Shoi2015]自动刷题机 Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动刷题机刷题的方式 ...

  7. bzoj4590: [Shoi2015]自动刷题机(二分答案)

    4590: [Shoi2015]自动刷题机 题目:传送门 题解: 很明显的一道二分题. 对于二分性的判断:如果n越大,那么AC的题就越少,n越小,AC的题就越多,那么最大最小值都满足单调性,直接瞎搞. ...

  8. 洛谷 P4343 [SHOI2015]自动刷题机

    思路 二分答案 显然的二分答案,但是因为二分判定条件 \(\text{wa}\) 了好几遍-- 可以发现,\(n\) 越大,\(k\) 就越小,所以答案是有单调性的,因此可以用两个二分,一次求最大值, ...

  9. COGS2642 / Bzoj4590 [Shoi2015]自动刷题机

    Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 906  Solved: 321 Description 曾经发明了信号增幅仪的发明家SHTSC又公开了 ...

随机推荐

  1. 搭建docker管理工具(DOCKER-UI)

    [root@Docker ~]#docker pull dockerui/dockerui [root@Docker ~]#docker run -d -p 9000:9000 -v /var/run ...

  2. magento如何改变首页的布局

    打开MAGENTO_INSTALLED_DIR/app/design/frontend/default/default/layout/page.xml 找到名字为'root'的block定义 < ...

  3. Mac系统常用快捷键

    Mac系统常用快捷键,摘录自: https://www.cnblogs.com/ios8/p/Mac-OSX-keyword-cmd.html 以下为常用的快捷键 ctrl+shift 快速放大doc ...

  4. 软考------(抽象类、接口) 策略设计模式(strategy) 应用

    某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征.需要模拟的飞机种类及其特征如表5-1所示. #include <iostream> #include ...

  5. 【机器学习算法】Boostrapping算法

    参考 1.AdaBoost从原理到实现: 完

  6. chapter02 PCA主成分分析在手写数字识别分类的应用

    #coding=utf8 # 导入numpy工具包. import numpy as np # 导入pandas用于数据分析. import pandas as pd from sklearn.met ...

  7. Android 第三方分享中遇到的问题以及解决方式

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/liuxian13183/article/details/36189343               ...

  8. 五、概念数据模型(CDM生成LDM,PDM和OOM)

      概念数据模型 概念数据模型(Conceptual Data Model,CDM):表达的是数据整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员,应用程序设计人员,维护人员和用 ...

  9. web.xml中context-param详解

    <context-param> <param-name>contextConfigLocation</param-name> <param-value> ...

  10. 【转】朱兆祺教你如何攻破C语言学习、笔试与机试的难点(连载)

    原文网址:http://bbs.elecfans.com/jishu_354666_1_1.html 再过1个月又是一年应届毕业生应聘的高峰期了,为了方便应届毕业生应聘,笔者将大学四年C语言知识及去年 ...