m0_60307680 2023-03-18 09:33 采纳率: 50%
浏览 92
已结题

关于# c++#的问题,如何解决?


割圆
本题将实现一个简化版的“割圆”游戏。成功点亮所有灯时,联结第一个和最后一个灯称之为“割线”。

n盏灯环形分布,顺序编号为1到n。灯的初始状态为关闭不亮。假设n为7,则第1号灯与第27号灯相邻,第2号灯与第13号灯相邻,以此类推。

灯的点亮规则如下:

1、输入m个数,每个数为某个灯的编号,可能重复或只是部分编号;

2、m个数中的第1个数所对应的灯,默认点亮;

3、 如果输入数对应灯的左侧或右侧已被点亮,则点亮自身。否则啥也不做;

4、如果所有的灯都已被点亮,则程序结束,m个数中尚未被处理的数将不再处理;

5、输出第1次和最后一次点亮灯的编号;

6、如果m个数处理完毕尚未点亮所有灯,则输出No。

时间限制:1000
内存限制:131072
输入
第一行2个整数n,m,保证3<=n<=10001<=m<=10000。 第二行m个数,每个数都在1到n之间,表示输入序列。
输出
如果完成了“割圆”,则输出两个整数,之间用一个空格隔开,否则输出No。
样例输入
7 10
2 3 1 7 5 6 5 4 4 2
样例输出
2 4
提示
第1个数2,直接被点亮; 第2个数33与已亮的2相邻,被点亮; 第3个数11与已亮的2相邻,被点亮; 第4个数77与已亮的1相邻,被点亮; 第5个数5546相邻,但46都没亮,什么都不做; 第6个数66与已亮的7相邻,被点亮; 第7个数55与已亮的6相邻,被点亮; 第8个数44与已亮的5相邻,被点亮; 此时,所有的数都被点亮,第1个点亮的是2,最后点亮的是4。割圆
本题将实现一个简化版的“割圆”游戏。成功点亮所有灯时,联结第一个和最后一个灯称之为“割线”。

n盏灯环形分布,顺序编号为1到n。灯的初始状态为关闭不亮。假设n为7,则第1号灯与第27号灯相邻,第2号灯与第13号灯相邻,以此类推。

灯的点亮规则如下:

1、输入m个数,每个数为某个灯的编号,可能重复或只是部分编号;

2、m个数中的第1个数所对应的灯,默认点亮;

3、 如果输入数对应灯的左侧或右侧已被点亮,则点亮自身。否则啥也不做;

4、如果所有的灯都已被点亮,则程序结束,m个数中尚未被处理的数将不再处理;

5、输出第1次和最后一次点亮灯的编号;

6、如果m个数处理完毕尚未点亮所有灯,则输出No。

时间限制:1000
内存限制:131072
输入
第一行2个整数n,m,保证3<=n<=10001<=m<=10000。 第二行m个数,每个数都在1到n之间,表示输入序列。
输出
如果完成了“割圆”,则输出两个整数,之间用一个空格隔开,否则输出No。
样例输入
7 10
2 3 1 7 5 6 5 4 4 2
样例输出
2 4
提示
第1个数2,直接被点亮; 第2个数33与已亮的2相邻,被点亮; 第3个数11与已亮的2相邻,被点亮; 第4个数77与已亮的1相邻,被点亮; 第5个数5546相邻,但46都没亮,什么都不做; 第6个数66与已亮的7相邻,被点亮; 第7个数55与已亮的6相邻,被点亮; 第8个数44与已亮的5相邻,被点亮; 此时,所有的数都被点亮,第1个点亮的是2,最后点亮的是4
  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-03-18 12:06
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 已采纳回答 3月25日
  • 创建了问题 3月18日