当前位置: 首页 > 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?
  • 尹锡悦涉嫌发动内乱案第二次庭审举行
  • 2025年度“沪惠保”将于4月22日开售,保费不变
  • 世界读书日|全城书香,上海“全民阅读”正在进行时
  • 南方将迎三轮降雨,两广旱区的“解渴雨”也要来了
  • 海拔四百公里的救赎
  • 数智时代出版专业技能人才培养研讨会在沪举行