2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)E-缺席的神官

一道关于圣杯战争背景下的数学问题被提出,祭司需要在连续的工作日内选择部分时间工作以避开点名,同时确保工作日数量最少。题目描述了一个懒惰祭司如何在高级祭司点名的日期中安排工作,以求最小工作天数。解决此问题需要巧妙的逻辑推理和优化策略。
摘要由CSDN通过智能技术生成

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld

题目描述

面前的巨汉,让我想起了多年前的那次,但这个巨汉身上散布着让人畏惧害怕的黑雾。即使看不到脸,但是威严却在这个从者身边不断围绕。
「吾乃七骑之中的骑士(rider),你们就是御主所说的阻扰者吧」
「是」我从雪茄盒里面掏出一根雪茄,想稍微冷静一下。
「那便无需多言了」和我签订了暂时契约的理查一世倒是直接拔剑了,如此看来查理一世的职介就是剑士(saber)。
「我看你的御主倒是没有这个想法吧」
他似乎看出了我的想法,虽然只是亡魂的影子,但也曾是人,能洞察人心。
「您是这样的想法吗」理查一世把剑收了起来。
「是啊,虽然参与圣杯战争的御主和从者目的是实现愿望,但既然是残缺的圣杯,我也会猜想是否从者对圣杯的渴望并没有那么高,是否有值得交涉的余地」
「哈」巨汉笑了,「真是大胆的妄想啊,但你应该明白圣杯显现的方法吧,所以这一切都是不可避免的。但我也不想使用武力,解答我的困惑吧,魔术师,如果你们能回答出来,我就会放弃」
「我明白了,洗耳恭听」
「古时有一个懒惰的祭司,而祭司在连续m天内必须一直去神庙内工作,但祭司的怠惰在诱惑着祭司,于是祭司决定这段时间内只选出k个连续的时间段去神庙工作,但是高级祭司(祭司的上级)又会定期对神庙内的工作人员进行点名。祭司不想因此失去这份工作,所以提前知道了高级祭司会点名n次以及每次点名的日子。所以祭司把点名的日子纳入工作的日子当中的同时又尽可能的偷懒。那么,这个祭司到底工作了多少天呢」
「这个答案很简单,荷鲁斯」

输入描述:

 
 

第一行输入三个整数n,m,k (1 <= n <= 2000) (n <= m <= 109) (1<= k <= n),分别为高级祭司的点名次数,原本需要工作的天数和懒惰的祭司的工作次数。

第二行输入n个数字ai (1 <= ai <= m),为高级祭司检查的日期。
输入保证对于任意的i,j (1<= i<j <= n),都有ai < aj。

输出描述:

输出懒惰的祭司进行工作的最少天数

示例1

输入

4 100 2
20 30 75 80

输出

17

说明

样例的2段为[20,30],[75,80],进行工作的最少天数为:11+6=17

 关于这题,若是直接一个个排除肯定是不现实的,那就要想到事件的对立面,即若想使工作的天数越少,则偷懒的天数应该越多。

大概思路如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值