L. Paid Leave(贪心)[CCPC Finals 2021]
题目如下:
思路 or 题解
我们可以先只考虑第一段(两个休息日之间)
白色为休息日,蓝色为工作日
我们思考,如果在满足题意的条件下,如何安排额外的休息日可以使答案更优:
贪心可得:额外的休息日尽量往后安排一定不会使答案变差
所以我们把额外的工作日都安排到满足题意的最后面
第一段我们如何构造:
x[工作] 1(休息) y-x(工作) 1休息 x[工作] 1(休息) y-x(工作) 1休息 ... ...
我们可以发现循环节
循环节的长度为: x + 1 + y − x + 1 = y + 2 x + 1 + y - x + 1 = y + 2 x+1+y−x+1=y+2
进行推广至任意段我们如何操作才可以使答案最优?
约定:
last 代表上一次休息后连续工作的天数
ans 代表我需要添加的额外休息日的天数
ans += (r - l + 1) / (y + 2) * 2;
注: × 2 \times 2 ×2 是因为一个完整的循环节有两个额外的休息日
剩余的长度:tt = (r - l + 1) % (y + 2);
如果 t t > l a s t tt > last tt>last 我们需要再添加一个额外的休息日
if (tt > last)
{tt -= last;ans++, tt --;
}
更新 l a s t last last
last = min(x, y - tt);
我们将 第 0 0 0 天, 第 n + 1 n+1 n+1 天认为是休息日,这样处理起来更加方便!(:
AC代码如下:
#define int long long
int n, m, x, y;
void solve()
{vector<int> v;cin >> n >> m >> x >> y;v.push_back(0);for (int i = 1; i <= m; i++){int tt; cin >> tt;v.push_back(tt);}v.push_back(n + 1);int ans = 0;int last = x;for (int i = 1; i < v.size(); i++){int l = v[i - 1] + 1, r = v[i] - 1;ans += (r - l + 1) / (y + 2) * 2;int tt = (r - l + 1) % (y + 2);if (tt > last){tt -= last;ans++, tt --;}last = min(x, y - tt);}cout << ans << '\n';
}
signed main()
{buff;solve();
}
L. Paid Leave(贪心)[CCPC Finals 2021]相关推荐
- L. Coordinate Paper(CCPC 长春)构造
L. Coordinate Paper 构造一个长度为nnn的序列aaa,满足ai≥0a_i \geq 0ai≥0,∑i=1nai=s\sum\limits_{i = 1} ^{n} a_i = s ...
- 2021湖南l高考成绩查询入口,湘潭2021高考成绩查询入口
高考已经结束了,考试成绩无疑是大家非常关心的,不要着急.出国留学网小编为您带来了"<湘潭2021高考成绩查询入口>",仅供参考,希望能够帮助到你,祝你高考成绩优秀. 2 ...
- NOI 2021 游记题解总结
文章目录 Travel Notes Day 0 Day 1 Day 3 Day 3.5 Day 10 Solutions D1T1 D1T2 算法一 算法二 Lemma D1T3 算法一 算法二 算法 ...
- 2021.1.25-2021.1.31
by wjl 2021.1.25-2021.1.31 2021.1.25 某大学ACM实验室寒假新生培训Day3:算法基础一(模拟.枚举.递推.递归) 模拟 例题:回文串 例题:旋转吧!雪月花 枚举 ...
- [二分][贪心]JZOJ P3996 Sabotage
Description FJ 的死对头,FP,现在决定了去破坏FJ 的挤奶设备! 这个挤奶设备由一行N(3 <= N<= 100, 000)个挤奶机器,其中第i 个机器生产Mi 单位的牛奶 ...
- 2021年4月7日 关于三层交换机的配置及命令!!!
关于三层交换机的配置及命令!!! 一.三层交换技术 1.使用三层交换技术实现VLAN间的通信 2.三层交换=二层交换+三层转发 三层交换机通过硬件来交换和路由选择数据包.为了在硬件中处理数据包的高层信 ...
- BUAA(2021春)实验:树的构造与遍历——根据提示循序渐进(可惜提示有问题Ծ‸Ծ)
BUAA数据结构第五次编程题 --实验:树的构造与遍历 看前须知 第五次上机题汇总 实验目的与要求 实验内容 Huffman编码文件压缩 问题描述 实验准备 实验步骤 [步骤1] [步骤2] [步骤3 ...
- poj3614Sunscreen 贪心
题目 To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500) cows must cover her hide wit ...
- 炼金术士(2020-2021)(2021-2022)
成员 Name Grade lts 2017 jyf 2018 zf 2019 比赛记录 O 在比赛中通过 ✔ 赛后补题 × 没有该题 2020-2021 Contest Dat ...
最新文章
- [转] HOWTO:使ASP.NET网站Forms验证可以指定多个登录页面
- 关闭运动轨迹_网球初学者如何正确入门网球运动,有哪些学习细节
- txt如何单独单独选择一列_散列| 单独链接以解决冲突
- 【转】VScode tasks.json和launch.json的设置
- 【JVM】javap命令行分析(a++ + ++a)的虚拟机指令
- Visual Studio 起始页中不显示最近使用的项目的解决办法
- QML学习【一】Basic Types
- Github使用技巧
- 成功女性处世十大秘诀
- oa处理会签流程图_OA-审批流程管理模块
- ISO26262 功能安全(1)--概览学习
- java毕业设计线上甜品店售卖系统Mybatis+系统+数据库+调试部署
- matlab中弹性碰撞课程设计,仿真动画软件设计作品--物体完全弹性碰撞*
- DEDE采集规则(很实用)
- web前端渲染和后端渲染(web front-end and back-end rendering)
- kylin系统gcc编译报错fatal error:stadio.h: 没有那个文件或目录解决办法
- 使用OpenXML更新Word文档中的表格
- iOS - 直播总结(理论到实践)
- Godaddy主机修改PHP版本教程,godaddy主机空间用.htaccess升级PHP版本
- 『Reprint』 复杂表单应用解耦,淘宝机票订单实践