当前位置: 首页 > news >正文

牛客月赛114

D. 神孙权

        td 数组存的是前 i 轮一共弃置掉的手牌数,dc 数组是前 i 轮结束后还剩多少手牌。

        先二分出最多进行局数,也就是最多摸几张牌。对于枚举的摸牌次数,头和尾各摸几张不确定,对于这种有两个变量要枚举的情况,方法是只去枚举一个,另一个用枚举的变量表示出来。

        假设现在要摸 k 张牌,枚举从头摸 i 张,那从尾就是摸 k - i 张,当然也可以小于 k - i 张,并不是一定要摸满 k 张。此时只需要维护一个后缀最大值就能快速查询。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5 + 5, INF = 1e18;int T, n, k, ans, td[N], dc[N], a[2], b[N], dl[N], dr[N], mxr[N];
string s;signed main()
{cin >> n >> k;for (int i = 1; i <= n; i ++){cin >> a[i];b[i] = i - 1;td[i] = td[i - 1] + b[i];dc[i] = td[i] - i;}int num = lower_bound(dc + 1, dc + n + 1, k) - dc;num --;int cnt = min(num, n);for (int i = 1; i <= n; i ++)dl[i] = dl[i - 1] + a[i];for (int i = 1; i <= n; i ++){dr[i] = dr[i - 1] + a[n - i + 1];mxr[i] = max(dr[i], mxr[i - 1]);}for (int i = 0; i <= cnt; i ++)ans = max(ans, dl[i] + mxr[cnt - i]);cout << ans;return 0;
}

相关文章:

  • DDS函数信号发生器设计
  • Redis之RedLock算法以及底层原理
  • YOLOv2学习笔记
  • 实战指南:封装Whisper为FastAPI接口并实现高并发处理-附整合包
  • 案例驱动的 IT 团队管理:创新与突破之路:第四章 危机应对:从风险预见到创新破局-4.2 人才流失危机-4.2.3梯队建设的“洋葱模型“
  • 【MySQL】
  • 阿里FPGA XCKU3P开箱- 25G 光纤
  • 鸿蒙NEXT开发全局上下文管理类(ArkTs)
  • 进程的查看与属性
  • java分页实例
  • Python + Playwright:编写自动化测试的避坑策略
  • Typora更改快捷键 markdown语法大全
  • 关闭谷歌浏览器(Google Chrome)的自动更新可以通过以下方法实现。具体操作步骤取决于你的操作系统。
  • C#VIN 码识别接口:汽车后市场的智能数据管理利器
  • 微服务即时通信系统---(四)框架学习
  • 体系结构论文(七十一):Quantifying the Impact of Data Encoding on DNN Fault Tolerance
  • 从JSON到SQL:基于业务场景的SQL生成器实战
  • Kubernetes(K8S)内部功能总结
  • 迁移python环境
  • 在 Redis 中存储对象类型的数据时,选择hash还是string?
  • 五一期间全国高速日均流量6200万辆,同比增长8.1%
  • 徐徕任上海浦东新区副区长
  • 人民日报:在大有可为的时代大有作为
  • 深入贯彻中央八项规定精神学习教育中央指导组派驻地方和单位名单公布
  • 总书记考察的上海“模速空间”,是一个怎样的空间?
  • 被算法重塑的世界,人与技术如何和谐共处