关闭
当前搜索:

[Anti-Nim Anti-SG SJ定理] BZOJ 1022 [SHOI2008]小约翰的游戏John

我们直接分析吧 Nim博弈中如果规定最后取光者输,情况是怎样的? 初看起来问题要复杂很多(因为不能主动拿了,而要“躲着”拿,以免拿到最后一个物品),但对于Nim游戏来说,几乎是一样的:首先按照普通规则一样的策略进行,直到恰好有一个物品数大于1的堆x。在这样的情况下,只需要把堆x中的物品拿得只剩1个物品或者拿完,让对手面临奇数堆物品,这奇数堆物品每堆恰好1个物品。这样的状态显然是必败的。由于...
阅读(223) 评论(0)

[Every-SG 找规律] BZOJ 1393 [Ceoi2008]knights

题目 还是看官网吧 我们先分析单个游戏 nn很大 我们打表找规律 发现很有规律 最后一行一列要特判 写出来就是这样啦inline int SG(int x,int y){ if ((x%4==1||x%4==2)&&(y%4==1||y%4==2)) return 0; if (n%4==1 && ((x==n&&y!=n-1)||(y==n&&x!=n-1))) retur...
阅读(214) 评论(0)

[海盗分金] HDU 1538 A Puzzle for Pirates

久闻大名的海盗分金问题 详见HDU 1538 A Puzzle for Pirates(经典的海盗分金推理)#include #include #include #define read(x) scanf("%d",&(x)) using namespace std;int fac[]={1,2,4,8,16,32,64,128,256,51...
阅读(162) 评论(0)

[点阵图同构 Hash] POJ 1021 2D-Nim

做博弈做着做着做到了这样一道题 汗 对于每个连通块hash一下 大概有两种方法 连通块内两两距离的平方和 每个点向四个方向最多能走的距离的平方和的和 具体 我没写过...
阅读(192) 评论(0)

[Multi-SG] POJ 3537 Crosses and Crosses & BZOJ 2940 [Poi2000]条纹

Multi-SG模型是指一个单一游戏又可以分裂成多个游戏 实际上并没有改变SG函数的实质 单一游戏的SG值是 它能分裂成的多个游戏的nim和 的mex 记忆化搜索下就好了POJ 3537画叉叉:两人在1*N的格子纸上轮流打叉,最先打出连续3个叉者获胜,问必胜者是谁?#include #include #include #include<c...
阅读(171) 评论(0)

[阶梯博弈] POJ 1704 Georgia and Bob

这个对于两两之间的距离看做一堆石子 这就相当于是一个阶梯博弈 对于阶梯博弈 相当于几个奇数堆的石子在做Nim 因为把偶数堆移到奇数堆 那可以再移到偶数堆 对局面不造成影响#include #include #include using namespace std;const int N=1005; int n,a[N];int main(...
阅读(127) 评论(0)

[删边游戏] POJ 3710 Christmas Game

详见组合游戏略述——浅谈SG游戏的若干拓展及变形 贾志豪 可证 叶子节点的 SG 值为 0 中间节点的 SG 值为它的所有子节点的 SG 值加 1 后的异或和对于这道题 通过分析发现了如下奇妙的性质: 对于长度为奇数的环,去掉其中任意一个边之后,剩下的 两个链长度同奇偶,抑或之后的 SG 值不可能为奇数,所 以它的 SG 值为 1 对于长度为偶数的环,去掉其中任意一个边之后,剩下的...
阅读(495) 评论(0)

[巴什博弈] HDU 2149 Public Sale & HDU 1847 Good Luck in CET-4 Everybody! & HDU 4764 Stone

2149简单的巴什博弈 需要抢占k+1k+1的倍数#include using namespace std;int main(){ freopen("t.in","r",stdin); freopen("t.out","w",stdout); int m,n; while (~scanf("%d%d",&m,&n)){ if (m<=n){ for...
阅读(281) 评论(0)

[圆的反演] HDU 4773 Problem of Apollonius

反演详见ACdreamer的blog反演的基本性质 不过反演中心的一条直线反演成一个过反演中心圆 反之亦然 不过反演中心的一个圆反演成另一个不过反演中心的圆 那题目就很显然了先把两个圆反演 变成两个圆 在求公切线 再反演回去可能用到的几何方法 两圆的公切线 两个相交圆的交点 最后上几张图 #include #include #include<algorith...
阅读(245) 评论(0)

[替罪羊树 动态点分治 替罪羊式重构] BZOJ 3435 [Wc2014]紫荆花之恋 & UOJ #55 【WC2014】紫荆花之恋

网上题解都说的很详细了吧 考虑点分治 dist(i,j)≤Ri+Rjdist(i,j) ≤ R_i+R_j 可以转化成Dj−Rj≤Ri−DiD_j-R_j ≤ R_i-D_i 其中DiD_i表示到重心的距离 开两颗平衡树维护 一颗统计 一颗去重 然后 因为要动态加点 点分树的性质不能保证 所以当一个子树的大小超过某个阈值时 就把点分树替罪羊式重构下 说起来真轻巧#include<cs...
阅读(260) 评论(0)

[带标号DAG计数 容斥原理 多项式求逆 多项式求ln] COGS 有标号的DAG计数系列

题目链接 传送门I 传送门II 传送门III 传送门IV 题解戳这里 大致解法和思想是同这里一样的DAG1找出一个入度为00的点 那么答案为C1n∗21∗(n−1)∗fn−1C_n^1*2^{1*(n-1)}*f_{n-1} 但是一张DAG里会有多个入度为00的点会重复计数 考虑容斥 得到 fn=∑k=1n−1k−1∗Ckn∗2k∗(n−k)∗fn−kf_n=\sum_{k=1}^n -1...
阅读(350) 评论(0)

[FFT 模板题] UOJ #34 多项式乘法

主要就是想看看自己能写的多快 结果并不快#include #include #include #include using namespace std; typedef double ld;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p...
阅读(174) 评论(0)

[Bell数] HDU 4767 Bell & BZOJ 3501 PA2008 Cliquers Strike Back

ACdreamer大牛的详细介绍Bell数 大概是这样的 有递推公式 可以分治FFT求 生成函数很优美 可以用多项式科技求 是第二类斯特林数的和 可以用Bell三角形预处理 神奇的同余性质 可以计算对小质数取模的值 也可以CRT合并 这里的p是不大于100的素数 模素数p的周期 这里就是求bell模一个数的值 可以发现 95041567=31∗37∗41∗43∗4795041567 = 31*...
阅读(211) 评论(0)

[DP] BZOJ 1974 [Sdoi2010]auction 代码拍卖会 & 51Nod 1261 上升数

tls的题解 关键在于 对于一个上升数 比如 1123445 我们习惯性的把他纵向切割 1 1 2 3 4 4 5 但是只要我们转变一下 横向切割 变成 1111111+11111+1111+111+1 就会发现一些很好的性质 首先 最多被切割成9段 然后这些形似1111⋯1111\cdots的数取模肯定是有循环节的 把余数相同的合并成一组 做一个分组背包 记得因为10k−1910^{k...
阅读(233) 评论(0)

[可持久化可并堆 || ST表 点分治] BZOJ 3784 树上的路径

显然是用堆来维护 每弹出一个解 加入其后继 怎么定义后继 经典做法是点分后维护一个类似超级钢琴的东西 首先对这棵树进行点分治,在分治的时候将所有点到根的距离依次放入一 个数组qq中 对于一棵子树里的点,合法的路径一定是qlql到qrqr的某个数加上自己到重心的距离 定义五元组(v,l,m,r,w)(v,l,m,r,w),表示当前路径长度为vv,在[l,r][l,r]里选出最...
阅读(234) 评论(0)

[乱搞] Codeforces 73E Beta Round #66 E. Morrowindows

远古乱搞题 我们发现选择一个aia_i可以在所有aia_i的倍数后面切一刀 表示把他们分开了 那么我们的目标是 所有的数后面都得被切至少一刀 我们发现质数要被切显然只能选他本身 而我们选所有质数 也肯定是最少的 然后 就做完了 坑点多多 我是败在没有特判ai=1a_i=1上 其实还有aia_i有重复吧?#include #include #include...
阅读(117) 评论(0)

[乱搞] BZOJ 1141 [POI2009]Slw

这也算个神题吧 也只有POI出的出来了 Po姐的题解很详细就不多说了#include #include #include using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+...
阅读(153) 评论(0)

[Polya计数] BZOJ 3202 [Sdoi2013]项链

大数论题 可以分成三部分解决 求合法的珠子的方案数 这个可以用反演解决 求本质不同的项链 这个直接Polya 要求相邻不能相同 这个可以递推出每个长度的环的方案数 但是不够快 可以直接求出通项 这里有篇超具体的题解 我就懒得一步步具体写了 数学公式太多绝对是大工程 最后有个小trick n>Pn>P 那么nn可能是PP的倍数 那么就没有逆元 那么我们先模P2P^2 如果nn是PP的倍数...
阅读(173) 评论(0)

[母函数 泰勒展开] BZOJ 3028 食物

这个神题汉堡=x0+x2+x4+⋯=11−x2x^0+x^2+x^4+\cdots={1 \over {1-x^2}} 蜜桃=x1+x3+x5+⋯=x1−x2x^1+x^3+x^5+\cdots={x \over {1-x^2}} 面包=x0+x3+x6+⋯=11−x3x^0+x^3+x^6+\cdots={1 \over {1-x^3}} 鸡块=x0+x4+x8+⋯=11−x4x^0+x^4...
阅读(192) 评论(0)

[Polya计数] SPOJ 422 TRANSP2 - Transposing is Even More Fun

以下来自JYT的ppt n个点的环 m种颜色 本质不同的染色为 ∑d|nϕ(nd)∗fd\sum_{d|n} {\phi ({n \over d })*f_d}#include #include #include using namespace std; typedef long long ll;inline char nc()...
阅读(330) 评论(0)
65条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:307461次
    • 积分:12383
    • 等级:
    • 排名:第1310名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:54条
    最新评论