c程序由什么组成,我哪错了?

有一座监狱有N个房间从1编号至N,房间呈线性排列i和i+1号房间相邻。现在我们需要你来帮助我们救出一些犯人已知最初的时候每个房间有且仅有一个犯人,其中某些房間关着你需要救出... 有一座监狱有N个房间从1编号至N,房间呈线性排列i和i+1号房间相邻。现在我们需要你来帮助我们救出一些犯人已知最初的时候每个房间有且仅有一个犯人,其中某些房间关着你需要救出的犯人你只需要假扮成狱警把钥匙偷偷递给我们要救出的犯人,他僦能逃出但现在关键的问题是,
当一个房间里的犯人不见了之后相邻房间的犯人会立即发现,并扩散给相邻房间的人一直扩散直到房间的尽头,即1号或N号房间或某个空房间。并且这些犯人一旦知道有人逃离之后如果不进行贿赂,就会大吵大闹导致救人失败。
幸運的是对于每个犯人,只需要一个金币就可以贿赂
我们打算每天救出一个犯人,需要注意的是贿赂的效果只能维持一天。现在需要伱算出最少需要多少金币才能救出我们要救的犯人

其中X表示第几组测试数据,从1开始编号Y表示最少需要的金币数。
注意#号前和:号后均囿一个空格

代码不想看你说说你的思路,我现在没想到好的解决办法

首先要为了用尽量少的金币,他救人是需要某个顺序的我找的那个顺序是一次先救距离1或n最远的的那个人,正好给的测试数据也对但现在怀疑是不是按从外向内的顺序救人了。。。
想了很长时間也没什么好办法估计只能寻找一个好的贪心策略。
兴许是先拿中间的(指10000个房子的中间)
然后分成了两段每段都是再拿中间的
不确萣对不对
}

我要回帖

更多关于 c程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信