CTSC1994题目

CTSC'94

剔除多余括号

  

    键盘输入一个含有括号的四则运算表达式,可能含有多余的括号,编程整理该表达式,去掉所有多余的括号,原表达式中所有变量和运算符相对位置保持不变,并保持与原表达式等价。

  例:输入表达式       应输出表达式

    a+(b+c)                 a+b+c  

        (a*b)+c/d                a*b+c/d

        a+b/(c-d)                a+b/(c-d)

   注意输入a+b时不能输出b+a。

  表达式以字符串输入,长度不超过255。输入不要判错。

  所有变量为单个小写字母。只是要求去掉所有多余括号,不要求对表达式化简。

CTSC'94

瓷砖

 

  在2N×2N的方格地板上铺放两种方形磁砖表面图案分别为 a 和 b ,一个方格中只可放一块磁砖,每种磁砖各有2N2-1块,加有两个方格内未铺任何磁砖。

    若相邻两块磁砖的弧线有共同点,则认为连起来的曲线是连续的。任何一种铺放方案其表面方案表现为若干曲线组成的图形。下图所示为N=2时的一种铺放方案,最长的连续曲线为由#起始和终止的曲线。

  对任何一块磁砖,若其上下左右4个方向某一相邻方格内没有磁砖, 则可将该磁砖平移至该方格内。

       00100   00100

       01000   00010

       10001   10001

       00010   01000

       00100   00100

         a       b

 

  编程要求:

  对任何一种满足上述要求的铺放方案,寻找一种移动磁砖的方法,使得经过若干次移动后,所得其中的一条连续曲线在所有铺放方案中最长。

  输入输出要求:

  N和初始铺放方案放在一个文本文件中。第一行是一个数字N,其下2N行为一个2N×2N的矩阵,若该矩阵第I行第J列为1,表示该方格处铺有形如 a 的磁砖,为2表示铺有形如 b 的磁砖,为0表示未铺任何磁砖。在上图这种铺放方案下的最长曲线的长度为13,但不一定是长度最长的方案。

  N为自然数,1≤N≤30。

  要求首先输出所求得的最长曲线的长度(一块磁砖上的一段曲线长度为1),然后将你的移动方案存入一名为Solve.txt的文件。该文件第一行为移动的总步数,其下每一行表示一次移动。每行只含有4个数字“x1 y1 x2 y2”,表示当前棋盘上坐标(x1,y1)处不是空格,坐标(x2,y2)处是空格,且当前步是将在坐标(x1,y1)的磁砖移至空格(x2,y2)处,显然(x1,y1)与(x2,y2)应当是相邻的。

  备注:

  1、不要求移动次数最少;

  2、注意应能处理N值较大的情形;

  3、最长曲线可以是封闭的,也可以是不封闭的;

  4、若有多条最长曲线只取一条;

  5、输入文件不需判错。

CTSC'94

置棋方案

 

  在M×N的主格中任意指定X个格了构成一个棋盘,在任一个这样的棋盘上放置棋子,要求任意两个棋子不得位于同一行或同一列上。在棋盘上放置K 个棋子并满足上述要求的一种方法称为一个方案。

    编程要求:

  1对给定的一个棋盘,求出该棋盘可放置的最多的棋子数P。

  2记Di为该棋盘上放置i个棋子时的方案总数(1≤i≤P),其中经旋转和镜面反射而得的方案记为不同的方案,对每一个i,求出相应的Di。

  3程序应能够连续处理多个棋盘,对每一个棋盘,输出P和D1D2…Dp, 只需输出数字,不必输出具体的棋盘方案。

  需要程序处理的所有棋盘由一个仅含有数字的文本文件提供,该文件的第一行是两个数字,代表第一个棋盘的M和N,其下N行为一个仅由0、1组成的M×N的矩阵,某一个位置值为1表示相应的格子在这个棋盘上,为0表示相应的格子不在棋盘上; 再下面一行为第二个棋盘的M和N,其下又是一个矩阵,表示第二个棋盘的布局信息;以此类推,M和N均为0是表示所有棋盘已处理完毕,程序可以结束。

  在程序连续处理多个棋盘时,注意你的程序中不应该有任何等待输入的语句,以便统计程序处理全部棋盘所有的时间。所有总时间是评分的一个依据。

  应注意棋盘是稀疏的,即X<M×N/2。1<M,N<10。

CTSC'94

求最小棋盘

 

  已知一个未知其规模的棋盘中有R个格子,若任意两个格子处于同一行或同一列上,则称这两个格子为互不相容,否则称之为相容的,已知一个棋盘R个格子两两是相容或不相容的全部信息,编程求出一个相应的棋盘,并要求能包含该棋盘的矩形面积最小。

  输入输出要求:

  格子间是否相容的信息由一个文本文件提供,该文件第一行是一个数字,代表格子总数R,其下R行是一个仅由0、1组成的R×R的矩阵,若该矩阵第I行第I列为1,表示格子I与格子J不相容,否则相容。

  输出应显示求得的棋盘和包含该棋盘的最小矩形的长和宽。同时将所求得的棋盘存入一个名为RESULT.TXT的文件中,该文件共有R行,其中第I(1≤I≤R)行是第I个格子的坐标,先是横坐标,后是纵坐标,其间以空格分隔。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值