POJ 2311 Cutting Game(SG+记忆化)
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std; int sg[205][205];
bool vis[300]; int get_sg(int n,int m)
{
if(sg[n][m]!=-1)
return sg[n][m]; for(int i=2;i<=n-i;i++)
vis[get_sg(i,m)^get_sg(n-i,m)]=1;
for(int i=2;i<=m-i;i++)
vis[get_sg(n,i)^get_sg(n,m-i)]=1;
for(int i=0; ;i++)
if(!vis[i])
return sg[n][m]=i;
} int main()
{
int n,m;
memset(sg,-1,sizeof(sg));//放while外面,也相当于记忆化了 数据后面可以用
sg[2][2]=sg[3][2]=sg[2][3]=0;
while(~scanf("%d%d",&n,&m))
{
memset(vis,0,sizeof(vis));
// printf("%d\n",get_sg(n,m));
if(get_sg(n,m))
printf("WIN\n");
else printf("LOSE\n");
}
return 0;
}
POJ 2311 Cutting Game(SG+记忆化)的更多相关文章
- POJ 2311 Cutting Game(SG函数)
题目描述 意思就是说两个人轮流剪纸片,直到有一个人剪出1*1的方格就算这个人赢了.然后给出纸片的长和宽,求先手会赢还是会输 (1<=n,m<=200) 题解 看了一眼,这不是裸的SG吗 啪 ...
- POJ 2311 Cutting Game (Multi-Nim)
[题目链接] http://poj.org/problem?id=2311 [题目大意] 给出一张n*m的纸,每次可以在一张纸上面切一刀将其分为两半 谁先切出1*1的小纸片谁就赢了, [题解] 如果切 ...
- poj 3249 Test for Job (记忆化深搜)
http://poj.org/problem?id=3249 Test for Job Time Limit: 5000MS Memory Limit: 65536K Total Submissi ...
- poj 3249(bfs+dp或者记忆化搜索)
题目链接:http://poj.org/problem?id=3249 思路:dp[i]表示到点i的最大收益,初始化为-inf,然后从入度为0点开始bfs就可以了,一开始一直TLE,然后优化了好久才4 ...
- poj 1661 Help Jimmy(记忆化搜索)
题目链接:http://poj.org/problem?id=1661 一道还可以的记忆化搜索题,主要是要想到如何设dp,记忆化搜索是避免递归过程中的重复求值,所以要得到dp必须知道如何递归 由于这是 ...
- poj 1085 Triangle War 博弈论+记忆化搜索
思路:总共有18条边,9个三角形. 极大极小化搜索+剪枝比较慢,所以用记忆化搜索!! 用state存放当前的加边后的状态,并判断是否构成三角形,找出最优解. 代码如下: #include<ios ...
- poj 1088 动态规划+dfs(记忆化搜索)
滑雪 Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Description Mi ...
- POJ 1579 Function Run Fun 记忆化递归
典型的记忆化递归问题. 这类问题的记忆主要是利用数组记忆.那么已经计算过的值就能够直接返回.不须要进一步递归了. 注意:下标越界.递归顺序不能错,及时推断是否已经计算过值了,不要多递归. 或者直接使用 ...
- poj 1579(动态规划初探之记忆化搜索)
Function Run Fun Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 17843 Accepted: 9112 ...
随机推荐
- D3.js
html代码: <div id="id"> <p>Apple</p> <p id="aa">Pear</p ...
- Cg(C for Graphic)标准函数库之数学函数与几何函数
和 C 的标准函数库类似, Cg 提供了一系列内建的标准函数.这些函数用于执行数学上的通用计算或通用算法(纹理映射等),例如,需要求取入射光线的反射光线方向向量可以使用标准函数库中的 reflect ...
- ap143 添加复位和重启按钮
1.修改匹配的文件mach-ap143.c 定义按键对应的GPIO(根据原理图来) #define AP143_GPIO_BTN_RESET 12 添加按钮的初始化消息 注册定时轮询按钮动作的函数 2 ...
- vim实用技巧总结
1. 单个文件内实用mark来帮助跳转以及一些宏操作.(注意:mark不能用于多文件之间的跳转)mch 设置宏,保存到ch标记(不是ch寄存器)'ch 跳转到标记的行首`ch 跳转到标记的字符处另:为 ...
- New : HTML5 中的新标签
基础 标签 描述 <!DOCTYPE> 定义文档类型. <html> 定义 HTML 文档. <title> 定义文档的标题. <body> 定义文档 ...
- Linux网络管理之net-tools VS iproute2
查看网卡及IP ifconfig ip link [show] --------- ifconfig -a ip addr show 激活和停止网络接口 ifconfig eth0 up/down i ...
- java操作mongodb——插入数据
在mongodb中,表(Table)被称之为集合(Collection),记录(Record)被称为文档(Document) 首先连接到数据库 MongoClient mongoClient = ne ...
- AC自动机(AC automation)
字典树+KMP 参考自: http://www.cppblog.com/mythit/archive/2009/04/21/80633.html ; //字典大小 //定义结点 struct node ...
- ajax中的stasus错误详解
一.英文版解析 0: (Uninitialized) the send( ) method has not yet been invoked. 1: (Loading) the send( ) met ...
- Chapter 16_5 单一方法
当一个对象只有一个方法时,可以不用创建接口table,但是要将这个单独的方法作为对象来返回.可以参考迭代器那一节,是如何构造一个迭代器函数,那个函数将状态保存为closure. 一个具有状态的迭代器是 ...