HDU 1404 Digital Deletions
来源:互联网 发布:sql语句exists用法 编辑:程序博客网 时间:2024/06/07 10:13
题目链接:http://acm.hust.edu.cn/vjudge/problem/29195/origin
题意:有一些数,每次操作:1、可以选择一个位置,将其数变为比原来小的非负数。2、如果一个位置是0,可以把包括该位置以内以及所有右边的数去掉。不能操作的人输。
思路:长度不超过6,因为可以先打一个状态表。注意一点,如果第一个位置是0,那么先手必胜,而且打表取数时也不可以把第一个位置取为0(否则必败)。
#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <cstdlib>#include <iostream>#include <algorithm>#include <stack>#include <map>#include <set>#include <vector>#include <sstream>#include <queue>#include <utility>using namespace std;#define rep(i,j,k) for (int i=j;i<=k;i++)#define Rrep(i,j,k) for (int i=j;i>=k;i--)#define Clean(x,y) memset(x,y,sizeof(x))#define LL long long#define ULL unsigned long long#define inf 0x7fffffff#define mod 100000007bool f[1000009];void init(){ f[0] = true; int digit[10]; int v[10]; int temp,len; int now; v[1] = 1; rep(i,2,6) v[i] = v[i-1] * 10; rep(i,1,999999) { bool ans = false; temp = i; now = len = 0; while( temp ) digit[++len] = temp % 10 , temp/=10; Rrep(j,len,1) //枚举每一位 { if (digit[j]==0) ans |= !f[now]; else { int up; if ( j == len ) up = digit[j]-1; else up = digit[j]; rep( k , 1 , up ) //枚举取多少 ans |= !f[ i - k * v[j] ]; } now = now * 10 + digit[j]; } f[i] = ans; }}int main(){ char s[10]; Clean(f,0); init(); while(~scanf("%s",s)) { if ( s[0] == '0' ) puts("Yes"); else{ int len = strlen(s); int now = 0; rep(i,0,len-1) now = now * 10 + s[i] - '0'; puts( f[now]==0 ?"No":"Yes" ); } } return 0;}
0 0
- hdu 1404 Digital Deletions
- hdu 1404 Digital Deletions
- Hdu 1404 Digital Deletions
- HDU 1404 Digital Deletions
- Digital Deletions - HDU 1404 博弈
- SG函数 hdu 1404 Digital Deletions
- sg函数 hdu 1404 Digital Deletions
- hdu 1404 Digital Deletions (SG函数)
- HDU 1404 Digital Deletions [SG]【博弈】
- hdu1404 Digital Deletions------SG
- Digital Deletions+博弈
- hdu1404 Digital Deletions
- Hdu1404 Digital Deletions
- 博弈——Digital Deletions
- hdu1404 Digital Deletions (状压+dfs)
- hdu1404 Digital Deletions SG打表
- Hdu1404 Digital Deletions(暴力SG博弈)
- HDU 1013 Digital Roots
- 字节流与字符流的区别详解
- PAT-A 1048. Find Coins
- 正则表达式
- Android Studio下JNI调用与编译so包
- 杭电-1233 还是畅通工程 (Kruscal)
- HDU 1404 Digital Deletions
- Excel Sheet Column Title
- Android内存优化之OOM
- Struts 2的配置与简单实例
- HDU 3555 数位DP
- AndroidUI组件-Spinner下拉列表
- 如何交谈
- 卷积的物理意义
- django 链接 mysql数据库