根据提供的文件信息,我们可以将这份材料分为五个不同的ACM题目,并对每个题目进行详细解析。 ### 第一题:计算步骤数 #### 题目描述: 对于一个正整数 n (n > 0),如果 n 是偶数,则将其除以 2;如果 n 是奇数,则将其乘以 3 后加 1。重复此过程直到 n 变为 1,计算总共进行了多少次这样的转换。 **输入格式:** - 一个整数 n。 - n 为 0 时结束输入。 **输出格式:** - 对于每个输入的 n,输出一行表示达到 1 所需的步骤数。 **示例输入:** ``` 3 1 0 ``` **示例输出:** ``` 5 0 ``` #### 解析: 本题采用循环结构,每次判断 n 的奇偶性并执行相应的操作,直至 n 变为 1。同时记录操作次数。 ### 第二题:字符串重排 #### 题目描述: 对于一个由字符 'Z'、'O' 和 'J' 组成的字符串,将其重新排列为多个 "ZOJ" 的形式。如果某个字符的数量不足以组成 "ZOJ",则按剩余字符数量依次输出这些字符。 **输入格式:** - 一行只包含字符 'Z'、'O' 和 'J' 的字符串。 - 当输入 "E" 时结束。 **输出格式:** - 按题目要求输出重组后的字符串。 **示例输入:** ``` ZZOOOJJJ ZZZZOOOOOJJJ E ``` **示例输出:** ``` ZOJZOJOJ ZOJZOJZOJZOO ``` #### 解析: 首先统计 'Z'、'O'、'J' 的数量,然后按照 "ZOJ" 的顺序输出,直到某一种字符用完为止。之后再依次输出剩余的其他字符。 ### 第三题:寻找未出现的数 #### 题目描述: 给定一系列正整数(不超过 100000),对于每个数 n,计算其按照第一题中的规则转换至 1 的过程中出现的所有数字,并找出其中未出现过的数。 **输入格式:** - 一个正整数 n (n <= 100000),表示接下来会有 n 个数。 - n 个正整数。 - n 为 0 时结束输入。 **输出格式:** - 对于每个输入的 n 个数,输出一行表示那些在转换过程中没有出现的数。 **示例输入:** ``` 3 384 0 ``` **示例输出:** ``` 3 ``` #### 解析: 使用哈希表记录每个数字是否出现过,在转换过程中更新哈希表。最后遍历输入的数字,输出未出现的数。 ### 第四题:最大值排序 #### 题目描述: 给定一个长度不超过 100000 的数组 w,以及一个正整数 m,求出数组 w 的前 m 个最大值。 **输入格式:** - 一个正整数 n,表示数组 w 的长度。 - n 个整数,构成数组 w。 - 一个正整数 m。 - n 为 0 时结束输入。 **输出格式:** - 输出 m 个整数,即数组 w 的前 m 个最大值。 **示例输入:** ``` 31 25 -1 0 0 ``` **示例输出:** ``` 5 ``` #### 解析: 本题可以使用部分排序的方法解决。先将数组 w 的前 m 个元素排序,然后依次将剩余元素与前 m 个元素的最大值比较并替换,最终得到的 m 个元素即为所求。 ### 第五题:亲属关系查询 #### 题目描述: 定义了一种特殊的亲属关系,包括 parent、child、grandparent 和 great-grandparent。给定一系列关系,求出某个特定关系的数量。 **输入格式:** - 一个正整数 n,表示有 n 行关系数据。 - 每行包含三个字符 a、b、c,表示 a 和 b 之间的关系是 c。 - 一个正整数 m,表示要查询的关系数量。 - m 行,每行包含两个字符 a 和 b,表示要查询 a 和 b 之间的关系。 - n 为 0 时结束输入。 **输出格式:** - 对于每个查询,输出一行表示 a 和 b 之间的关系及数量。 **示例输入:** ``` 32 ABC CDE EFG FA BE 0 0 ``` **示例输出:** ``` great-grandparent 1 ``` #### 解析: 通过结构体定义每个节点的父节点和子节点信息,然后根据查询需求进行递归查找,直到找到相应的亲属关系。
Input:
3
1
0
Output:
5
0
第二题:ZOJ,读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然安装ZOJ的顺序输出。当读入的字符串为E时,结束。
Input:
ZZOOOJJJ
ZZZZOOOOOJJJ
E
Output:
ZOJZOJOJ
ZOJZOJZOJZOO
第三题:继续xxx定律,当n为3时,我们在验证xxx定律的过程中会得到一个序列,3,5,8,4,2,1,将3称为关键数,5,8,4,2称为覆盖数。现在输入n个数字,根据关键数与覆盖数的理论,我们只需要验证其中部分数就可以确定所有数满足xxx定律,输入输入的n个数中的关键数。
Input:第一行,n,第二行n个数,n为0时结束
3
3 8 4
0
Output:有多个关键数时逆序输出
3
第四题:寻找大富翁;输入n(0<n<=100000),m(0<m<=10),n为小镇上的人数,m为需要找出的大富翁数。输入:
n, m 接下来一行输入小镇n个人的财富值,输出:前m个大富翁的财产数,n为0时结束
Input:
3 1
2 5 -1
0 0
Output:
5
第五题: 找出直系亲属。如果A,B是C的父母亲,则A,B是C的parent,C是A,B的child,如果A,B是C的(外)祖父,祖母,则A,B是C的grandparent,C是A,B的grandchild,如果A,B是C的(外)曾祖父,曾祖母,则A,B是C的great-grandparenet,C是A,B的great-grandchild,之后再多一辈,则在关系上加一个great-。
输入:n(0<=n<=26)表示n个亲属关系,形式为ABC,表示A的父母亲分别是B,C,如果A的父母亲信息不全,则用-代替,例如A-C。m(。。。)代表测试用例数,形式AB。输出:AB的关系,如A是B的直系亲属,按上述要求输出关系,如果A,B没有关系,输出-。当n为0时结束。
Input:
3 2
ABC
CDE
EFG
FA
BE
0 0
Output:
great-grandparent
1
剩余8页未读,继续阅读
- 粉丝: 7
- 资源: 28
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ap5030dn-openwrt-ath79-generic-huawei-ap5030dn-initramfs-kernel
- 华为AP无线接入控制器学习资料
- 金铲铲S13双城之战自动拿牌助手2.0
- Sigrity Power SI 仿真分析教程与实例分析.rar
- 基于Vue和JavaScript的掌上生活超市小程序配送解决方案设计源码
- 基于Java和安卓基础知识的简易记事本设计源码
- 基于SaToken轻量级Java权限认证的XrSaTokenVue Vue设计源码
- 基于Java语言的RxTool设计源码集合
- PHP性能检测扩展XHProf与FirePHP线上调试工具详解
- 基于Winsock的拦截与修改64位及32位封包的PacketEditor设计源码