2147专题

hdu 2147

#include <stdio.h>int main(){int n,m;while(scanf("%d%d",&n,&m) && n+m){if((n*m)%2==0) printf("Wonderful!\n");else printf("What a pity!\n");}}

HDU 2147 kiki's game 博弈

我已经分不出来这是不是博弈了,反正我是没想到,看了别人的博客,我只想说给人类的智商跪了。。。。。。。。竟然是倒着推出来的 步骤1:将所有终结位置标记为必败点(P点); 步骤2: 将所有一步操作能进入必败点(P点)的位置标记为必胜点(N点) 步骤3:如果从某个点开始的所有一步操作都只能进入必胜点(N点) ,则将该点标记为必败点(P点) ; 步骤4: 如果在步骤3未能找到新的必败(P点),则算法终止

wikioi 2147 bitset+map解决

题目描述 Description 小明是一名天文爱好者,他喜欢晚上看星星。这天,他从淘宝上买下来了一个高级望远镜。他十分开心,于是他晚上去操场上看星星。 不同的星星发出不同的光,他的望远镜可以计算出观测到的星星发出的光的数值W。小明当然想尽可能地多看到星星,于是他每看到一颗星星,就要看看他之前有没有看过这颗星星。但是他看的星星太多了,他根本数不过来,于是他让你帮忙。

2147: Digit

看到题目首先想到了数位dp 观察发现,从低位向高位很好推. 令fijkg表示第i个位置,进位值为j 数位和为k 乘d后数位和为g得情况是否成立... 稍微算一算100 * 10 * 1000 * 1000肯定爆掉了... 考虑优化,令fijk表示能凑成进位值为i 数位和为j 乘d后数位和为k最短得长度... 那么这样复杂度就在1000w 可以接受... 因为要保证得到得数是最小得情况,

sincerit 2147 kiki的游戏(简单博弈论)

2147 kiki的游戏 时间限制:5000/1000 MS(Java / Others)内存限制:40000/10000 K(Java / Others) 总提交内容:13657接受提交内容:8344 问题描述 最近kiki无事可做。虽然她很无聊,但他脑子里出现了一个想法,她只是玩棋盘游戏。主板的大小是n * m。首先,硬币放在右上角(1,m)。每次一个人可以将硬币移动到左侧,下方或左下方的空