ABC353
A题
题意是找到一个数组中,右侧第一个比大的位置,很简单
B题
给定一个数组和数字,如果把ans看作背包容量,问您几个背包可以把所有的数组放进去?这和背包问题不相同的是,数组里的内容必须挨着放,所以这个题非常简单,贪心就行,能放得下就放,放不下就不放
C题
给定数组,对于下面的式子
这个题求的是模数的和,不是和的模,如果是和的模就比较好做,因为
我们只需要将贡献拆开,用前缀和完成就可以了
但是这个题,我们求的是模数的和,不能用上面的式子,观察到的范围,两个数加起来共有两种可能,一种是不超过1e8,一种是超过1e8,超过1e8的话,模操作我们可以减去1e8,
同时,我们把这个式子拆开看,会发现他的意义就是,任选两个数加起来,所以每个数都被加过n-1次,然后我们再把所有加起来的和超过1e8的减去,所以我们先把答案加进去,然后再减掉1e8的对数就行,怎么寻找1e8的对数呢?
把数组排序,从小到大排序,利用双指针,对于a[1]来说,找到最大的右端点,使其和大于1e8,然后双指针不断移动即可,l左指针不断向右移动,r右指针不断向左移动,当l==r的时候退出,对于l后面的答案,就是大于1e8的,用答案减去即可,感觉这个题还是比较难的
D题
给定数组,对于下面的式子
这个题感觉比第三题简单,对于,我们先计算出他的位数,比如说123是3位,那么对于,这部分可以使用前缀和,同时被算了次,加上即可,这就完了
ps:这个题一直错,因为我一直爆掉long long了,long long 最大的范围是,切记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话