首页 > TAG信息列表 > Nim

nim 8. 异常处理

基本的异常处理 try: let d = newSeq[int]() echo "value: ", d[2] except: let e = getCurrentException() echo "异常对象: ",repr(e), " 异常信息: ", getCurrentExceptionMsg() echo "另一种获取异常信息的方法: ", e.msg finally: echo "

nim 6. 使用包

本来想按照制作包 - 发布包 - 使用包的顺序写。发现制作包一时还没搞懂,先看看怎么使用包吧。 nim的包管理工具,是自带的 nimble。  nimble的官方包列表是:Nim package directory (nimble. Directory) 我们从里面找到个wNim, 看看怎么用。 安装包 按照wNim说明,先用  nimble install

【模板】Nim博弈与SG函数

原文链接 一、Nim游戏 1、引子   Alice与Bob在玩一个取石子的游戏。 在这个游戏有N堆不同的石子,编号1..N,第i堆中有Ai个石子。 每一次行动,Alice和Bob可以选择从一堆石子中取出任意数量的石子。至少取1颗,至多取出这一堆剩下的所有石子。 Alice和Bob轮流行动,取走最后一个石子的人获

【博弈论】SG(Sprague–Grundy)定理证明和Nim游戏正确性证明

【博弈论】SG(Sprague–Grundy)定理证明和Nim游戏正确性证明 网上好像都是引用的维基,或者证的很不严谨 这里提供一个稍微严谨一点的证明,SG的部分基本上参考了维基 (自己想过,没想出来www) 要转载的话随便转载,就是不知道这垃圾玩意有没有转载的必要啊 定义 公平组合游戏,Nim游戏 满足如

我没看懂的 Nim游戏和SG函数

https://blog.csdn.net/strangedbly/article/details/51137432 什么都看不懂……我放弃了好吧……希望未来的某一天我还会回来 emmm……莫名想到了子胥对渔夫说:“你渡我过了河,同时也渡过了我的仇恨,希望有那么一天,你再渡我回来”——2022高考语文

重修 博弈论

由来(doge) Once upon a time, there were two clever people named Alice and Bob. This is how the story begins... 基础 \(N\) 为先手必胜局面,\(P\) 为先手必败局面。 先手被认为输的局势,我们可以称之为奇异局势。 巴什博弈 小学奥数题:甲乙轮流报数至多报 77 个数,至少报 11 个

1053 取石子游戏 2 博弈论-nim公式

链接:https://ac.nowcoder.com/acm/contest/26656/1053来源:牛客网 题目描述 有一种有趣的游戏,玩法如下: 玩家:2人; 道具:N堆石子,每堆石子的数量分别为X1,X2,...,XnX_1,X_2,...,X_nX1​,X2​,...,Xn​; 规则: 游戏双方轮流取石子; 每人每次选一堆石

CF1498F Christmas Game

从简单往复杂推。 菊花图并且 \(k=1\) 时,这是个 \(Nim\) 游戏。 继续 \(k=1\),奇偶分类后发现一样是奇数深度意义下的 \(Nim\) 游戏。 \(k > 1\) 时,深度除以 \(k\) 后还是个 \(Nim\) 游戏。 换根 \(dp\) 求解一下即可。 #include<cstdio> const int H=4000040; char G[H],*_=G; in

229. 新NIM游戏

题目链接 229. 新NIM游戏 传统的 Nim 游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同)。 两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴。 可以只拿一根,也可以拿走整堆火柴,但不能同时从超过一堆火柴中拿。 拿走最后一根火柴的游戏者胜利。 本题的游

ARC134E Modulo Nim

Description 现在在黑板上写了 \(n\) 个数 \(A_1,\dots A_n\) ,有两个人轮流来修改这些数字并进行博弈。如果所有数字的最大值是 \(0\) 当前操作者胜利。否则在 \([1,\max]\) 中选择一个数 \(m\) 并将所有数字改为它模 \(m\) 的余数 给定 \(a_1\dots a_n\) ,求有多少 \(\{A_i\}\) 满

数学-博弈论. 集合-Nim游戏

c++ AcWing 893. 集合-Nim游戏 /* * 题目描述: * Acwing 893. 集合-Nim游戏: * 给定 n 堆石子以及一个由 k 个不同正整数构成的数字集合 S。 * 现在有两位玩家轮流操作,每次操作可以从任意一堆石子中拿取石子,每次拿取的石子数量必须包含于集合 S,最后无法进行操

[atARC144F]Arithmetic Sequence Nim

记$sg(n)={\rm mex}\{sg(n-x)\mid x\in X\}$,考虑如何求$sg(n)$—— 将$m,a,n$均除以$\gcd(m,a)$(其中$n$向下取整),以下假设$m,a$互素 特判$a=0(m=1)$的情况,此时$sg(n)=n$,以下假设$a\in [1,m)$ 用$(i,j)$表示$im+ja$,则$sg(i,j)={\rm mex}\{sg(k,j-1)\mid k\le i\}$(注意$i,j$均可为负)

[博弈论专题] AcWing 891 Nim游戏

看了很多的博客,终于对Nim游戏中的异或操作有些认识。。。 首先对于Nim游戏,需要明确两点,一点是如果剩下全是0,则是必败态。一点是如果有两个完全相同的状态,则它们合起来的状态是一个必胜态,即后手能完全模仿先手在对称的堆中进行操作。这就可以通过异或来操作 对于本题最简单的Nim游

数学: 博弈论. Nim游戏

C++ AcWing 891. Nim游戏 /* 题目描述: 891. Nim游戏: 给定 n 堆石子,两位玩家轮流操作,每次操作可以从任意一堆石子中拿走任意数量的石子(可以拿完,但不能不拿),最后无法进行操作的人视为失败。 问如果两人都采用最优策略,先手是否必胜。 输入格式: 第一行包含整数 n。 第二行包

NIM游戏

注意NIM里面取走的石子 不一定是减去 根据题意 如果是整除 那可能是除去 可以拿走从任意一个堆 取走任意的石子,取走最后一个石子胜利 NIM博弈 对于先手:永远将奇数台阶保持不变 我永远看到奇数层不一致的 对手看到永远是 一致的 先手必胜需要每个值异或不等0 这样留给后手操作的就

公平组合游戏

目录公平组合游戏\(Nim\) 游戏概述与解法\(Nim\) 游戏及解法有向图游戏与 \(SG\) 函数概述习题P2197 【模板】nim 游戏P1247 取火柴游戏 公平组合游戏 \(Nim\) 游戏 参考 概述与解法 \(Nim\) 游戏是 \(ICG(Impartial\ Combinatorial\ Games)\) 满足下列条件的游戏才算 \(ICG\) :

7.13 $\text{Nim & SG(x)}$

\(\large \text{Date: 7.13}\) \(\rm Nim\) 游戏 & \(\rm SG\) 函数 $ \rm Nim$ 游戏 先摆结论: \(\large\left\{\begin{aligned}\text{xor}_{i=1}^na_i=0 \to先手必败\\\rm else \to先手必胜\end{aligned}\right.\) 感性理解:若干个数,\(a_1,a_2,...,a_n\),将它们化为二进制串,若每

屏幕截图(nim学习系列)

1 #[ 2 https://gist.github.com/treeform/782149b5fc938753feacfca43637aa90 3 License: BSD 3-Clause 4 ]# 5 import winim, pixie 6 import winim/inc/windef 7 8 proc takeScreenshot*: Image= 9 # get size of the main screen 10 var screenR

一些复健时的注意点

一些复健时的注意点 如果证明有错,请在评论区指出。。。我理解力有限 /kel SG 定理 学博弈论时我有一个问题:为什么 SG 函数能与 Nim 游戏等价?\(SG(x)=\text{mex}(SG(y_1),SG(y_2),...,SG(y_n))\),可能 \(\exist k\in [1,n],SG(y_k)>SG_x\)。 首先,一个局面 \((a_1,a_2,...,a_n)\),比如

[AcWing 894] 拆分-Nim游戏

点击查看代码 #include<iostream> #include<cstring> #include<unordered_set> using namespace std; const int N = 110; int n; int f[N]; int sg(int x) { if (f[x] != -1) return f[x]; unordered_set<int> S; for (int i = 0; i <

[AcWing 891] Nim游戏

点击查看代码 #include<iostream> using namespace std; int main() { int n; cin >> n; int res = 0; while (n --) { int x; scanf("%d", &x); res ^= x; } if (res) puts("Yes");

给nimble 设置代理 解决中国国内nimble安装nim库的问题

nimble是nim语言的包管理器 由于github被墙的原因,导致在使用nimble安装库的时候通常会失败无法安装. 命令行程序似乎并不理会v2rayN开启的系统代理,开了没有效果。 所以需要自己另外设置。 有三种设置代理的方法: 方法1: 参考 https://www.cnblogs.com/DarkMaster/p/7852893.html 给

CF1162E Thanos Nim

CF1162E Thanos Nim Problem - 1162E - Codeforces 大概是一篇迟到了13个月的题解? 第二次做到了这道题,上一次做到的时候还刚刚入门,啥也不懂,听学长讲的题解更是听不明白。今天又一次幸运的遇到了这道题,终于可以靠着自己的思考稍微讲一讲自己的思路了。 大致题意 ​ 有\(n\)堆石子,

博弈论-nim博弈2(hh2048题单)

【题目大意】:   简单nim  输出第一步的方案数. 【思路】:   nim部分是普通的nim , 难的是输出第一步的方案数。   假设x 是 异或 后的值 。x = a1 ^a2 ^ a3 ^ a4 ^ a5 。   第一步的想法是让剩余的数异或后x = 0 。   如果 存在 ai > (ai^x) // 位运算优先级最低 所以要

Nim游戏

Nim 游戏 今天算法课要做一道Nim游戏的题,内容是这样: 冰墩墩和雪融融放置了N堆不同数目的金牌,编号1..N,第i堆中有A[i]个金牌。 每一次行动,冰墩墩和雪融融(电脑)可以选择从一堆金牌中取出任意数量的金牌。至少取1个,至多取出这一堆剩下的所有金牌。 冰墩墩和雪融融轮流行动,取走最后一