标题:求大神给个思路(C语言)
只看楼主
huangmeixin
Rank: 2
等 级:论坛游民
帖 子:13
专家分:20
注 册:2018-11-14
结帖率:100%
已结贴  问题点数:20 回复次数:4 
求大神给个思路(C语言)
Description


在机房里,有一位人人都非常熟悉的学长——X神。X身边从来不缺学妹,更不缺学弟。王同学就是他的忠实小跟班。作为一个跟班,像开灯这种粗活就肯定要提前做好。

现在这个屋子有n个开关控制着n盏灯,但奇怪的是,每个开关对应的不是一盏灯,而是n-1盏灯,每次按下这个开关,其对应的n-1盏灯就会由亮变灭,或者由灭变亮。保证不会有两个开关控制同样的n-1盏灯。

现在王同学想在X神进来之前把灯全部开好,但是这些灯一开始的状态非常乱,王同学想知道最少需要按多少次开关才能使所有灯全部亮起。

Input


多组数据输入。

每组数据一行,两个数n, m 分别代表灯的数量,最开始时亮着的灯的数量(1 < m < n < 10000000000)

Output


每组数据输出一个数,即能使所有灯全部亮起的最少的按开关的次数,如果无法做到灯全部亮起,输出“Impossible”

Sample Input


4 2

Sample Output


2
收到的鲜花
  • ttciko2019-01-25 21:25 送鲜花  1朵  
搜索更多相关主题的帖子: 思路 同学 开关 全部 数据 
2018-12-12 10:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
如果避开一盏亮灯,改变其它n-1盏等,那么将有 n-m+1 盏亮
如果避开一盏暗灯,改变其它n-1盏等,那么将有 n-m-1 盏亮
也就是由 m 盏灯亮,通过一步可变为 n-m+1 盏亮,或 n-m-1 盏亮。

最后应该有n盏灯亮,那么倒数第二步就应该有1盏灯亮,倒数第三步就应该有n-2盏灯亮,……
由后往前亮灯的盏数:n-0、1、n-2、3、n-4、5、n-6、……,规律很明显

结论就是:
如果n为偶数、m为偶数:n-m
如果n为偶数、m为奇数:m
如果n为奇数、m为偶数:不可能
如果n为奇数、m为奇数:n-m和m两者之最小值
2018-12-12 13:03
huangmeixin
Rank: 2
等 级:论坛游民
帖 子:13
专家分:20
注 册:2018-11-14
得分:0 
回复 2楼 rjsp
谢谢大佬指点,我自己😭实在想不到
2018-12-12 17:50
ttciko
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-1-25
得分:0 
大佬,真心求解,这个思路我想了 好久想不懂啊
2019-01-25 21:23
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
得分:0 
回复 4楼 ttciko
逻辑问题
2019-01-26 14:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-491977-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.131208 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved