临比赛前最后一次模拟给打吐了…
这道二分的细节是真的多。
题解:
首先肯定想到的是我们二分答案,然后我们自然就得到了每一个花最小浇水的次数d[i]d[i]d[i],然后我们贪心一下,当我们给d[i]d[i]d[i]浇水的时候,顺便去把d[i+1]d[i + 1]d[i+1]也浇了,这样我们就可以得到对于每一个d[i]d[i]d[i],使他满足最小浇水次数的最少移动次数ste[i]ste[i]ste[i],最后我们只需要累计一下ste[i]ste[i]ste[i],然后和mmm比较即可。
但是有坑!

  • 首先ste[i]ste[i]ste[i]在累加的过程中会爆掉LLLLLL,必须提前终止。
  • 可能出现一种情况是:浇完第n−1n - 1n−1个花之后,最后一个花也浇好了,这个时候需要令ste[n]=0ste[n] = 0ste[n]=0。

训练的时候卡在LLLLLL上了…愣是没看出来…

//This code is written by Kyrie Qi
//QQ : 601383880
//Email : cuc_qzl@cuc.edu.cn#include <bits/stdc++.h>#define fi first
#define se second
#define ill __int128
#define ll long long
#define pb push_back
#define mkp make_pair
#define lson(x) x << 1
#define lowbit(x) (x & -x)
#define PII pair <int, int>
#define rson(x) (x << 1 | 1)
#define ull unsigned long long
#define me(a,b) memset (a, b, sizeof(a))
#define ios std :: ios :: sync_with_stdio(false)
#define debug(x) cout << #x << " = " << x <<endl;const double Exp = 1e-9;
const int INF = 0x3f3f3f3f;
const int inf = -0x3f3f3f3f;
const int mode = 1000000007;
const double pi = acos(-1.0);using namespace std;const int maxn = 1e5 + 10;
int t, n, a[maxn];
ll m, d[maxn], ste[maxn];inline int judge(ll mid, ll tmp)
{ll cnt = 0ll;for (int i = 1;i <= n;i ++) {d[i] = mid / a[i];if (mid % a[i]) d[i] ++;}d[0] = 0;for (int i = 1;i <= n;i ++) {if (d[i] > 0) {ste[i] = 2 * d[i] - 1;d[i + 1] -= (d[i] - 1);}else if (d[i] <= 0 && i != n) {ste[i] = 1;continue;}else if (d[i] <= 0 && i == n) ste[i] = 0;}for (int i = 1;i <= n;i ++) {cnt += ste[i];if (cnt > tmp) return 0;}return 1;
}int main()
{scanf ("%d", &t);while (t -- ) {scanf ("%d%lld", &n, &m);for (int i = 1;i <= n;i ++) scanf ("%d", &a[i]);memset (d, 0ll, sizeof(ll) * n);memset (ste, 0ll, sizeof(ll) * n);if (m == 0) {printf ("0\n");continue;}ll l = 0ll, r = 2e18, ans = 0;while (l <= r) {ll mid = (l + r) >> 1;int k = judge(mid, m);if (k) {ans = max (ans, mid);l = mid + 1;}else r = mid - 1;}printf ("%lld\n", ans);}return 0;
}

Plants vs. Zombies 解题报告相关推荐

  1. Plants vs. Zombies(二分)

    文章目录 [Plants vs. Zombies](https://zoj.pintia.cn/problem-sets/91827364500/problems/91827370312) 题意 解题 ...

  2. timus 1513. Lemon Tale URAL 解题报告

    timus   1513. Lemon Tale    URAL 解题报告 题目大意:就是一行字符,LB组成,一个检测员呢和L有仇啊,只要是多余K个连续的L出现,那么这条语句就不合法,为此,三名程序猿 ...

  3. uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)

    线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报  分类: ...

  4. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  5. 【解题报告系列】超高质量题单 + 题解(ACM / OI)超高质量题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我新写的超高质量的题解和代码,题目难度不 ...

  6. 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  7. 解题报告(十三)中国剩余定理(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  8. 解题报告(四)生成函数(ACM/ OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  9. 解题报告(八) prufer 序列与 Cayley 公式(ACM / OI)超高质量题解

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

最新文章

  1. HLG1159 MAGI System【大整数乘法】
  2. 一步一步图文介绍SpriteKit使用TexturePacker导出的纹理集Altas
  3. 泛型通用函数的一些特殊问题的解决方法
  4. Query Generation Module-NTU用多样性的query生成,涨点基于文本的实例分割(已开源)...
  5. Spring Boot基础学习笔记07:Spring Boot整合JPA
  6. mycat实例(1)
  7. mysql 监听 udp_通用TCP、UDP服务监控脚本
  8. arping的使用和原理简介
  9. 计算机硬件码修改软件,电脑机器码,教您电脑机器码修改软件
  10. mysql bin_mysql-bin是什么文件?
  11. 分布式架构 网络传输优化
  12. linux命令如何查看dns,linux查看dns命令
  13. 修改 Windows 7 / XP 双系统启动菜单名称
  14. windows 平台使用dul 抽取Linux oracle ASM 磁盘数据文件
  15. Graylog日志简介
  16. 互联网经典SQL面试题及答案解析
  17. 迷你计算机可玩游戏,迷你电脑小主机打游戏可还行?
  18. DeepbrainChain2021年末週报
  19. 视频文本检索之CLIP4Clip
  20. java按照字节截取字符串

热门文章

  1. 人民海洋里的“华为博弈”
  2. SQLZOO练习答案(一):SELECT names/zh
  3. Android基础--首选项(SharedPreferences)
  4. 华清远见上海中心培训感言
  5. 罗振宇向左,吴晓波向右
  6. 清华大学数据挖掘课程幕课习题(第二章)
  7. mitmproxy环境搭建与证书安装
  8. Dagger2实战(详细)
  9. 黑马程序员.bobo.DAY.6
  10. PTA 古风排版 (20 分)队列方法