牛客网编程练习之游戏任务标记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客网编程练习之游戏任务标记相关的知识,希望对你有一定的参考价值。

image

 

思路:

这道题主要考的是位运算。

依照题意,使用32个int类型来标记就可以了,只不过使用Java语言的话可能需要多一步计算这个任务ID应该落在哪个数组下标的步骤。

 

AC代码:

import java.util.Scanner;

/**
 * @author CC11001100
 */
public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt() -1 ;
		int m = sc.nextInt() -1;

		if(n<0 || n>1023 || m<0 || m>1023){
			System.out.println(-1);
		}
		
		int[] task = new int[32];
		task[n/32] |= (1<<(n%32));
		int ans = ((task[m/32] >> (m%32)) & 0X1) == 1  ? 1 : 0;
		System.out.println(ans);

	}

}

 

 

题目来源: https://www.nowcoder.com/practice/2f45f0ef94724e06a4173c91ef60781c?tpId=85&tqId=29871&tPage=1&rp=1&ru=/ta/2017test&qru=/ta/2017test/question-ranking

.

以上是关于牛客网编程练习之游戏任务标记的主要内容,如果未能解决你的问题,请参考以下文章

牛客网编程练习之编程马拉松:砌墙

牛客网编程练习之网易2017校招题:下厨房

牛客网编程练习之编程马拉松:数据库连接池

牛客网编程练习之解救小易

牛客网编程练习之编程马拉松:红与黑

牛客网多校训练 德玛西亚万岁