首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
ARC148游记
返回列表
发新帖
ARC148游记
[复制链接]
发表于 2022-10-7 22:48:11
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
A - mod M
题目链接
这道题我们可以首先对于所有的数 $%2$ ,可以证明出答案最多不超过 $2$ ,此时我们就可以把问题转化为:是否存在一个数使得序列 $a$ 中所有元素减去这个数之后的最大公因数大于$1$,就是一道妥妥的同余了。
A题代码
B - dp
题目链接
这道题我们可不难想出$O(n^3)$的做法,即枚举左端点和右端点,检查这段区间的答案变换过后是否比当前答案更小,如果是,则更新当前答案。
然后就是优化了,我们可以发现,从开头开始,我们遇到的第一个 $p$,是一定得被修改成 $d$ ,这样肯定是最优选择,那么我们就可以省略了枚举左端点的步骤,此时时间复杂度为$O(n^2)$,足以通过此题。
B题代码
C - Lights Out on Tree
题目链接
这道题我们首先有一些性质:
1.每个节点最多按一次
2.节点按下的先后顺序没有影响
依据这个性质,我们可以得到:当一个硬币头朝上时,要按下这个节点按钮的最佳选择是:
1.这个节点的父亲是尾朝上
2.这个节点的子树全是头朝上
对于第一点,我们可以由性质1证明出来,如果这个节点的父亲是头朝上,那我们就再等到他父亲再继续。
然后对于第二点,依据性质2,我们可以假设如果一个节点在一开始表明头朝上了,我们遍历到他的父亲时,这个节点里的所有子树都已经头朝上了(有点类似于 动态dp 的思路?),反之,这个节点里所有子树都已经尾朝上,我们就需要按下这个节点的按钮。
C题代码
回复
使用道具
举报
返回列表
浏览过的版块
.Net
DevOps与敏捷开发
Oracle
物联网
人工智能
Mysql
分布式数据库
前端开发
移动端开发
tsx81429
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表