sg函数模板

Nim和SG函数 博弈 比较全面系统的介绍了公平组合游戏,适合于参加acm竞赛的选手使用 立即下载
///f[]:可以取走的石子个数
///sg[]:0~n的SG函数值
///hash[]:mex{}
int f[K],sg[N],hash[N];
void getSG(int n) {
    memset(sg,0,sizeof(sg));
    for(int i = 1; i <= n; ++i) {
        memset(hash,0,sizeof(hash));
        for(int j = 0; f[j] <= i && j < k; ++j) ///k是f[]的有效长度
            hash[sg[i-f[j]]] = 1;
        for(int j = 0; ; ++j) {   ///求mes{}中未出现的最小的非负整数
            if(hash[j]==0) {
                sg[i]=j;
                break;
            }
        }
    }
}

几乎可以用于求任何博弈问题 SG函数

比如5堆石子,每次可以取1,2,4个这种问题

以hdu1848为例

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 2000 + 7;
int n, m, p;
int sg[maxn], ha[maxn], fib[maxn];

void getSG()
{
    memset(fib, 0, sizeof(fib));
    fib[0] = 1;
    fib[1] = 2;
    for(int i = 2; i < 30; ++i) fib[i] = fib[i-1] + fib[i-2];

    memset(sg, 0, sizeof(sg));
    for(int i = 0; i < maxn; ++i) {
        memset(ha, 0, sizeof(ha));
        for(int j = 0; j < 30 && fib[j] <= i; ++j)
            ha[sg[i-fib[j]]] = 1;
        for(int j = 0; ; ++j) {
            if(ha[j] == 0) {
                sg[i] = j;
                break;
            }
        }
    }
    return ;
}

int main()
{
    getSG();
    while(scanf("%d%d%d", &m, &n, &p) != EOF && m && n && p) {

        int ans = sg[m] ^ sg[n] ^ sg[p];
        if(ans != 0) printf("Fibo\n");
        else printf("Nacci\n");
    }
}


STM32CubeIDE无法连接STLinkV2的一个可能原因 前些日子买了个新的STLINKV2 , ( 老的被我家猫猫一泡尿送上西天了)刚开始还挺正常的, 后来有一天就突然间发现无法调试了.网上尝试了各种方法, 各种操作. 百度了好久. 最后好在我自己研究出来了.我使用的是 STM32CubeIDE 这个开发工具调试选项如下图其它的不需要修改, 然后点击下面的apply 按钮, 然后调试Debug, 提示 No STLink 如下图后来尝试了下载ST-LINK Utility 用它是可以正常连接STLink的, 然后也能正常进行升级操作. 阅读详情

相关推荐

ConvLSTM时空预测实战代码详解

ConvLSTM代码复现

JaysonWong的博客 1万+

SG函数(博弈论)

即不断除(1

WQhuanm的博客 1141

港口集装箱码头运营FlexSim仿真

列队4中的集装箱会根据不同类型的集装箱会放置在不同的堆场,因此根据前面对集装箱设置的标签Type的数值不同,设置不同的发送端口。集装箱到达列队3后,会有70%的集装箱到达堆场,30%的集装箱运出港口,因此在Queue列队3的Flow界面设置按照百分比发送端口,其中70%发送到端口1,即发送到列队4等待进入堆场,30%发送到端口2,即发送至出闸口。通过上述对比表格可以看出,当集卡数量在10的时候,岸桥和场桥的设备利用率达到了最高,当集卡数量为12的时候场桥1和场桥3的利用率有所下降,因此综合考虑。

m0_72514516的博客 1331

[AcWing] 893. 集合-Nim游戏(C++实现)博弈论SG函数模板题

[AcWing] 893. 集合-Nim游戏(C++实现)博弈论SG函数模板题1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结 1. 题目 2. 读题(需要重点注意的东西) 思路: 首先要知道几个定义 公平组合游戏(ICG) 公平组合游戏(ICG) (1)由两名玩家交替行动 (2)在游戏进行的任意时刻,可以执行的合法行动与轮到哪位玩家无关 (3)轮流走,当一个玩家不能走时游戏结束 (4)游戏不能区分玩家的身份,例如黑白棋就是不行的

cloud的博客 4002

实现电脑同时上内网和外网(或通过外网访问到该电脑通过该电脑访问内网)

一、需求描述 目前使用的公司网络只能够上内网,但是又有上外网查资料的需求: ①想要实现电脑既能上内网的同时也可以上外网; ②想要使用其他外网电脑使用外网连接到该电脑,通过该电脑访问内部的网络内容。 二、准备内容 电脑必须具备两个网卡,即:可以同时连接内网和外网(比如我的笔记本就可以:使用网线连接笔记本网口与内网通讯,使用WIFI连接手机热点访问外部网络); 注意:如果只有一个网口,可以另外购买USB的无线网卡来实现上网卡。 三、实现电脑同时上内网和外网的操作步骤 3.1、网络拓扑图 ..

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2万+

Stable Diffusion 模型分享:Indigo Furry mix(人类与野兽的混合)

Indigo Furry mix 是一个混合模型,出的图具有雄性人类的体型和野兽的形态。条目内容类型大模型基础模型SD 1.5来源CIVITAI作者indigowing文件名称文件大小1.99GB。

水滴的博客 1831

SG函数模板

首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0,1,2,4}=3、mex{2,3,5}=0、mex{}=0。 对于一个给定的有向无环图,定义关于图的每个顶点的Sprague-Grundy函数g如下:g(x)=mex{ g(y) | y是x的后继 },这里的g(x)即sg[x] 例如:取石子问题,有1堆n

稻草人 2057

华为OD机试双机位C卷-MVP争夺战 (C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【MVP争夺战】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - MVP争夺战,

qq_45776114的博客 1172

Brave Game(sg函数模板)

Brave Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7367    Accepted Submission(s): 4897 Problem Description 十年前读大学的时候,中国每年都

chaoyueziji123的专栏 810

AUTOSAR AP——SM模块

对AUTOSAR AP中状态管理模块SM,从模块定义、总结等多方面进行了介绍。

weixin_43627682的博客 284

HandwrittenMathFormulaRecognition:基于YOLOv8的手写数学公式识别系统

输入:包含手写数学公式的图像(拍摄的板书、作业纸等)输出:对应的数字文本形式的数学公式(如LaTeX格式或文本表达式)标准的手写数学表达式数据集,包含在线轨迹及图片,广泛用于公式识别研究。包含近10万对公式图片及对应的LaTeX标注,适合训练公式识别模型。MathBrush公开手写数学公式图像数据集,含多种书写风格。手写数字与符号数据集(MNIST及其扩展)用于基础数学符号的训练。

YOLO 283

sg函数模板(打表)

int sg[maxn];//sg[n] n表示每堆数量 int s[k];//每次能取的值,下标从0开始,0 ~ k-1,必须有序,可以sort(s,s+k); bool vis[maxn]; const int k;//k是集合s的大小 void get_sg() { int i,j; for(i=0;i<maxn;i++) { memset(vis,0,

退役的铜牌狗 2382

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SG函数模板题总结

S-Nim HDU 1536 应该是最板的一道题了qwqqwqqwq。 把kkk堆石子的博弈分解成kkk个子问题再把它们的 SG\text{SG}SG 函数值异或起来,sg[i]sg[i]sg[i]表示iii个石子的 SG\text{SG}SG 函数值,记忆化搜索即可,注意:搜索过程中算mexmexmex时visvisvis的大小就是操作集合的大小。 #include <cstdio>...

C202044zxy的博客 715

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

博弈论——sg函数模板

sg函数模板: 实现的环节:  1、递推式求出全部位置的sg值;  2、sq[n]=mex{sq[y],y属于n通过一次变化达到的值}  3、求( sq[n] )一组数中未出现的最小非负整数,通过将一组原本为false的数组(flag),把出现的数对应数组的位置的值改为true,        再做一次无限循环,直到遇到未曾改的数组元素,终止循环,并得到sq[ n ]的值为该位置的大小值

long1的博客 552

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

hdu1536 S-Nim (利用sg函数模板打表)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1536 利用sg模板可以做出来,代码如下,但很可能超时: #include #include #include #include #include #define H 10001 #define K 101 using namespace std; int a[K]; int sg[H

hldfight 759

博弈——SG函数模板

  之前遇到博弈的题老是无从下手,今天学习了下博弈题的一个“小套路”,叫做Sprague-Grundy函数。 Sprague-Grundy函数定义为不出现在F(X)中每一个元素的Sprague-Grundy函数的最小非负数。听着有点绕,其实举个例子就很好理解了。 举例子前先说几个名词:   x:当前状态量   F(x):表示一个点能到达点的集合   SG[]:0-n的SG函数值...

dgbxssz959266的博客 285

博弈SG函数模板

#define maxn 1e4+10//maxn为堆中最大个数 #define cmax 1005//cmax为取个数的方法总数 using namespace std; int sg[maxn];//记录sg[n](n为堆的个数)sg值 int mex[maxn];//模拟mex运算 int get[cmax];// void get_sg() { // 例如有三种情况的...

224
上一篇: UVa1262 - Password
下一篇: POJ3083 Children of the Candy Corn(DFS + BFS)
THE___BEST
博客等级 码龄12年 10粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值