题目

Problem Description

不知道大家有没有玩过一个叫做 九连环 的玩具,如下图所示。

如果你不了解九连环,那玄黄就带你领略九连环的奥妙: 
九连环是我国传统的民间智力玩具,玩具上面有九个连环套在杆上,目标就是通过一定的方式将九个连环从杆上全部取下来。 
玩法是这样的: 
1、对每个环,有2种操作:把这个环放到杆上或把这个环从杆上取下 
2、你可以随意的对第1个环进行操作 
3、如果你想对第i个环(i>1)进行操作,你必须将第i-1个环放在杆上,且必须把前i-2个环从杆上取下

Input

输入一个整数n ( 0<n<10 ),代表杆上面的连环个数。

Output

输出把所有连环取下来的最少操作步骤,每一步占一行,输出一个整数i和操作”UP”或者”DOWN”,代表将第i个环放到杆上或从杆上取下来,整数和操作用空格分开。详情见示例输出。

Sample Input

4

Sample Output

2 DOWN
1 DOWN
4 DOWN
1 UP
2 UP
1 DOWN
3 DOWN
1 UP
2 DOWN
1 DOWN

思路

一看就知道是一个简单的递归,可能是个人比较菜的原因,感觉实现起来略微有点复杂= =

AC代码

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath>using namespace std;int a[20]; //记录当前环的状态,0表示未取下void f(int x,int y) // 第x个环要进行y操作,y==0表示要将其取下
{if(x == 0) { //第0个环不存在return ;}if(x == 1) { //第1个环可以任意操作if(y==1 && a[x]==1) {printf("1 UP\n");a[x] = 0;}else if(y==0 && a[x]==0) {printf("1 DOWN\n");a[x] = 1;}return ;}// 剩下的位置上的环if(a[x-1]) { //操作第x个环前,第x-1个要未取下f(x-1,1);}for(int i=x-2; i>0; i--) { //前x-2个要已取下if(!a[i]) {f(i,0);}}if(y==1 && a[x]==1) {printf("%d UP\n",x);a[x] = 0;}else if(y==0 && a[x]==0) {printf("%d DOWN\n",x);a[x] = 1;}
}int main()
{memset(a,0,sizeof(a));a[0] = 1;int n;scanf("%d",&n);for(int i=n; i>0; i--) { //从大往小依次取下,因为操作一个环的条件只于其前面的环有关if(!a[i]) {f(i,0);}}return 0;
}

水~ 山理第十一届ACM校赛 E九连环 递归模拟相关推荐

  1. 中原工学院第十一届ACM校赛总结

    题目 : 目录 Problem A. 玄武国 Problem B. 星星月亮太阳皇冠 Problem C. 世界线变动 Problem D. 小天的问题 Problem E. 想不出来背景 Probl ...

  2. 广东工业大学acm校赛总结(基础差的人的自我觉悟)

    2022.03.27 广东工业大学acm校赛总结: 实话说,这次校赛表现非常不好,B题的钩子就差一点点,分块了,也知道%k也知道分奇数偶数,就是最后差一个特判不知道怎么解决,寥寥草草一个三等奖,练了这 ...

  3. 第一次ACM校赛_记录

    [2021-10-24]第一次ACM校赛 一.报名 1.去年比赛 2.流程 二.准备 1.核心代码模式和ACM代码模式 1.1核心代码模式 1.2 ACM代码模式 2.往年题目 3.机房环境 3.1语 ...

  4. 一个彻彻底底的水军的ACM校赛感悟~~~

    2017年4月23日刚刚结束了ACM校赛.作为一名不是ACM队的水军来说,抱着必突突突的决心,参加了这次的比赛.经过五个小时的激烈角逐,我们队伍还参加了一场和我们没有什么关系的颁奖典礼. 我是一个编程 ...

  5. 记第七届ACM校赛-回忆

    这一次校赛其实是两个月半之前的事情了---4月29日.那天比赛完之后,自己就想当天写写这一次比赛的事,但是由于那天比赛完之后又马上又赶回家,5个小时的比赛加上2个小时的车程,整个人都觉得很累,所以那天 ...

  6. 2014湖南农业大学ACM校赛

    湖南农业大学 2014年 ACM 校赛Problem 2014 /2/23  星期日  12:30-17:30 A.搜素      1794.查找指定的字符串      B.链表      1795 ...

  7. 大连海事大学ACM校赛题解

    大连海事大学ACM校赛题解 感谢xzx对题目的排版~ 作为出题人之一,我先简单说一下我认为的题目难度. 我觉着第一档比较容易的签到题是L.J.M,L就是向下取整的签到:J是简单思维.构造题,到了6以后 ...

  8. 山东科技大学第二届ACM校赛解题报告

    这次校赛的目的,是为了省赛测试各种程序是否有问题. 热身赛的逗比题有点打击我,感觉正式赛应该不会出这种问题.开始的时候直接上了A题,然后大概是第六,前面好多友情队,正式队排名第二. 然后读了读B题,稍 ...

  9. 2014哈商大ICPC/ACM校赛解题报告

    被debug邀请去參加校赛,哎,被虐..我对不起工大.. 由于本人不搞ACM,算法处于HelloWorld水准.. 虽然题目除了鸟不拉屎星人之外都非常水,但我能做到这个程度,全然是超水平发挥了.. 数 ...

最新文章

  1. 4.5 偏斜类-机器学习笔记-斯坦福吴恩达教授
  2. 一般处理程序读写session
  3. centos7 配置静态ip时出现双ip问题解决
  4. [sql]匹配标题中出现最多关键字的结果
  5. python爬取2017年统计用区划代码和城乡划分代码(截止2017年10月31日)
  6. 电脑一键装机软件哪个好 目前干净的一键重装系统软件推荐
  7. python弹幕拼脸_50行代码帮你搞定!手把手教你把视频弹幕变成想要的形状
  8. 计算机摄影采用的成像媒介,探讨computed tomography的中文名称
  9. wechat微信小程序 :对应的服务器证书无效
  10. 征途服务器维护时间,征途私服服务器维护是什么问题
  11. BottomNavigationView修改图标/文字大小,替换图标
  12. adm单master节点
  13. 人工智能产品经理知识体系和学习计划
  14. Canal Admin Web-UI 学习
  15. 如何判断点是否在圆弧上
  16. web前端-综合应用案例-二维码名片的制作-educoder
  17. P2722 [USACO3.1]总分 Score Inflation
  18. 1.Linux目录管理
  19. 程序员:一个女生不主动联系你还有机会吗?
  20. 打开网站被挂马跳转到博彩页面 解决办法

热门文章

  1. 租用美国服务器 解决java延迟_如何降低美国服务器延迟?美国服务器延迟多少算正常?...
  2. 大型网站高并发解决方案——集群
  3. Python3中的enumerate用法详解
  4. Codeforces 979E Kuro and Topological Parity - 动态规划 - 组合数学
  5. 李开复给学生第七封信:21世纪最需要7种人才
  6. Android Dialog实现全选反选
  7. 项目经理高效沟通的5个能力要素
  8. 如何使用PS给照片加水印
  9. js把两个对象合并成一个对象
  10. typeScript 接口(interface)及其与类型别名(type)的区别