
BZOJ3492: PA2012 Binary Dodgeball
发布日期:2021-05-06 03:50:34
浏览次数:27
分类:技术文章
本文共 1425 字,大约阅读时间需要 4 分钟。
感谢YJQ和visitWorld两位打野..
画个图发现是个Nim游戏
然后发现是个数位DP..#include#include #include using namespace std;#define ll long longll DP[51][4][81][2];ll check(ll max){ ll base=1ll<<49; memset(DP,0,sizeof(DP)); DP[0][0][0][1]=1; for(int i=1;i<=50;i++,base>>=1) for(int k=0;k<=63;k++) { if(i==48&&k==2) i++,i--; if(base&max)DP[i][3][k][1]=DP[i-1][3][k][1]+DP[i-1][1][k][1]; else DP[i][2][k][1]=DP[i-1][3][k^(50-i)][1]+DP[i-1][1][k^(50-i)][1]; if(base&max) DP[i][1][k][1]=DP[i-1][0][k^(50-i)][1]+DP[i-1][2][k^(50-i)][1]; else DP[i][0][k][1]=DP[i-1][0][k][1]+DP[i-1][2][k][1]; DP[i][3][k][0]=DP[i-1][3][k][0]+DP[i-1][1][k][0]; DP[i][1][k][0]=DP[i-1][2][k^(50-i)][0]+DP[i-1][0][k^(50-i)][0]; DP[i][2][k][0]=DP[i-1][1][k^(50-i)][0]+DP[i-1][3][k^(50-i)][0]+ ((base&max)?DP[i-1][1][k^(50-i)][1]+DP[i-1][3][k^(50-i)][1]:0); DP[i][0][k][0]=DP[i-1][2][k][0]+DP[i-1][0][k][0]+ ((base&max)?DP[i-1][2][k][1]+DP[i-1][0][k][1]:0); } int i=50; return DP[i][0][0][0]+DP[i][1][0][0]+DP[i][3][0][0]+DP[i][2][0][0]+ DP[i][0][0][1]+DP[i][1][0][1]+DP[i][3][0][1]+DP[i][2][0][1]-1;}int main(){ ll k; scanf("%lld",&k); ll R=1ll<<48,T,Mid,L=1; ll Ta=check(10); while(L >1; if((T=check(Mid))
发表评论
最新留言
很好
[***.229.124.182]2025年04月17日 05时09分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
针对单个网站的渗透思路
2019-03-05
Typescript 学习笔记六:接口
2019-03-05
Scala字符串与容器
2019-03-05
关于JTAG,你知道的和不知道的都在这里
2019-03-05
【CTF】CTFHub 技能树 文件头检查 writeup
2019-03-05
web服务器-并发服务器2
2019-03-05
【SqlServer】如何把本地SqlServer数据库部署到远程服务器上
2019-03-05
【ASP.NET】ASP.NET中权限验证使用OnAuthorization实现
2019-03-05
第9章 用户自己建立数据类型
2019-03-05
02、MySQL—数据库基本操作
2019-03-05
RedHat Linux-配置YUM仓库
2019-03-05
Redis数据类型
2019-03-05
1907: 树的路径覆盖
2019-03-05
OpenJDK1.8.0 源码解析————HashMap的实现(一)
2019-03-05
MySQL-时区导致的时间前后端不一致
2019-03-05
2021-04-05阅读小笔记:局部性原理
2019-03-05
将Java编译为本地代码
2019-03-05
go语言简单介绍,增强了解
2019-03-05
2.1 Kubernetes--Pod
2019-03-05