A. Restoring Three Numbers
给出a+b,a+c,b+c a+b+c 顺序不固定,求a,b,c的值
没什么好说的,找到最大的数就是a+b+c,再减去其他三个数
B. Make Them Equal
给出一个序列,问是否存在d,对于序列每个数ai,进行+d,-d,或不变,使得序列所有数相等
由于ai<=100,直接暴力枚举
C. Gourmet Cat
a,c三种食物,星期一,四,七吃a,星期二,六吃b,星期三,五吃c,每天吃一份食物,出发时间可以是任意天,求最大出行天数
一个星期a-=3,b-=2,c-=2;先算出能撑多少个星期,再枚举出发是星期几,求最大出行天数
D. Walking Robot
一个机器人,有一块主能源和备用能源,每次前进一个单位消耗一个单位能源,当在太阳下使用主能源(主能源不为0)时,备用能源增加一个单位(备用能源不能超过初始值,主能源不能充电),求最大行进距离(0代表阴影区,1代表太阳下)
备用能源满时则用备用能源
备用能源不满时,在太阳下优先用主能源,在阴影下优先用主能源
E. Two Teams
两个球队教练轮流选队员,1号教练在球员中选出最优秀的球员,并且把该球员左边k个球员(不足k个则取完)和右边k个球员选入1队,接着2号教练在剩下的的球员中采用同样的操作,然后又是1号教练......问最后每个球员属于哪个队。
解法很多,有用并查集的,有用链表的,还有用线段树写的(比如说我队友,有点头铁),我是通过记录下一条的方法写的;
建立一个rk数组,记录能力值排名i的球员的下标位置,并且维护next数组,保存当该名球员已经被选中,应该跳向哪个位置数组的哪个位置
F. Shovels Shop
给出n个物品,从中购买k个物品,有m种优惠方案:(x1,y1),(x2,y2)......(xm,ym)代表当购买xi个物品时间,最便宜的yi个免费,求支付的最小价格。
被队友误导了,口胡成完全背包(没错,就是那个用线段树写E题的那个人),虽然的确是一道dp题
因为我们是取买k个最小的代价,那么我们只要用到最小的k个物品;进行dp之前有两个结论要证明
(1)对于优惠值为yi,若存在yi==yj && xi>xj,如果我们对p个数用过(xi,yi)方案,那么我们把相同y值的而x更小的方案(xi,yi)替换(xj,yj),剩下的xi-xj个数可以尝试选择优惠方案来减小代价,所以相同y值(xj,yj)比(xi,yi)更优
(2)对于排序好的p个数,使用两种方案(xi,yi),(xj,yj),xi+xj==p,取出p个数前面xi个使用优惠(xi,再对剩下xj个数使用优惠(xj,yj)的代价( 设这里先用(xi,yi)再用(xj,yj)代价小于先用(xj,yj)再用(xi,yi) )小于取出中间xi个使用(xi,yi)优惠,再对剩下xj个使用(xj,yj)优惠的代价要低(大家可以自己推一下),由此递推出使用q种优惠也是每次取出最大的几个
接着我们预处理一下,求出对于每个y值,最小的x是什么,然后dp
G. Minimum Possible LCM
求n个数中哪两个数的最小公倍数最小,先上图。。。
按照cls的说法枚举gcd,时间复杂度为n+n/2+n/3+.....n/n-1+n/n ≈ n*logn,高数学的差,调和级数都不会算,还以为是O(n^2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。