[平等博弈][SG函数][字典树合并] BZOJ 4730: Alice和Bob又在玩游戏

【BZOJ4730】Alice和Bob又在玩游戏 【题目链接】点击打开链接【思路要点】补档博客,无题解。【代码】#include<bits/stdc++.h> using namespace std; #define MAXN 100005 #define MAXP 20000005 #define MAXLOG 20 vector <int> a[MAXN]; int sg[MAXN], n, m, root[MAXN]... 阅读详情

SolutionSolution

记SuSu为uu到根的链的子树的SG函数值的集合。
考虑从子树转移到根。
一种是去掉根,就是把所有子树异或起来。
一种操作在子树内,相当于把子树的S异或上子树的SG异或和。
集合异或上一个数可以打标记。
集合的合并可以用字典树合并。
求mexmex可以二分。

#include <bits/stdc++.h>
#define show(x) cerr << #x << " = " << x << endl
using namespace std;
typedef long long ll;
typedef pair<int, int> Pairs;

const int N = 202020;
const int M = 4040404;
const int K = 18;

inline char get(void) {
    static char buf[100000], *S = buf, *T = buf;
    if (S == T) {
        T = (S = buf) + fread(buf, 1, 100000, stdin);
        if (S == T) return EOF;
    }
    return *S++;
}
template<typename T>
inline void read(T &x) {
    static char c; x = 0; int sgn = 0;
    for (c = get(); c < '0' || c > '9'; c = get()) if (c == '-') sgn = 1;
    for (; c >= '0' && c <= '9'; c = get()) x = x * 10 + c - '0';
    if (sgn) x = -x;
}

namespace trie {
    int tcnt;
    int ch[M][2];
    int rt[N], tag[M], sz[M];
    inline void mark(int u, int x, int d) {
        if (d < 0 || !u) return;
        tag[u] ^= x;
        if (x >> d & 1) swap(ch[u][0], ch[u][1]);
    }
    inline void pushUp(int u) {
        sz[u] = sz[ch[u][0]] + sz[ch[u][1]];
    }
    inline void pushDown(int u, int d) {
        if (tag[u]) {
            mark(ch[u][0], tag[u], d - 1);
            mark(ch[u][1], tag[u], d - 1);
            tag[u] = 0;
        }
    }
    inline void _insert(int &u, int x, int d) {
        if (!u) u = ++tcnt;
        if (d < 0) { sz[u] = 1; return; }
        pushDown(u, d);
        _insert(ch[u][x >> d & 1], x, d - 1);
        pushUp(u);
    }
    inline int _merge(int x, int y, int d) {
        if (!x || !y) return x ? x : y;
        if (d < 0) {
            sz[x] |= sz[y]; return x;
        }
        pushDown(x, d); pushDown(y, d);
        ch[x][0] = _merge(ch[x][0], ch[y][0], d - 1);
        ch[x][1] = _merge(ch[x][1], ch[y][1], d - 1);
        pushUp(x); return x;
    }
    inline void mark(int id, int x) {
        mark(rt[id], x, K);
    }
    inline void insert(int id, int x) {
        _insert(rt[id], x, K);
    }
    inline void merge(int from, int to) {
        rt[to] = _merge(rt[from], rt[to], K);
    }
    inline int mex(int id) {
        int res = 0, u = rt[id];
        for (int d = K; ~d; d--) {
            pushDown(u, d);
            int dir = (sz[ch[u][0]] == (1 << d));
            res |= dir << d;
            u = ch[u][dir];
        }
        return res;
    }
    inline void reset(int n) {
        for (int i = 1; i <= tcnt; i++) {
            ch[i][0] = ch[i][1] = 0;
            tag[i] = sz[i] = 0;
        }
        for (int i = 1; i <= n; i++) rt[i] = 0;
        tcnt = 0;
    }
}

int test, n, m, ans, gcnt, x, y;
struct edge {
    int to, next;
    edge(int t = 0, int n = 0): to(t), next(n) {}
};
edge G[N << 1];
int head[N], sg[N], vis[N];

inline void addEdge(int from, int to) {
    G[++gcnt] = edge(to, head[from]); head[from] = gcnt;
    G[++gcnt] = edge(from, head[to]); head[to] = gcnt;
}
inline void dfs(int u, int f) {
    int to, sum = 0; vis[u] = 1;
    for (int i = head[u]; i; i = G[i].next) {
        to = G[i].to; if (to == f) continue;
        dfs(to, u); sum ^= sg[to];
    }
    for (int i = head[u]; i; i = G[i].next) {
        to = G[i].to; if (to == f) continue;
        trie::mark(to, sum);
        trie::merge(to, u);
    }
    trie::insert(u, sum);
    sg[u] = trie::mex(u);
    trie::mark(u, sg[u]);
}

int main(void) {
    freopen("1.in", "r", stdin);
    freopen("1.out", "w", stdout);
    read(test);
    while (test--) {
        read(n); read(m);
        ans = gcnt = 0;
        for (int i = 1; i <= n; i++)
            sg[i] = head[i] = vis[i] = 0;
        for (int i = 1; i <= m; i++) {
            read(x); read(y);
            addEdge(x, y);
        }
        for (int i = 1; i <= n; i++) {
            if (vis[i]) continue;
            dfs(i, 0); ans ^= sg[i];
        }
        if (ans) printf("Alice\n");
        else printf("Bob\n");
        trie::reset(n);
    }
    return 0;
}
视频教程-SAP S4 HANA FICO COPA 获利能力分析-ERP SAP S4 HANA FICO COPA 获利能力分析 从业超过8年的SA... 阅读详情

相关推荐

【学习笔记】平等博弈及常见的公平博弈类型

救命啊家人们。现在纯纯就是不把墓碑给我刻好,我是不会去死的这样一个情况了!

3079

【学习记录】IIC驱动ICM42670+卡尔曼滤波+四元数姿态角解算

ICM42670陀螺仪可以使用iic驱动,单片机平台使用GD32f305VE。

liarsup的博客 8265

博弈论总结 四大博弈模型 SG函数

一、博弈论 1、博弈论是什么 博弈论是二人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜的目的。 2、平等博弈 在我们平时做题碰见的博弈都是平等博弈,平等博弈满足下面这几个要求: 1.两人游戏,每人轮流做出决策,且每人的决策都是对自己有利的。(让自己赢) 2.有一个终止状态,到终止状态后游戏结束,不会有平局状态。(获胜的条件) 3.游戏可以在有限步数内结束。(不会无限重复,得不到答案) 4.所有规定对两人都是一样的。(平等游戏) 二、四大博弈 1、巴什博弈: 1.定义: 只有一堆物品,共n个,

harry12138小白的博客 1万+

科研党福音:如何用Zotero+Paper Agent打造你的AI论文速递系统(附详细配置教程)

本文为科研工作者提供了一套利用Zotero和开源工具Paper Agent构建自动化AI论文速递系统的详细教程。该系统能基于用户在Zotero中的文献库智能学习研究兴趣,每日自动从arXiv等平台筛选、下载并深度解读最相关的前沿论文,生成个性化日报,实现从被动接收到主动精准获取的知识工作流重塑。

kite3的博客 514

三维(点云)语义分割概述以及方法总结

语义分割 语义分割需要两部分 classification: 需要全局信息 segmentation:更加依赖全局信息和局部信息 一般的网络结构是: 提特征-特征映射-特征图压缩(降维)-全连接-分类,其实就是encoder-decoder的过程, 比如在二维的的pspnet,fcn等等 0. 三维表示的数据结构 Point cloud 无序性 点云实际上是无序的,比如有8个点云,你放到...

renhaofan的博客 3万+

[BZOJ]4730: Alice和Bob又在玩游戏 sg函数+trie

Description Alice和Bob在玩游戏。有n个节点,m条边(0&lt;=m&lt;=n-1),构成若干棵有根树,每棵树的根节点是该连通块内编号最小的点。Alice和Bob轮流操作,每回合选择一个没有被删除的节点x,将x及其所有祖先全部删除,不能操作的人输。注:树的形态是在一开始就确定好的,删除节点不会影响剩余节点父亲和儿子的关系。比如:1-3-2 这样一条链,1号点是根节点,删除1号点...

TYB的博客 679

数字IC设计——功耗分析

功耗是数字IC芯片的一个重要指标

知识,既贵,又便宜。 9362

bzoj 4730: Alice和Bob又在玩游戏 线段树合并&博弈论

n居然是10w左右你敢信。。。连爆10+发OJ才发现。      首先给每一个子树一个sg值;考虑当前点所在子树的sg,枚举第一次删哪一个点,那么剩下一些子树,这些子树的xor就是这个后继的值,然后求mex即可。      考虑用线段树合并来维护。用线段树维护某一个要被删除的点在当前点的后继的值,那么更新就相当于全部抑或一个值,打标记维护即可。      查询就贪心向左走即可。 AC代码如

lych的博客 1912

YOLOv11涨点改进 | 全网独家创新,注意力改进篇 | TGRS 2025 | 引入APCM自适应像素级协同机制,动态增强目标区域、抑制背景噪声,助力YOLOv11做红外小目标检测有效涨点

本文提出了一种基于APCM模块改进的YOLOv11网络模型,通过像素级局部-全局协同建模增强目标特征并抑制背景噪声。APCM模块采用轻量化设计,无需复杂参数,能有效提升小目标检测性能。文章详细介绍了APCM的原理、优势及其在红外小目标检测中的应用,包括模块结构、核心代码实现和YAML配置文件修改方法。实验结果表明,该方法在NUAA-SIRST和IRSTD-1K数据集上优于现有技术,显著提高了复杂场景下的检测精度与鲁棒性。

Ai缝合怪、助力小伙伴高效发论文 116

Uniapp返回上一页并刷新:亲测有效的 goBack 实现技巧!

这个技巧在实际开发中非常常用,特别适合表单提交后返回列表刷新这类场景。比起依赖onShow或复杂的vuex状态同步,这种方式更直接、好维护,也不容易出 bug。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1841

Trie树合并 + SG函数 ---- BZOJ4730. Alice和Bob又在玩游戏(动态开点Trie 树上全局异或标记 + 合并 + 博弈论)

题目大题 题目大意: 解题思路: 首先我们对于子树u的SG函数为SG函数为SG函数为 ⨁是异或和\bigoplus是异或和⨁是异或和 SG[u]=mex{⨁w∈(w的父亲在u到v的路径上)SG[v]∣v∈(u的子树里面的点)}SG[u]=mex\{\bigoplus_{w\in(w的父亲在u到v的路径上)}SG[v]|v\in(u的子树里面的点)\}SG[u]=mex{w∈(w的父亲在u到v的路径上)⨁​SG[v]∣v∈(u的子树里面的点)} 通俗一点就是就是枚举uuu所有的里面的子树节点vvv,

weixin_45630722的博客 407

YOLOv11改进 - C3k2融合 | C3k2融合细节增强卷积DEConv(Detail-Enhanced Convolution)提升细微特征提取能力

本文介绍了细节增强卷积(DEConv)技术在YOLOv11中的结合应用。DEConv由标准卷积层和多种差异卷积层并行组成,通过计算像素差异和卷积操作增强特征提取能力,还采用重参数化技术简化模型结构。其优势在于能更好捕捉高频信息、保持参数数量不变且降低推理计算成本。我们将DEConv集成进YOLOv11,替换部分模块。

魔改工程师的博客 862

[博弈 & 字典树合并] BZOJ4730. Alice和Bob又在玩游戏

每棵树单独考虑对于每个子树,通过枚举删去的点,可以算出剩下的所有树的SG值的异或值的集合,集合的MEX就是这个子树的SG值用字典树维护所有情况,合并的时候打个标记,然后字典树合并就行了#include <cstdio> #include <iostream> #include <algorithm> #include <cstring>using namespace std;const int N=

CE玩家 819

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[清华集训2016][UOJ266][BZOJ4730] Alice和Bob又在玩游戏 sg函数+字典树

对一棵树进行操作,那么它的根一定会被移除,所以我们可以将这一棵树的sg函数记录在根上 对于一次操作,这次操作可能操作在根上,那么我们将它的所有儿子sg值异或起来就能得到这次操作的结果,否则相当于操作它其中一个儿子,移除根,再异或上其它儿子。 对于每一个节点维护一棵字典树用来记录从根出发走出路径所能得到的新sg值的集合。 合并的时候按照线段树合并的方法合并,可以证明复杂度是O(nlogn)O(n

HbFS- 1057

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

BZOJ4730 UOJ#266【清华集训2016】Alice和Bob又在玩游戏

同BZOJ4134-_- #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MAXN 200010 #define MAXM 400001

neither_nor 1121

efm32 入门.pdf

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

[BZOJ4730][UOJ#266][清华集训2016]Alice和Bob又在玩游戏(SG 函数 + Trie + 线段树合并)

Address BZOJ 4730 UOJ #266 Solution 设 SG[u]SG[u]SG[u] 表示当前存在的点只剩下 uuu 的子树时的状态的 SGSGSG 值 显然整个游戏的 SGSGSG 值为 XORu是根节点SG[u]XOR_{u是根节点}SG[u]XORu是根节点​SG[u] 如果上式非零则先手必胜,否则先手必败 考虑通过 DP 求得 SG[u]SG[u]SG[u] 。...

女装的你,如此好看! 720

BZOJ2725 [Violet 6]故乡的梦

想日这道题都得有一年了……今天发现yh都把这题日了,我才终于来日他 这题题解网上都烂大街了,我也懒得写……不过这题其实不需要线段树的 先任意搞一条S到T的最短路,然后对于不在最短路上的一条边,x->y,假设我们要强制经过这条边的话,最优情况一定是S走最短路到x,再x->y,再y走最短路到T 那么S走最短路到x一定是先走一段S到T的最短路,然后离开最短路,y走到T一定是先走一段别的路,然后进入

neither_nor 1689

bzoj4730

Alice 和 Bob 又在玩游戏。 有 nn 个节点,mm 条边(0≤m≤n−10≤m≤n−1),构成若干棵有根树,每棵树的根节点是该连通块内编号最小的点。 Alice 和 Bob 轮流操作(Alice 先手),每回合选择一个没有被删除的节点 xx,将 xx 及其所有祖先全部删除,不能操作的人输。 需要注意的是,树的形态是在一开始就确定好的,删除节点不会影响剩余节点父亲和儿子的

lpf_as_a_oier的博客 459

UOJ #266 【清华集训2016】 Alice和Bob又在玩游戏

题目链接:Alice和Bob又在玩游戏   这道题就是一个很显然的公平游戏。   首先\(O(n^2)\)的算法非常好写。暴力枚举每个后继计算\(mex\)即可。注意计算后继的时候可以直接从父亲转移过来,没必要\(O(n)\)扫一遍所有节点 。   然后我们仔细看看转移,就可以发现这玩意儿就是一个集合,每次要支持集合异或上一个数,集合插入一个数,以及集合合并。然后我们用\(Trie\)树(其...

weixin_30508309的博客 214

寒假训练赛第二场 -- 思维题

题解A - 01 Game题意:思路:AC代码B - String Task题意思路AC代码C - Sereja and Suffixes题意思路AC代码D - XXXXX题意思路AC代码E - Swap Adjacent Elements题意思路AC代码F - Nice Matrix题意思路AC代码G - Mortal Kombat Tower题意思路AC代码H - Balanced Team题意思路AC代码I - Cutting题意思路AC代码J - Brutality题意思路AC代码 A - 01 G

qq_45249273的博客 2020

平等博弈

平等博弈 前言:博弈论博大精深。    所谓平等博弈只是博弈论,应该说是组合博弈的一个分支。    本来还想做一篇详细基础解说向,但是实在嫌麻烦,所以我要强调一下本文属于补充备注类型,甚至可以说是记录的草稿。建议看了推荐的那些东西再来看本文作为一个补充吧。 ...

banejiao9159的博客 213

4730: Alice和Bob又在玩游戏

4730: Alice和Bob又在玩游戏 Time Limit: 40 Sec  Memory Limit: 1024 MB Submit: 116  Solved: 52 [Submit][Status][Discuss] Description Alice和Bob在玩游戏。有n个节点,m条边(0 小的点。Alice和Bob轮流操作,每回合选择一个没有被删除的节点x,将x及其所有

CRZbulabula的博客 3617

uoj#266. 【清华集训2016】Alice和Bob又在玩游戏(博弈论)

传送门 完了我连sg函数是个啥都快忘了 设\(sg[u]\)为以\(u\)为根节点的子树的\(sg\)函数值,\(rem[u]\)表示\(u\)到根节点的路径删掉之后剩下的游戏的异或值 根节点\(u\)的\(rem\)就是它所有子树的异或值,然后对它的每个儿子\(v\)来说,它们的\(rem\)需要异或上\(rem[u]\bigoplus sg[v]\) 对于每一个节点,最小的不出现在子树的\(r...

weixin_34082177的博客 477

ACM博弈-I 平等博弈 SG函数的证明

博弈论 参考文档 论文Game Threory https://pan.baidu.com/s/11P_rF5ZO-FuTPiNtjxcBlw 论文翻译 https://blog.youkuaiyun.com/strangedbly/article/details/51137432 适用范围 适用于 Impartial Combinatorial Games 游戏的胜负仅仅取决于当前状态, 与谁在玩不一样...

海边拾贝,沧海一粟 1168

ZOJ 3529 A Game Between Alice and Bob 博弈好题

A Game Between Alice and Bob Time Limit: 5 Seconds      Memory Limit: 262144 KB Alice and Bob play the following game. A series of numbers is written on the blackboard. Alice and Bob take tur

hnust_xiehonghao的专栏 1892
上一篇: [树的dfs] Codeforces 717 E. Paint it really, really dark gray
下一篇: [数论][Lucas定理] 51Nod 1778 小Q的集合
Vectorxj
博客等级 码龄11年 35粉丝 231原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值