模运算,观察(Python)

剩下的数

https://www.nowcoder.com/practice/f80366f2611640c1abc6e5655c51ea2c

思路:诈骗题,主要是要引入模进行观察,从而发现此题的性质。令l到r的和为s,并且s % x = a,那么就有两种情况分出来了:1. a为0,那么整个数组就可以直接删除,结果就是0;2. a不为0,由于0 < x <= r - l + 1,因此取模之后,必然有1到x - 1存在,并且它恰好等于a,所以说我们就把这个多余的数以外的其他数都给删除,多余数的位置不重要,因为题目说了是环形数组,那么最终就只会剩下这1个多余的数

代码:

import sys
input = lambda: sys.stdin.readline().strip()

import math
inf = 10 ** 18

def I():
    return input()

def II():
    return int(input())

def MII():
    return map(int, input().split())

def GMI():
    return map(lambda x: int(x) - 1, input().split())

def LI():
    return input().split()

def LII():
    return list(map(int, input().split()))

def LFI():
    return list(map(float, input().split()))

fmax = lambda x, y: x if x > y else y
fmin = lambda x, y: x if x < y else y
isqrt = lambda x: int(math.sqrt(x))

'''
模运算,观察
'''

def solve():
    l, r = MII()
    s = (l + r) * (r - l + 1) // 2
    q = II()
    for _ in range(q):
        x = II()
        print(1 if s % x else 0)

# t = 1
t = II()
for _ in range(t):
    solve()
#每日一题挑战#
全部评论

相关推荐

2025-12-13 14:51
已编辑
井冈山大学 算法工程师
龙虾x:算法比你强的没有你美,比你美的…..算了已经没有比你美的了
工作两年想退休了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务