笔记
Maly_gos
这个作者很懒,什么都没留下…
展开
-
Codeforces Global Round 13 D. Zookeeper and The Infinite Zoo
题目传送门 题目大意 存在无穷多个点,他们为1,2,3。。。假设一个点为a,另一个点为a+b,只有当a&b=b(二进制与运算)时,才存在一条路从a走到a+b,现在给任意两个数,判断是否可以从第一个数走到第二个数。 输入格式 第一行输入t(1<=t<=1e5),表示测试的个数,后面t行中,每一行输入两个数字u,v(1<=u,v<=2e30),表示起点和终点。 输出格式 如果可以达到则输出不区分大小写的"YES",如果不可以则输出"NO"。 样例 输入: 5 1 4 3 6 1原创 2021-03-02 22:27:09 · 108 阅读 · 0 评论 -
Codeforces Global Round 13 C
题目链接 题目大意 对于数组S,每次出发开始可以选择任意元素作为起始点,然后在数组上移动,落点为i + S[i],直至超出数组范围,每次经过的点的值减一(先移动再减/直至减到1为止),求使数组元素全为1所用最少的出发次数 数据范围 数组大小n:1<=n<=5000 元素大小:1<=a[i]<=1e9 思路 首先考虑到数组从前向后的第一个非1元素,这类元素如果不是从他开始那么他将永远不会减一,因此每一次弹跳的起始点选择都应该是第一个非1元素,然后只需要模拟弹跳过程,同时记录数组中1原创 2021-03-02 00:26:05 · 146 阅读 · 0 评论