北京信息科技大学第十五届程序设计竞赛(同步赛)解题报告(流水账版) | 珂学家

前言

划水打了这场比赛,感觉签到题稍有点多,^_^,整体做起来挺舒服的。

北京信息科技大学第十五届程序设计竞赛(同步赛)


欢迎关注

珂朵莉 牛客周赛专栏

珂朵莉 牛客小白月赛专栏


A. 宇宙万法的那个源头

式子可以拆为 11145 * (10^5x + 10^(5x - 5) + ... + 10^5 + 1)

所以质数一定小于11145,然后巴拉巴拉一顿分析....

回到正题,因为3是11145的因子,且这个数是奇数

所以3就是天选之子。


B. 小苯的台灯

如果模数较小,那么一定存在循环节(I题 带猫猫任务也涉及这块)。

所以模拟就行了,因为存在较小的循环节。


C. 小苯的排列构造

可以把 2 4 1 3 作为内核

然后n > 4按奇偶在两边拓展

大概是这样子 2n - 1, 2n - 3, ..., 9, 7, 5, || 2, 4, 1, 3, || 6, 8, 10, ..., 2n - 2, 2n

当n<4时,不存在这样的序列。


D. 408之计算机网络

模拟题, 可以把ip地址转换为一个32位整数,C语言中有个类型,叫做union,感觉可以简化不少。

这边的思路,是拆位统计,如果所有的ip在i位都相等,则属于CIDR前缀。

属于简单,但是写起来稍头痛。


E. 小苯的连续因子

本质是区间LCM(最小公倍数)最小。

要区间lcm最小,那[l, r]一定是[1, k],这样时间复杂度为O(n log n)

如果小于O(n log n),求得这个值,那该如何切入呢?

其实是小于等于k的所有质数(带次数)的乘积,这样就能减少时间复杂度。

欧拉筛O(n), 枚举质数及其指数(质数总个数为n/logn), 因此感觉整体接近O(n)


F. 小苯选择队友

分组 + 前缀和预处理 + 滑窗

分组是为了枚举战队,然后模型就转变为

寻求数组中最大的子数组和

这就是经典问题了,DP/双指针都可以。


G. 轻舟已过万重山

防AK题,忽视


H. 小红的字符串构造

防AK题,忽视


I. 小苯的带猫猫任务

0-1背包的裸题

每个猫都是独立的,难点在于如何确定猫的最小代价

pos - left * x + right * y = 0 % like

这边有两种方式,至少我这边想到的。

  • exgcd,求得xy的组合, 保留最小的px+qy
  • 预处理right的循环节(like<=3000), 然后枚举left的x值, O(n)代价求得最小的px+qy

所以整体上,O(n * k) =O (9 * 10^6)


J. 408之数据结构

使用了“珂朵莉树”

我对这个数据结构定义有点模糊

大概的意思,

  • 使用set
  • key为区间
  • set内区间不存在重叠

因为set(java的treeset)支持lower_bound/upper_bound,所以添加和查询相对容易,满足mex操作即可。

当然这题也可以借助

  • 链式并查集

瞄了下官解,好像解法更优,用set存 不存在的数,如果添加就remove,查询就是find first.


K. 小苯的矩阵

LIS的变体

同列的值只能取一个,所以难点其实在这里

如何规避这个问题,可以对同列从大到小进行遍历,然后进行常规的LIS操作

这样就可以得到解了。

从大到小,这个trick技巧,完美避免干扰。

官解说,灵感来自某一场力扣周赛,其实那题我印象很深,为啥呢?因为那题我看错题了,看错的题意就是这个题的弱化版,T_T.


L. 小苯的异或疑惑(easy)

和M一起讲


M. 小苯的异或疑惑(hard)

异或的技巧,因为每个值,参与次数 n - 1次

如果n-1为偶数,那结果一定为0

如果n-1位奇数,那每个值参与异或一次

所以最终结果为 数组整体的异或和。


N. 中华文化,博大精深!

原神,启动!


写在最后

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值