codefoces round713 div3

简要题解:

 

A:

题意:给了一堆数(n >= 3),有一个和其他不一样,找出来这个数

排序后,a[1]肯定是相同的数,找到和a[1]不同的数就是答案

 

B:找到两个'.'变为'*',使得四个'*'构成一个矩形

讨论三种情况即可

 

C:把问号变为0或者1,其中0的个数为a,1的个数为b

首先把?能确定的字符确定好,然后每次贪心选择剩余a和b最大的那个用来替换?

 

D:给出从a数组构造b数组的规则,给定b数组,求a数组

枚举哪个数是最后添加到b数组的数即可。注意考虑细节 ,两组数据(1, 1, 1) (1, 2, 3)

 

E: 求一个排列,满足从l到r的下标的值的和为s

问题可以转化为如何求出(r - l + 1)个不相同的数(每个数要<=n)和为s,我的做法是先初始化1,2,3,4... 然后把增量加到每个数,如果不能平均加的话,把多的尽量加到后面的数。

 

F: 有n个位置,每个位置每天可以赚到a[i]的钱,初始时在位置1,也可以花费b[i]到达下一个位置。a数组是递增的

贪心,依次枚举在每个位置赚够钱的天数,取最小值即可

 

G:给定n找到最小的数,满足约数和为n, n <= 1e7

初始化出1e7内所有数的约数和,保存下答案,直接输出即可。复杂度为NlgN

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值