题目如下:


思路 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]相关推荐

  1. 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 ...

  2. 2021湖南l高考成绩查询入口,湘潭2021高考成绩查询入口

    高考已经结束了,考试成绩无疑是大家非常关心的,不要着急.出国留学网小编为您带来了"<湘潭2021高考成绩查询入口>",仅供参考,希望能够帮助到你,祝你高考成绩优秀. 2 ...

  3. NOI 2021 游记题解总结

    文章目录 Travel Notes Day 0 Day 1 Day 3 Day 3.5 Day 10 Solutions D1T1 D1T2 算法一 算法二 Lemma D1T3 算法一 算法二 算法 ...

  4. 2021.1.25-2021.1.31

    by wjl 2021.1.25-2021.1.31 2021.1.25 某大学ACM实验室寒假新生培训Day3:算法基础一(模拟.枚举.递推.递归) 模拟 例题:回文串 例题:旋转吧!雪月花 枚举 ...

  5. [二分][贪心]JZOJ P3996 Sabotage

    Description FJ 的死对头,FP,现在决定了去破坏FJ 的挤奶设备! 这个挤奶设备由一行N(3 <= N<= 100, 000)个挤奶机器,其中第i 个机器生产Mi 单位的牛奶 ...

  6. 2021年4月7日 关于三层交换机的配置及命令!!!

    关于三层交换机的配置及命令!!! 一.三层交换技术 1.使用三层交换技术实现VLAN间的通信 2.三层交换=二层交换+三层转发 三层交换机通过硬件来交换和路由选择数据包.为了在硬件中处理数据包的高层信 ...

  7. BUAA(2021春)实验:树的构造与遍历——根据提示循序渐进(可惜提示有问题Ծ‸Ծ)

    BUAA数据结构第五次编程题 --实验:树的构造与遍历 看前须知 第五次上机题汇总 实验目的与要求 实验内容 Huffman编码文件压缩 问题描述 实验准备 实验步骤 [步骤1] [步骤2] [步骤3 ...

  8. poj3614Sunscreen 贪心

    题目 To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500) cows must cover her hide wit ...

  9. 炼金术士(2020-2021)(2021-2022)

    成员 Name Grade lts 2017 jyf 2018 zf 2019 比赛记录 O    在比赛中通过 ✔     赛后补题 ×     没有该题 2020-2021 Contest Dat ...

最新文章

  1. [转] HOWTO:使ASP.NET网站Forms验证可以指定多个登录页面
  2. 关闭运动轨迹_网球初学者如何正确入门网球运动,有哪些学习细节
  3. txt如何单独单独选择一列_散列| 单独链接以解决冲突
  4. 【转】VScode tasks.json和launch.json的设置
  5. 【JVM】javap命令行分析(a++ + ++a)的虚拟机指令
  6. Visual Studio 起始页中不显示最近使用的项目的解决办法
  7. QML学习【一】Basic Types
  8. Github使用技巧
  9. 成功女性处世十大秘诀
  10. oa处理会签流程图_OA-审批流程管理模块
  11. ISO26262 功能安全(1)--概览学习
  12. java毕业设计线上甜品店售卖系统Mybatis+系统+数据库+调试部署
  13. matlab中弹性碰撞课程设计,仿真动画软件设计作品--物体完全弹性碰撞*
  14. DEDE采集规则(很实用)
  15. web前端渲染和后端渲染(web front-end and back-end rendering)
  16. kylin系统gcc编译报错fatal error:stadio.h: 没有那个文件或目录解决办法
  17. 使用OpenXML更新Word文档中的表格
  18. iOS - 直播总结(理论到实践)
  19. Godaddy主机修改PHP版本教程,godaddy主机空间用.htaccess升级PHP版本
  20. 『Reprint』 复杂表单应用解耦,淘宝机票订单实践

热门文章

  1. tomcat启动失败有效解决方案
  2. 电脑如何处理手机上的文件
  3. QT QImage
  4. python 大小端转换_Python 字节串转换以及大小端相关的几个方法
  5. 正则表达式判断三大运营商手机号码、微信号、邮箱
  6. React Native for Android 实践 — 实现知乎日报客户端
  7. 安全(六种核心安全机制-加密、密钥、签名与证书)
  8. 死锁产生的4个必要条件?
  9. NNI中实现的Tuner分析
  10. APP兼容性测试的目的和要求是什么?