D - Stone Division HackerRank - stone-division (博弈+搜索)
题目链接:https://cn.vjudge.net/problem/HackerRank-stone-division
题目大意:给你n,m,然后是m个数。每一次你可以选择一个a[i],如果能被n整除,然后n就被分成了a[i]堆,每一堆有n/a[i]个。问你谁先无法分。
具体思路:对于当前的a[i],如果是偶数的话,那么只要第二个人怎么做,第一个人模仿就行了,这个时候是必胜态。
如果是奇数的话,判断当前单独一堆里面有多少个,然后判断一下这个n是不是必胜的,如果不是,那么先手赢,否则后手赢。
谢谢lxw的讲解
AC代码:
#include<bits/stdc++.h>
using namespace std;
# define ll long long
const int maxn = 2e5+;
ll n,m;
map<ll,bool>sg;
ll a[maxn];
bool dfs(ll t)
{
if(sg.count(t))
return sg[t];
for(ll i=; i<=m; i++)
{
if(t%a[i])
continue;
if((a[i])%==)
{
sg[t]=;
return ;
}
else
{
if(!dfs(t/a[i]))
{
sg[t]=;
return ;
}
}
}
sg[t]=;
return ;
}
int main()
{
scanf("%lld %lld",&n,&m);
for(ll i=; i<=m; i++)
{
scanf("%lld",&a[i]);
}
if(dfs(n))
printf("First\n");
else
printf("Second\n");
return ;
}
D - Stone Division HackerRank - stone-division (博弈+搜索)的更多相关文章
- 【迭代博弈+搜索+剪枝】poj-1568--Find the Winning Move
poj 1568:Find the Winning Move [迭代博弈+搜索+剪枝] 题面省略... Input The input contains one or more test cas ...
- HDUOJ--------A simple stone game(尼姆博弈扩展)(2008北京现场赛A题)
A simple stone game ...
- hdu 4388 Stone Game II sg函数 博弈
Stone Game II comes. It needs two players to play this game. There are some piles of stones on the d ...
- POJ 1740 A New Stone Game(多堆博弈找规律)
传送门 //有n堆,AB轮流从n堆的一堆中移任意个,可以扔掉,也可以移给其他堆中的一堆 //最先移完的胜 //如果n堆中两两堆数目相等,那肯定是B胜 //但只要有非两两相同的,如xyz,A先, //A ...
- SGU 520 Fire in the Country(博弈+搜索)
Description This summer's heat wave and drought unleashed devastating wildfires all across the Earth ...
- B. Sleepy Game 博弈搜索
题意:给一个有向图和起点,然后只有一名选手,这名选手可以随意挪动棋子,最终不能动的时候走过的边为奇数边为Win并输出路径,否则如果有环输出Draw,否则输出Lose; 题目链接 知道状态数最多只有n* ...
- [08山东省选]2298 石子合并 即POJ 1738 An old Stone Game
2298 石子合并 2008年省队选拔赛山东 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 在 ...
- LN : leetcode 399 Evaluate Division
lc 399 Evaluate Division 399 Evaluate Division Equations are given in the format A / B = k, where A ...
- poj 1115 Lifting the Stone 计算多边形的中心
Lifting the Stone Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
随机推荐
- bash 4
1)获取字符串长度: str="jwwjww" #str=‘jwwjww’//单引号双引号都一样 echo ${#str} 结果:6 2)提取子字符串 echo ${#str:1: ...
- mybatis 的批量更新操作sql
转: mybatis 的批量更新操作sql 2018年07月23日 10:38:19 海力布 阅读数:1689 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...
- springmvc跨域上传文件问题
把以下文件放到webapps的root文件夹下: 1.clientaccesspolicy.xml <?xml version="1.0" encoding="ut ...
- 3D游戏的角色移动
* -----英雄的移动控制 * * * * */ using System.Collections; using System.Collections.Generic; using UnityEng ...
- Spring Cloud Netflix Eureka: 多网卡环境下Eureka服务注册IP选择问题
https://blog.csdn.net/neosmith/article/details/53126924 通过源码可以看出,该工具类会获取所有网卡,依次进行遍历,取ip地址合理.索引值最小且不在 ...
- (map,c_str())水果 hdu1263
水果 http://acm.hdu.edu.cn/showproblem.php?pid=1263 Time Limit: 2000/1000 MS (Java/Others) Memory L ...
- Java基础内部类、包的声名、访问修饰符、代码块整理
内部类 14.1内部类概念 将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类.其他类也称为外部类. 内部类分为成员内部类与局部内部类. 我们定义内部类时,就 ...
- jvm_tool jconsole/ jprofiler/ JProbe/ VirtualVm/ TPV/ YourKit/ ITCAM/ MAT/ MDD4J
S 学习jvm,关于MAT an internal error occurred during:"Parsing heap dump" from问题 https://www.cnb ...
- 5、JPA-映射-单向多对一
多个订单对应一个用户 实体类 Customer package com.jpa.yingshe; import javax.persistence.*; @Table(name = "JPA ...
- samba服务器之无认证进入共享目录
修改设备中的/log/samba/lib/smb.conf文件 security = share [web] ...