题解 伊甸园日历游戏
这是一道SGSGSG函数的板子题。不知道的自行百度。
然后就是痛快的SGSGSG函数AC。
#include<bits/stdc++.h>
using namespace std;
int SG[2221220];//等于1是对手下了这里有必胜策略
int Y,M,D;
const int inf =2221219;
inline int js(register int y,register int m,register int d){return (y-1899)*10000+m*100+d;
}
inline bool pd(register int y,register int m,register int d){if(y>=2002)return false;if(y>=2001&&m>=11&&d>4)return false;if(y<1900)return false;if(m>12)return false;if(m<=0)return false;if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){if(d>=32)return false;else return true;}if(m==4||m==6||m==9||m==11){if(d>=31)return false;else return true;}if(m==2&&y%4==0&&y!=1900){if(d>=30)return false;else return true;}if(m==2&&d>=29)return 0;return 1;
}
inline int jf(register int y,register int m,register int d){if(pd(y,m,d+1)){return js(y,m,d+1);}if(pd(y,m+1,1)){return js(y,m+1,1);}if(pd(y+1,1,1))return js(y+1,1,1);return inf;
}
inline int bf(register int y,register int m,register int d){if(pd(y,m+1,d)){return js(y,m+1,d);}if(m==12)if(pd(y+1,1,d))return js(y+1,1,d);return inf;
}
inline int mex(register int a){if(a==0)return 1;else return 0;
}
inline int mex2(register int a,register int b){if(a>b)swap(a,b);if(a>=1)return 0;if(b==1)return 2;else return 1;
}
int main(){//freopen("calendar.in","r",stdin);//freopen("calendar.out","w",stdout);ios::sync_with_stdio(0);int T;cin>>T;while(T--){cin>>Y>>M>>D;memset(SG,1,sizeof(SG));//SG[2221219]=1;register int STD=js(2001,11,4);SG[STD]=0;for(register int i=2001;i>=Y;--i){for(register int j=12;j>=1;--j){for(register int k=31;k>=1;--k){if(!pd(i,j,k))continue;register int a=jf(i,j,k),b=bf(i,j,k);if(a>STD&&b>STD)continue;if(a>STD){SG[js(i,j,k)]=mex(SG[b]);continue;}if(b>STD){SG[js(i,j,k)]=mex(SG[a]);continue;}SG[js(i,j,k)]=mex2(SG[a],SG[b]);}}}if(SG[jf(Y,M,D)]==0||SG[bf(Y,M,D)]==0){puts("YES");}else puts("NO");}
}
题解 伊甸园日历游戏相关推荐
- P1512 伊甸园日历游戏
题目 题目描述 Adam和Eve玩一个游戏,他们先从1900.1.1到2006.11.4这个日期之间随意抽取一个日期出来.然后他们轮流对这个日期进行操作: 1 : 把日期的天数加1,例如1900.1. ...
- 【2019CSP-J 普及组题解】数字游戏(number),公交换乘(transfer),纪念品(souvenir),加工领奖(work) CSP普及游记
文章目录 T1:数字游戏 题目 CODE T2:公交换乘 题目 CODE T3:纪念品 题目 题解 CODE T4:加工领奖 题目 题解 CODE 关于普及组的想法&游记 T1:数字游戏 题目 ...
- [力扣题解] 174. 地下城游戏 DP
一.题目详情 原题链接:174. 地下城游戏 一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿 ...
- C++题解:数字游戏
题目链接 题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按 ...
- 2022 第十三届蓝桥杯省赛 C/C++ B组 试题与个人题解
2022 第十三届蓝桥杯省赛 C/C++ B组 试题与个人题解 试题A: 九进制转十进制 本题总分:5分 [问题描述] 九进制正整数 (2022), 转换成十进制等于多少? [答案提交] 这是一道结果 ...
- python日历gui_python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例...
PyQt5日期时间控件QDateTimeEdit介绍 QDateTimeEdit是一个允许用户编辑日期时间的控件,可以使用键盘上的上下键头按钮来增加或减少日期的时间值,QDateTimeEdit通过s ...
- 第十四届蓝桥杯第一期模拟赛试题与题解 C++
第十四届蓝桥杯第一期模拟赛试题与题解 C++ 试题 A 题解:位运算 试题 B 题解:日历模拟 试题 C 题解:double 求和 试题 D 题解:枚举 试题 E 题解:二维前缀和 试题 F 题解:两 ...
- 2022年IAA行业品类发展洞察系列报告:内容向APP及休闲游戏的突围
易观分析:易观分析联合穿山甲与巨量算数共同构建IAA发展指数,通过行业规模.内容热度.商业变现的多维数据指标反映行业细分品类的发展情况,对领域季度运行情况.热门品类进行分析解读,助力开发者深入洞察领域 ...
- 友塔游戏运营管培生热招中,划重点+Qamp;A,投递心里有数!
北京/上海 | 小红书社区搜索组招聘多模态/NLP算法实习生 小红书-社区技术部-社区搜索组,主要提供query.笔记特征,辅助搜索/推荐等下游业务.多模态/NLP算法实习生,有留用机会!部门:小红书 ...
- CCF- CSP历年认证考试题目链接+题解总结(持续更新)
CCF- CSP历年认证考试题目链接+题解总结(持续更新ing) 目录 CCF- CSP历年认证考试题目链接+题解总结(持续更新ing) 202206第26次CCF计算机软件能力认证 202203第2 ...
最新文章
- flex伸缩布局盒模型总结
- 数据中心“泡澡”散热,阿里云启用全球最大液冷数据中心支撑双11
- 华为手机怎么隐藏按键图标_华为手机隐藏技巧,一键简单设置,让沟通更加便捷...
- 基于kNN的手写字体识别——《机器学习实战》笔记
- Delphi及C++Builder经典图书一览表(持续更新中2018.01.02)
- MySQL对于表中数据的增删改查
- php分批处理数据,php分批更新数据
- 第三次IT浪潮将使白领收入成倍不均-信息革命
- 数据结构上机实践第14周项目1(2) - 验证算法(分块查找)
- 宽字节UTF-8、多字节互转
- Java简单从文件读取和输出
- Atitit 深入理解耦合Coupling的原理与attilax总结
- 主流Ajax框架介绍
- ifconfig 配置ip,netmask,gw
- airpods删除别人的配对_男女属相最佳婚配表 最准的12生肖配对表
- 吴恩达机器学习______学习笔记记录#八、神经网络---表述
- 【转】阿里巴巴社招内推
- 修改系统时区(基于Debian的系统)--用Enki学Linux系列(15)
- 亲测UEFI启动模式的电脑安装Win10和Ubuntu双系统
- SeetaFace2-master在Windows10 VS2019编译的两种方法