ZJU 09 复试上机 第三题

第三题:继续xxx定律,当n3时,我们在验证xxx定律的过程中会得到一个序列,358421,将3称为关键数,5842称为覆盖数。现在输入n个数字,根据关键数与覆盖数的理论,我们只需要验证其中部分数就可以确定所有数满足xxx定律,输入输入的n个数中的关键数。

 

Input:第一行,n,第二行n个数,n0时结束

3

3 8 4

0

这道题目表述有点不太清楚,我的理解是关键数是相对的,关键在有没有其他的数字变化序列包含它(即覆盖),由于被覆盖并没有数值上的大小关系可以参考,但可以基于这样一种考虑,统计处每个数字变化的 xxx序列长度,记录的话开销太大,没有必要,然后按此数值排序(计算可以直接copy第一题的函数),选出最大变化步数的数值作为第一个关键数,然后再次XXX对其变化中的每一个数字 检查在剩余元素中存在与否,存在的话就可以删除(可以考虑dfs的框架,但这里数字的范围未知,直接按值来开数组开销太大,还是要个探查过程),标记比较麻烦,可以考虑 使用set,这样免除了重复值,主要要熟悉 查找函数 和删除函数 一般这些 算法都是基于迭代器的 忘记了还是有一定的规律可循

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值