题目名称 | 1650. [POI 2000]布条游戏 |
---|---|
输入输出 | pas.in/out |
难度等级 | ★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 14 |
题目来源 | cstdio 于2014-05-29加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:13, 提交:23, 通过率:56.52% | ||||
JSX | 100 | 0.021 s | 0.30 MiB | C++ |
new ioer | 100 | 0.022 s | 0.29 MiB | C++ |
FoolMike | 100 | 0.024 s | 1.05 MiB | C++ |
cstdio | 100 | 0.030 s | 0.32 MiB | C++ |
Chtholly | 100 | 0.030 s | 0.32 MiB | C++ |
yourfather | 100 | 0.035 s | 0.29 MiB | C++ |
ONCE AGAIN | 100 | 0.039 s | 0.29 MiB | C++ |
ztx | 100 | 0.042 s | 0.27 MiB | C++ |
阿狸 | 100 | 0.059 s | 0.32 MiB | C++ |
Aglove | 100 | 0.076 s | 0.34 MiB | C++ |
关于 布条游戏 的近10条评论(全部评论) | ||||
---|---|---|---|---|
竟然想不到DP策略,我真的好菜
-1
2017-12-08 14:37
1楼
|
布条游戏是一个双人游戏。游戏需要一张棋盘和三种颜色的矩形布条:红色,绿色和蓝色。所有的红色布条大小都为c*1(这指1行c列,下同),绿色布条是z*1,蓝色布条是m*1,其中c,z,n都是整数。每名玩家都有无限数量的三种布条。
棋盘是一个大小为p*1的矩形,包含p个1*1的小方格。
玩家轮流移动。每次移动,玩家在棋盘上放置一块任意颜色的布条。有一些规则必须遵守:
·布条不能超出棋盘范围。
·不能覆盖(甚至不能部分覆盖)先前放置的布条。
·布条的两端必须和方格的(竖直)边重合。无法按规则移动的玩家输。
先手指第一个移动的玩家。我们说先手必胜,如果无论后手(即第二个移动的玩家)做出如何移动,先手都能赢。
请你写一个程序判断先手是否有必胜策略。
输入文件的第一行有三个空格隔开的整数c,z,n(1<=c,z,n<=1000),分别代表红,绿,蓝三种颜色布条的长度。
第二行有一个整数m(1<=m<=1000),代表需要考虑的不同棋盘数量。
第3行到第m+2行每行有一个整数p(1<=p<=1000).第i+2行的整数代表第i张棋盘的长度。
输出应当包含m行。
第i行应当只有一个整数:
·1——如果第i张棋盘的先手必胜。
·2——其他情况。
1 5 1 3 1 5 6
1 1 2