3.17阿里云笔试个人题解
第一题:
不太懂,猜了个结论,当所有数和k的gcd不为1的时候输出No,不然就输出Yes,ac了,不知道是不是运气,希望有大佬指点一下。
第二题:
分奇偶01讨论,举个例子,有一个奇数为是0,该位对奇数答案的贡献是该位后面所有奇数位且为0的数,这里有个小细节,要包括该位置,也就是说奇数答案是lowerbound,偶数答案是upperbound,维护4个vector后upperbound和lowerbound即可ac。
第三题:
由于题目说了只影响子树,那么很自然的想到从根节点朝下dfs,dfs传参只需要额外传入两个参数代表奇数距离有无改变和偶数距离有无改变即可,如果在某一节点改变,需要把偶数改变位异或1,朝下传入把奇数改变和偶数改变换位即可(很好理解,因为子结点相对父节点的奇偶颠倒),统计答案完排序即可ac。
祝大家暑期顺利😂
不太懂,猜了个结论,当所有数和k的gcd不为1的时候输出No,不然就输出Yes,ac了,不知道是不是运气,希望有大佬指点一下。
第二题:
分奇偶01讨论,举个例子,有一个奇数为是0,该位对奇数答案的贡献是该位后面所有奇数位且为0的数,这里有个小细节,要包括该位置,也就是说奇数答案是lowerbound,偶数答案是upperbound,维护4个vector后upperbound和lowerbound即可ac。
第三题:
由于题目说了只影响子树,那么很自然的想到从根节点朝下dfs,dfs传参只需要额外传入两个参数代表奇数距离有无改变和偶数距离有无改变即可,如果在某一节点改变,需要把偶数改变位异或1,朝下传入把奇数改变和偶数改变换位即可(很好理解,因为子结点相对父节点的奇偶颠倒),统计答案完排序即可ac。
祝大家暑期顺利😂
全部评论
大佬太强了。第一题我这么考虑的,假如所有数的gcd为g, 假设某个数修改x次,如果gcd(g,k) = g1,最后表示就是g * ( ) +/- k * x,提出g1就是 g1 * ( )。所以和修改次数无关,gcd也和符号无关,所以gcd(g,k) 是最后所有数的gcd。
这是a了三题,真强啊
太牛了佬
第三题dfs超时了 只有百分之20 谁知道是什么原因呢
太强了
牛逼
大佬太强啦
神
楼主你是面的暑期吗?
阿里云
相关推荐
09-05 18:59
重庆邮电大学 C++ 点赞 评论 收藏
分享
点赞 评论 收藏
分享