Codeforces Round #657 (Div. 2)

Codeforces Round #657 (Div. 2)

A. Acacius and String

题意: 给定一个字符串,字符串是由小写字符和?构成,长度为n,n<=50。问往字符串里面填字符后,新的字符串包含“abacaba”作为子串,且该子串的出现次数唯一。

题解: 因为n的长度非常小,那么我直接去枚举位置i作为字符串的起点,然后开始填字符,尽可能填成“abacaba”,如果能够填为“abacaba”,那么枚举后面的位置是否还会出现“abacaba”,如果会的,那么该位置不合法,如何合法直接打印。

代码:

B. Dubious Cyrpto

题意: 给出三个正整数 l,r,m,判断在区间 [l,r]内是否有 a,b,c满足存在正整数 n,使得n⋅a+b−c=m 。

题解: 暴力。枚举a,然后就能够确定n的范围为m/a - 1 ~ m/a + 1,然后判断b和c是否存在,如果存在那么直接打印。

代码:

C. Choosing flowers

题意: 现在要买n多花,每朵花如果第一次买,得到的快乐值为ai,如果从第二次买,每买一次,得到的快乐值就为bi。现在问如何购买这n朵花能够使得快乐值最大。

题解: 二分+枚举。首先,我们知道如果我们选择一个比较小的b,那么不如选择一个比较大的a。因此我们可以按照a排序,然后枚举选择哪个b,然后二分找到大于等于它的a,从这个a开始更大的a都需要选择,这个维护一个后缀和即可。其他的我们就都选择b,因为如果选择更小的不如选择当前的b更优。

代码:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值