欢迎您访问教学资源网(www.jxzy.wang)
首页 > 教案设计 > 信息教案设计 > 高中信息技术奥赛翻币问题

高中信息技术奥赛翻币问题

网友 分享 时间: 加入收藏 我要投稿 点赞

高中信息技术奥赛翻币问题

山姆大叔发明了一个有趣的翻币游戏。在一个特制的棋盘中有n x m个方格,每个方格中放1枚金币。方格中的金币或正面朝上,或反面朝上。棋盘的每一行的左侧都有一个黑色按钮,可以控制该行中金币的朝向。每按一次黑色按钮,相应行中的所有金币翻转。棋盘每一列上方都有一个白色按钮,用于交换2列中的金币。同时按第i列和第j列的白色按钮,可以交换第i列和第j列的金币,且保持金币在原列中的位置和朝向。 翻币游戏要求游戏者对于金币在棋盘中的一个给定初始布局,通过操纵棋盘上的黑白按钮,达到一确定的目标布局。

编程任务: 对于金币在棋盘中的一个给定初始布局和目标布局,编程计算是否可通过操纵棋盘上的黑白按钮,从初始布局达到目标布局。

数据输入: 由文件coin.in提供输入数据。文件含多个测试数据项。文件的第一行中只有1个整数k,表示共有k个测试数据项。每个测试数据项的第一行中有2个整数n 和m分别表示棋盘的行数和列数。接着的2n行中,前n行表示该测试数据项的初始布局,后n行表示该测试数据项的目标布局。每行有m个符号(+或-)表示该行中金币的朝向。"+"表示金币正面朝上,"-" 表示金币反面朝上。

结果输出: 对每个测试数据项,如果可通过操纵棋盘上的黑白按钮,从初始布局达到目标布局则输?quot;yes", 否则输出"no"。所有结果输出到文件coin.out中。  输入文件示例

2

3 4

- + - +

+ - - +

- - - -

- + - +

+ + - -

- - - -

2 2

- -

- +

+ +

+ +

输出文件示例

yes

no

<

精选图文

221381
领取福利

微信扫码领取福利

高中信息技术奥赛翻币问题

微信扫码分享