SHUOJ 418 丢史蒂芬妮 【记忆化搜索】
来源:互联网 发布:php秒杀系统 编辑:程序博客网 时间:2024/06/05 00:53
点击打开链接
有一天,空和白很无聊,决定玩盛大游戏,考虑到两个人玩,他们随便掏了一个游戏出来:在一个
白说,这是一个垃圾游戏!我们每次把史蒂芬妮丢素数个位置吧!(换句话说,每次丢
我们都知道,空和白都很聪明,不管哪方存在一个可以必胜的最优策略,都会按照最优策略保证胜利。
玩了一局,空已经知道了这个游戏的套路,现在他决定考考你,对于给定的
第一行有一个T表示数组组数,
从第二行开始,每行为棋盘大小,
对于每组数据,按题目要求输出。
复制
41 12 210 1030 30
ShiroShiroShiroSora
记忆话搜索:
最简单想到的,就是递推了吧,只要一步能到达该状态的状态有一个必败,那么该状态必胜。
然后依次把搜过的存起来。打表。
#include<iostream>#include<stdio.h>#include<string.h>#define ll long longusing namespace std;const int maxn=505;const long N = 500;int dp[maxn][maxn],v[maxn][maxn];int m,n;int prime[N] = {0},num_prime = 0;int isNotPrime[N] = {1, 1};void shai(){ for(int i = 2 ; i < N ; i ++){ if(! isNotPrime[i]) prime[num_prime ++]=i; for(int j = 0 ; j < num_prime && i * prime[j] < N ; j ++){ isNotPrime[i * prime[j]] = 1; if( !(i % prime[j] ) ) break; } }}int dfs(int x,int y){ if(v[x][y]) return dp[x][y]; v[x][y]=1; for(int i=0;i<num_prime;++i){ if(x-prime[i]>0) dp[x][y]|=!dfs(x-prime[i],y); if(y-prime[i]>0) dp[x][y]|=!dfs(x,y-prime[i]); if(x-prime[i]>0&&y-prime[i]>0) dp[x][y]|=!dfs(x-prime[i],y-prime[i]); } return dp[x][y];}int main(){ shai(); for(int i=1;i<=500;++i) for(int j=1;j<=500;++j) dfs(i,j); int t; scanf("%d",&t); while(t--){ scanf("%d %d",&n,&m); if(dp[n][m]) puts("Sora"); else puts("Shiro"); } return 0;}
阅读全文
0 0
- SHUOJ 418 丢史蒂芬妮 【记忆化搜索】
- 记忆化搜索例题
- PKU1088---记忆化搜索
- PKU1088 记忆化搜索
- HDU1078 记忆化搜索
- HDU1501 记忆化搜索
- HDU1978 记忆化搜索
- poj1661 记忆化搜索
- zoj1107记忆化搜索
- poj1191(记忆化搜索)
- 滑雪 记忆化搜索
- hdu3779---记忆化搜索
- hdu2452---记忆化搜索
- 【记忆化搜索】滑雪
- 记忆化搜索 HDU1501
- 记忆化搜索,poj1088
- poj1088(记忆化搜索)
- 论记忆化搜索
- Java中类加载机制与反射
- TOJ 3471.Happy XiaoXiao Guo
- linux下离线安装mariadb(mysql)二进制包
- hellocharts-android图表库之柱状图:ColunmChartView
- Python_django_forget_account_and_password
- SHUOJ 418 丢史蒂芬妮 【记忆化搜索】
- redis在linux环境下配置
- Lucene学习(2)------VS2015
- 下载并启动Jenkins报错
- ios-无限轮播器
- Velocity布局(layout)介绍
- MySQL存在时更新,否则新增
- android客户端从服务器端获取json数据并解析
- Win10x64安装Dolby