提议分析:

  1 <= N <= 4747

很明显应该不会有规律的,打表发现真没有

按题意应该分成两种情况考虑,然后求其异或(SG函数性质)

  (1)找出单独的一个(一列中只有一个)

  (2)找出连续的两个都没有涂色的求SG值(打表)

#include<stdio.h>
#include<string.h>
#define Max 4750
int dp[Max];
int mex[Max];
int flag[Max];
void Gsdp()
{
int i,j;
int l,r;
dp[]=;
dp[]=;
for(i=; i<Max; i++)
{
for(j=; j<=i; j++)
{
l=j-;
r=i-j;//分成左中右
mex[dp[l]^^dp[r]]=i;//涂色1
if(j+<=i)
{
l=j-;
r=i-(j+);
mex[dp[l]^dp[r]]=i;//涂色2*2
}
}
//for(j=0; mex[j]==i; j++)少了分号
j=;
while(mex[j]==i)j++;
dp[i]=j;
}
//printf("#%d\n",dp[13]);
}
int main()
{
int t,n,m,ans;
int x,y;
int i,j,k;
Gsdp();
scanf("%d",&t);
for(i=; i<=t; i++)
{
scanf("%d %d",&n,&m); memset(flag,,sizeof(flag));
for(j=; j<=m; j++)
{
scanf("%d %d",&x,&y);
flag[y]++;
}
int tmp2=,tmp1=;
ans=;
for(j=;j<=n;j++)
{
if(flag[j]==)tmp1++;//单独一个
if(!flag[j])tmp2++;
else
{
ans^=dp[tmp2];
tmp2=;
}
}
ans=ans^(tmp1%)^dp[tmp2];
printf("Case %d: ",i);
if(ans)printf("Alice\n");
else printf("Bob\n");
}
}

hdu 4559 涂色游戏(对SG函数的深入理解,推导打SG表)的更多相关文章

  1. hdu 4559 涂色游戏(SG)

    在一个2*N的格子上,Alice和Bob又开始了新游戏之旅. 这些格子中的一些已经被涂过色,Alice和Bob轮流在这些格子里进行涂色操作,使用两种涂色工具,第一种可以涂色任意一个格子,第二种可以涂色 ...

  2. hdu 4559 涂色游戏 博弈论

    构造SG函数:sg[i]表示2*i的sg值!! 代码如下: #include<iostream> #include<stdio.h> #include<algorithm ...

  3. NOIp十连测 涂色游戏

    [问题描述]小A 和小B 在做游戏.他们找到了一个n 行m 列呈网格状的画板.小A 拿出了p 支不同颜色的画笔,开始在上面涂色.看到小A 涂好的画板,小B 觉得颜色太单调了,于是把画板擦干净,希望涂上 ...

  4. [CSP-S模拟测试]:涂色游戏(DP+组合数+矩阵快速幂)

    题目描述 小$A$和小$B$在做游戏.他们找到了一个$n$行$m$列呈网格状的画板.小$A$拿出了$p$支不同颜色的画笔,开始在上面涂色.看到小$A$涂好的画板,小$B$觉得颜色太单调了,于是把画板擦 ...

  5. LYDSY模拟赛day3 涂色游戏

    /* 非常好的题 */ #include <cstdio> #include <iostream> #include <cstdlib> #include < ...

  6. 联赛模拟测试5 涂色游戏 矩阵优化DP

    题目描述 分析 定义出\(dp[i][j]\)为第\(i\)列涂\(j\)种颜色的方案数 然后我们要解决几个问题 首先是求出某一列涂恰好\(i\)种颜色的方案数\(d[i]\) 如果没有限制必须涂\( ...

  7. 【矩阵乘优化DP】涂色游戏

    题目大意 用 \(p\) 种颜色填 \(n\times m\) 的画板,要求任意相邻两列的颜色数都不少于 \(q\) ,求方案数. 数据范围 \(1\leq n\leq 100,1\leq m\leq ...

  8. [NOI Online #2 提高组]涂色游戏 题解

    题目描述 你有 1020 个格子,它们从 0 开始编号,初始时所有格子都还未染色,现在你按如下规则对它们染色: 编号是 p1 倍数的格子(包括 0号格子,下同)染成红色. 编号是 p2 倍数的格子染成 ...

  9. Wannafly挑战赛23 T2游戏 SG函数

    哎,被卡科技了,想了三个小时,最后还是大佬给我说是\(SG\)函数. \(SG\)函数,用起来很简单,证明呢?(不可能的,这辈子都是不可能的) \(SG\)定理 游戏的\(SG\)函数就是各个子游戏的 ...

随机推荐

  1. Swift 中的利刃,函数和闭包

    input[type="date"].form-control,.input-group-sm>input[type="date"].input-grou ...

  2. 未能加载文件或程序集“System.Web.Razor”或它的某一个依赖项。文件或目录损坏且无法读取。

    “/”应用程序中的服务器错误. 未能加载文件或程序集“System.Web.Razor”或它的某一个依赖项.文件或目录损坏且无法读取. (异常来自 HRESULT:0x80070570) 说明: 执行 ...

  3. start apache2 failed in Ubuntu

    Invalid command 'WSGIReloadMechanism', perhaps misspelled or defined by a module not included in the ...

  4. 查看BADI有哪些实现

    TCODE:SE18

  5. mysql 字段编码该为utf8mb4

    alter table c_comment modify column content varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unico ...

  6. nodeJs事件之监听移除事件

    var EventEmitter=require('events').EventEmitter var life=new EventEmitter(); //comfort 求安慰,函数名: //fo ...

  7. 【Reorder List】cpp

    题目: Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do ...

  8. mysql的简单主从复制(ubuntu)

    环境:两台ubuntu 12.04.5 虚拟机    mysql-server-5.5 master (192.168.240.130) slave (192.168.240.129) (1)查看二进 ...

  9. android 自动化压力测试-monkey 2 获取程序包名

    monkey 1 中我们写到: C:\Users\chenshan>adb shell shell@hwG750-T20:/ $ monkey -p cn.emoney.acg -v 500 说 ...

  10. 老陈 WPF

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...