J - S-Nim】的更多相关文章

黑白棋(game) [问题描述] 小A和小B又想到了一个新的游戏. 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色. 最左边是白色棋子,最右边是黑色棋子,相邻的棋子颜色不同. 小A可以移动白色棋子,小B可以移动黑色的棋子,他们每次操作可以移动1到d个棋子. 每当移动某一个棋子时,这个棋子不能跨越两边的棋子,当然也不可以出界.当谁不可以操作时,谁就失败了. 小A和小B轮流操作,现在小A先移动,有多少种初始棋子的布局会使他胜利呢? [输入格式] 共一行,三个数,n,k…
這道題n-m很小,可以從此入手 記f[i][j]為i個字符括號綜合為j的合法方案數 則第i個括號可以枚舉為(和),所以f[i][j]=f[i-1][j-1]+f[i-1][j+1],小心越界 再記a為序列總和,b為序列中前綴和最小值 則我們可以枚舉i,j統計答案,設前面括號的長度和權值為i,j 那麼中間的長度和權值為m,a,所以後面為n-m-i,-j-a 但是這樣子做會越界,我們可以考慮將所有後面的方案翻轉(左括變右,右括變左),方案合法,權值變負 這樣子,後面方案為n-m-i,j+a,所以不會…
1.筛\(phi\) \(logn\)求少数\(phi\) inline int phi(R int x){ R int res=x,tmp=x; for(R int i=2;i*i<=x;i++){ if(tmp%i==0)res=res*(i-1)/i; while(tmp%i==0)tmp/=i; } if(tmp>1)res=res*(tmp-1)/tmp; return res; } 线性求\(phi\) inline void getphi(R int n){ vis[1]=0;…
sg[0]=0; sg[i]=mex{sg[i-2^(j)]}  (i>=2^j) mex()为不在此集合的最小非负整数 #include <stdio.h> #include <string.h> #include <vector> #include <algorithm> using namespace std; using namespace std; int main() { ]; int n; int i; vector <int>…
目录 语法 c++ java 动态规划 多重背包 最长不下降子序列 计算几何 向量(结构体) 平面集合基本操作 二维凸包 旋转卡壳 最大空矩形 | 扫描法 平面最近点对 | 分治 最小圆覆盖 | 随机增量法 三维向量(结构体) 三维凸包 几何杂项 数据结构 ST表 单调队列 树状数组 线段树 并查集 左偏树 珂朵莉树,老司机树 莫队 二叉搜索树 一些建议 图论 图论的一些概念 图论基础 最短路径 最小生成树 树论的一些概念 最近公共祖先 联通性相关 图上的NP-hard问题 弦图+区间图 | 最…
http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概率是在正面,各个卡牌独立.求把所有卡牌来玩Nim游戏,先手必胜的概率. (⊙o⊙)-由于本人只会在word文档里写公式,所以本博客是图片格式的. Code #include <cstdio> #include <cstring> #include <algorithm> u…
A Simple Nim Problem Description   Two players take turns picking candies from n heaps,the player who picks the last one will win the game.On each turn they can pick any number of candies which come from the same heap(picking no candy is not allowed)…
题意 \(K(1 \le K \le 10^9)\)堆石子,每堆石子个数不超过\(L(2 \le 50000)\),问Nim游戏中先手必败局面的数量,答案对\(10^9+7\)取模. 分析 容易得到\(f(i, k) = \sum_{j=0}^{n-1} f(i-1, j) f(i-1, k^j), f(1, i(2 \le i \le L))=1\),其中\(n=min(2^i, 2^i > L)\).发现其实这就是操作为\(xor\)的卷积.于是用鬼畜的fwt做就行了. 题解 然后fwt+快…
[题目分析] 神奇的题目,两人都可以第一次取走足够多堆的石子. nim游戏的规则是,如果异或和为0,那么就先手必输,否则先手有必胜策略. 所以只需要剩下一群异或和为0就可以了. 先排序,线性基扫一遍即可(保留最多的不为0的堆) [代码] #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <set> #include <map&g…
3105: [cqoi2013]新Nim游戏 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 839  Solved: 490[Submit][Status][Discuss] Description 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴.可以只拿一根,也可以拿走整堆火柴,但不能同时从超过一堆火柴中拿.拿走最后一根火柴的游戏者胜利. 本题的游戏…