hdu 2999 Stone Game, Why are you always there? (简单SG,有个优化)
题意:
一排石头,个数是K。
有n个数,a1...an。
每人每次取石子只能取连续的x个。x属于a1...an的一个。
没法取者负。
思路:
简单的SG。但是TLE!后面加了一个优化~这个优化不好想到吧,看了别人的代码才发现的。就是把a1...an中重复的去掉!。。。
直接看代码。
代码:
int sg[1005];
int n,m,k;
int a[105]; int dfs(int x){
if(sg[x]!=-1)
return sg[x];
bool vis[1005]={0};
rep(i,1,n){
if(x<a[i]) break;
for(int j=1;j+a[i]-1<=x;++j){
int t1=0;
t1=t1^dfs(j-1);
t1=t1^dfs(x-j-a[i]+1);
vis[t1]=true;
}
}
for(int i=0;;++i){
if(!vis[i]){
return sg[x]=i;
}
}
}
int main(){
while(scanf("%d",&n)!=EOF){
rep(i,1,n) scanf("%d",&a[i]);
sort(a+1,a+1+n); ///去重,时间一下缩短一半,这数据....
int t1=0; int b[105]; b[0]=-1;
rep(i,1,n) if(a[i]!=b[t1]) b[++t1]=a[i];
n=t1;
rep(i,1,n) a[i]=b[i]; scanf("%d",&m);
mem(sg,-1);
while(m--){
scanf("%d",&k);
if(!dfs(k))
puts("2");
else
puts("1");
}
}
}
hdu 2999 Stone Game, Why are you always there? (简单SG,有个优化)的更多相关文章
- hdu 2999 Stone Game, Why are you always there? 博弈论
SG函数应用!! 代码如下: #include<cstdio> #include<cstring> #include<iostream> #include<c ...
- Stone Game, Why are you always there? HDU - 2999(sg定理)
题意:给你n个数的集合,表示你每次取石子只能为集合里的数,然后给你一排石子,编号为1~n,每次你可以取相邻位置的连续石子(数量只能为集合里的数),注意石子的位置时不变的,比如把2拿走了,1和3还是不相 ...
- Stone Game, Why are you always there? HDU - 2999
题目链接:https://vjudge.net/problem/HDU-2999 题意:有N堆石头,两个人交替取,每次只能取连续的k个石子,最后没有石子取得人输. 思路:如果我们每次取靠边的k个,那么 ...
- hdu 1729 Stone Game
Stone Game HDU - 1729 题意: 给定n个箱子,每个箱子的容量为si,每个箱子里最初有ci个石子,每次放入石子不能超过放入前的石子数的平方,谁无法继续放入石子就算输. /* 这是 ...
- hdu 4388 Stone Game II
Stone Game II HDU - 4388 题目大意: 给出n堆物品,每堆物品都有若干件,现在A和B进行游戏,每人每轮操作一次,按照如下规则: 1. 任意选择一个堆,假设该堆有x个物品,从中选择 ...
- HDU 4764 Stone(博弈)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4764 题目大意:Tang和Jiang玩石子游戏,给定n个石子,每次取[1,k]个石子,最先取完的人失败 ...
- 2013长春网赛 1006 hdu 4764 Stone(巴什博弈)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4764 题意:Tang 和 Jiang 玩一个游戏,轮流写下一个数,Tang先手,第一次Tang只能写[ ...
- HDU 4764 Stone (2013长春网络赛,水博弈)
Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- HDU 4388 Stone Game II 博弈论 找规律
http://acm.hdu.edu.cn/showproblem.php?pid=4388 http://blog.csdn.net/y1196645376/article/details/5214 ...
随机推荐
- phpstrom 在smarty 中tpl模版注释怎么修改?
{*<div class="col-sm-10">*} phpstorm注释tpl文件代码为上面,但是这个不符合本框架的注释方式,会报错,需要调整为: <!-- ...
- 🤩全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👻002 # 第二单元 常量,变量,数据类型 #
一.本单元知识点概述 二.本单元目标 (Ⅰ)重点知识目标 1.定义出各种数据类型的变量2.理解自动类型提升3.理解强制类型转换 (Ⅱ)能力目标 1.能够定义出所有类型的常量 2.理解Java中的基本数 ...
- nginx 常用教程网址
nginx rewrite比较齐全的教程 http://www.bubuko.com/infodetail-1810501.html
- CF1556E-Equilibrium【栈,树状数组】
正题 题目连接:https://codeforces.com/contest/1556/problem/E 题目大意 两个长度为\(n\)的序列\(a,b\),\(q\)次询问一个区间\([l,r]\ ...
- 高级测试必备技能,Jenkins
Jenkins安装 前言 Jenkins是一个广泛用于持续构建的可视化web工具,就是各种项目的的"自动化"编译.打包.分发部署,将以前编译.打包.上传.部署到Tomcat中的过程 ...
- cron表达式的双重人格:星期和数字到底如何对应?
写在前面 cron在希腊语中是时间的意思,而cron表达式(cron expression)则是遵循特定规则,用于描述定时设置的字符串,常用于执行定时任务.本文总结了不同环境(如平台.库等)下,cro ...
- VUE -input输入框字母转大写
示例: 输入自动转--->大写 <input type="text" placeholder="请输入证件号码" maxlength="1 ...
- 使用python -m pip install 和 pip install 安装包有什么区别?
如果去看源码的话,你会发现 pip 作为执行文件的入口点是 pip._internal.main. 另一方面,pip 作为模块运行时入口是 _main.py,而该模块也只是调用 pip.interna ...
- 一个神秘的oj2093 花园的守护之神(最小割)
给定一张无向图,你每次可以将一条路的权值增加1,询问最少增加多少次才会使得\(s->t\)的最短路改变 QwQ一看到这个题,我就用种最小割的感觉 我们可以把最短路上的点取出来,然后做最小割呀!! ...
- SpringBoot入门03-转发到Thymeleaf
前言 Spring Boot不提倡使用jsp和用View层,而是使用Thymeleaf代替jsp,因为性能可以得到提升. 使用Thymeleaf要加入依赖 Thymeleaf不能直接被访问,它严格遵守 ...