首页 > 试题广场 >

游戏任务标记

[编程题]游戏任务标记
  • 热度指数:23495 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
游戏里面有很多各式各样的任务,其中有一种任务玩家只能做一次,这类任务一共有1024个,任务ID范围[1,1024]。请用32个unsigned int类型来记录着1024个任务是否已经完成。初始状态都是未完成。 输入两个参数,都是任务ID,需要设置第一个ID的任务为已经完成;并检查第二个ID的任务是否已经完成。 输出一个参数,如果第二个ID的任务已经完成输出1,如果未完成输出0。如果第一或第二个ID不在[1,1024]范围,则输出-1。

输入描述:
输入包括一行,两个整数表示任务ID.


输出描述:
输出是否完成
示例1

输入

1024 1024

输出

1
这题什么意思?

为什么这样也能过?

x = [int(x) for x in input().split()]
if x[0]>1024 or x[0]<1 or x[1]>1024 or x[1]<1:
    print(-1)
elif x[0] == x[1]:
    print(1)
else:
    print(0)



编辑于 2021-03-20 10:58:40 回复(0)
a,b = map(int, input().split())
if a in range(1,1025) and b in range(1,1025):
    if a==b: print(1)
    else: print(0)
else: print(-1)

发表于 2019-12-28 02:47:28 回复(0)
while True:
    try:
         x,y=input().split(' ')
         x=int(x)
         y=int(y)
         if x not in range(1,1025) or y not in range(1,1025):
             print(-1)
         elif x==y:
             print(1)
         else:
             print(0)
  except:
        break
感觉有点怪怪的,我是不是理解错了
编辑于 2019-04-15 13:24:58 回复(0)
id_1, id_2 = [int(i) for i in input().split()] if id_1 in range(1, 1025) and id_2 in range(1, 1024): if id_1==id_2: print(1) else: print(0) else: print(-1)
发表于 2018-11-07 15:58:33 回复(0)
list1=input().strip().split()
list1=list(map(int,list1))
if list1[0]<1 or list1[0]>1024:
    print("-1")
elif list1[1]<1 or list1[1]>1024:
    print("-1")
else:
    if list1[0]==list1[1]:
        print("1")
    else:
        print("0")

过了????喵喵喵????
发表于 2018-09-12 15:28:37 回复(0)
# python3 解法
# 运行时间:20ms
# 占用内存:3556k
import sys
t1, t2 = list(map(int, input().split()))
task = [0] * 32
if t1 in range(1, 1025) and t2 in range(1, 1025):
    index1 = int((t1-1)/32)
    index2 = (t1-1)%32
    if not task[index1] & (1<<index2): 
        task[index1] = task[index1] + 1<<index2
    index1 = int((t2-1)/32)
    index2 = (t2-1)%32
    if task[index1]&(1<<index2):
        print(1)
    else:
        print(0)
else:
    print(-1)

发表于 2018-09-03 15:31:47 回复(0)
# 还是不明白为什么好多直接判断两个ID相等的。。。。
note = [0]*32
while True:
    try:
        m, n = list(map(int,input().split()))
        if (1<=m<=1024) and (1<=n<=1024):
            m_no = int((m-1)/32)
            m_mod = (m-1)%32
            if note[m_no]&(1<<m_mod) == 0:
                note[m_no] = note[m_no] + (1<<m_mod)
            n_no = int((n-1)/32)
            n_mod = (n-1)%32
            if note[n_no]&(1<<n_mod) == (1<<n_mod):
                print('1')
            else:
                print('0')
        else:
            print('-1')
    except:
        break

发表于 2018-07-21 13:15:56 回复(0)

Python 解法
Task = [0]*1024
while True:
    try:
        n,m = map(int,input().split())
        if n > 1024 or m > 1024:
            print(-1)
            continue
        Task[n-1] = 1
        print(1 if Task[m-1] == 1 else 0)
    except:
        break

发表于 2018-07-08 20:54:45 回复(0)
import sys
id=list(map(int,sys.stdin.readline().strip().split()))
id1,id2=id
mydict={}
if id1<1 or id1>1024 or id2<1 or id2>1024:
    print(-1)
else:
    mydict[id1]=1
    if id2 not in mydict:
        print(0)
    else:
        print(1)

发表于 2018-05-11 13:19:28 回复(0)
missions = [0] * 1025
m1, m2 = map(int, input().split())
if m1 in range(1, 1025) and m2 in range(1, 1025):
    missions[m1] = 1
    print(missions[m2])
else:
    print(-1)

发表于 2018-03-13 21:36:42 回复(0)
ID1, ID2 = [int(x) for x in input().split()]
if ID1 not in range(1, 1025) or ID2 not in range(1, 1025):
    print("-1")
elif ID1 == ID2:
    print("1")
else:
    print("0")

发表于 2017-11-06 22:35:08 回复(0)