博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NIM游戏
阅读量:4571 次
发布时间:2019-06-08

本文共 1797 字,大约阅读时间需要 5 分钟。

这是一个NIM游戏,可以直接通过判断异或操作判断序列{a1,a2,...,an}是否为p-positon(即 a1^a2^...^an),不过因为1=<n<=10^5, mi<=10^16,导致参与异或运算的数会特别多,可以通过(n*4)^(n*4+1)^(n*4+2)^(n*4+3) = 0  ,n属于N。来进行计算优化。

实现代码如下:

1 import java.util.Scanner; 2  3 public class Main { 4  5     public static long xor_fn(long val, long l) { 6         long ans = 0; 7         for (int i = 0; i < l; i++) { 8             ans ^= (val + i); 9         }10         return ans;11     }12 13     public static void main(String[] args) {14         Scanner scan = new Scanner(System.in);15         16         while (scan.hasNext()) {17             int n = scan.nextInt();18             long grundy = 0;19             for (int i = 0; i < n; i++) {20                 long ans = 0;21                 long x = scan.nextLong();22                 long m = scan.nextLong();23                 if (m > 6) {24                     long y = x + m - 1, var = 0, var1 = 0;25                     if (x % 4 != 0) {26                         long t = 0;27                         if (x % 4 == 1)28                             t = 3;29                         else if (x % 4 == 2)30                             t = 2;31                         else if (x % 4 == 3)32                             t = 1;33                         var = xor_fn(x, t);34                     }35                     if (y % 4 != 3) {36                         long k = y % 4 + 1;37                         var1 = xor_fn(y - k + 1, k);38                     }39                     ans = var ^ var1;40                 } else {41                     ans = xor_fn(x, m);42                 }43                 grundy ^= ans;44             }45             System.out.println(((grundy > 0) ? "first" : "second"));46         }47         scan.close();48     }49 50 }

 

转载于:https://www.cnblogs.com/jade640/p/6765747.html

你可能感兴趣的文章
priority_queue
查看>>
Octal Fractions
查看>>
Fragment 的生命周期及使用方法详解
查看>>
依赖注入及AOP简述(二)——工厂和ServiceLocator .
查看>>
《大道至简》第一章读后感
查看>>
.NET高性能框架Chloe.ORM-完美支持MySql
查看>>
Scalaz(24)- 泛函数据结构: Tree-数据游览及维护
查看>>
Scalaz(55)- scalaz-stream: fs2-基础介绍,fs2 stream transformation
查看>>
dede:channelartlist currentstyle栏目高亮显示方法
查看>>
程序员眼睛的保护(爱护眼睛,你我做起)
查看>>
Python之路【第六篇】:socket
查看>>
android的用户定位(一)
查看>>
Java 多生产者消费者问题
查看>>
常用的JS技术1
查看>>
商品搜索
查看>>
upc 9519 New Game
查看>>
oracle 用sql实现密码的加密,解密
查看>>
各种蒟蒻模板【如此简单】
查看>>
搜索1016
查看>>
配置算法(第4版)的Java编译环境
查看>>