一道奥赛题.请高手过来看看!

LeeMaRS 2002-04-07 06:09:38
加精
一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。
  任务:对于给定的N和M,求不发生爆炸的放置核物质的方案总数

输入:
  输入文件只一行,两个正整数N,M( 1<N<50,2≤M≤5)
输出:
  输出文件只有一个正整数S,表示方案总数。

Sample Input
4 3
Sample Output
13

---------
这道题来自曙光网第一次友谊竞赛.

自己实在是太菜了.想不出怎么做,丢人啊....
据说是使用递推.但我不懂如何推出这个递推式.请高手帮忙!
...全文
75 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
LeeMaRS 2002-04-15
  • 打赏
  • 举报
回复
楼上的没必要紧张.我只是还希望能看看有没有别的思路.

本小孩到CSDN虽然才不到一个月,但规矩还是懂的.问问题的帖子只发了两个(包括这个).不结帖是不可能的事情.就算你求我不结都没门,呵呵^^

现在就结.
aliceZOOZ 2002-04-14
  • 打赏
  • 举报
回复
这个题目很容易的,怎么会有这么多人讨论呢?mathe很早就给出了一个递推式,starfish随后又给了一个,都没有问题。我看这个帖子早就该结了。
Fuxiao 2002-04-14
  • 打赏
  • 举报
回复
大家干脆把原码拿到这里来。
我今天上午想来想去,越想头越大。
哎,谁叫咱这么笨。
vampirelord 2002-04-13
  • 打赏
  • 举报
回复
我已经明白了,海星说的是对的,我想多了。
ajihzs 2002-04-13
  • 打赏
  • 举报
回复
好像大家讨论得太复杂了吧。所有的情况数减去不可能的情况数不就是了么。不可能的情况好算,因为都是连续(也就是连续的个数 M<= m <=N是为不可能的)。共有(N-M+1)+(N-M)+ … +(1) = (N-M+2)(N-M+1)/2 个。所以结果为:
2的N次方-(N-M+2)(N-M+1)/2 。
Fuxiao 2002-04-13
  • 打赏
  • 举报
回复
看来概率论是比较重要的。
ynli2002 2002-04-13
  • 打赏
  • 举报
回复
从所有的组合中去掉连续摆放的可能个数就行!
所有组合:C(N,0)+C(N,1)+C(N,2)+.......+C(N,M)
连续的组合:N-M+1
结果:C(N,0)+C(N,1)+C(N,2)+.......+C(N,M)-(N-M+1)
cxjddd 2002-04-12
  • 打赏
  • 举报
回复
一道组合题,高中的知识都不见了。好象从来没有看过这样的题。有点难。
挺拔的劲松 2002-04-12
  • 打赏
  • 举报
回复
gz
vampirelord 2002-04-12
  • 打赏
  • 举报
回复
我最先想到的答案是:
f(n,m) = 2^n (n < m);
= 2^n -1 (n = m);
= 2f(n -1,m) - f(n-m-1, 1);
f(x,1) = 1; (x >= -1);
= 0; (x < -1);

而海星的那个忽略m的变化的答案,我还没有想通为什么。


vampirelord 2002-04-12
  • 打赏
  • 举报
回复
楼上,P(n,t)肯定是不对的。
石榴刺猬 2002-04-10
  • 打赏
  • 举报
回复
最多连续放M-1个,总共有N个坑。
那么空的坑T最少有 T = N DIV M 个,最多N个。
对于每一个T,方案有P(N, T)个(排列组合)
那么总数是

Total := 0;
for I := T to N do
Total := Total + P(N, T);

是么?

chenggn 2002-04-09
  • 打赏
  • 举报
回复
递推! :)
LeeMaRS 2002-04-09
  • 打赏
  • 举报
回复
海星.你的描述让我觉得好熟悉...
能告诉我是哪本书的吗?..
javafish 2002-04-09
  • 打赏
  • 举报
回复
没有,佩服
我想左了
starfish 2002-04-09
  • 打赏
  • 举报
回复
我说的有错么???
javafish 2002-04-09
  • 打赏
  • 举报
回复
惭愧
melice 2002-04-09
  • 打赏
  • 举报
回复
to:javafish...
f(3)=2*4-f(3-1-3)=7
f(4)=2*7-f(4-1-3)=13

javafish 2002-04-09
  • 打赏
  • 举报
回复
而且,当n<M是f(n)全为0,你的思路我觉得是对的,但是好像那里没有说清楚,就是减去的时候,那是原有的坑少了,要放的坑也少了,所以我们计算时要设定
f(n,m)表示n个坑放m的安全放法,所以我们对n不变,m增加的情况也要考虑递推才行!
待我先想想。
javafish 2002-04-09
  • 打赏
  • 举报
回复
starfish(海星) ,你好
当M =3;时
f(1) = 2;
f(2) = 4;
f(3) = 2*f(2)-0 = 8
f(4) = 2*f(3) - 0 = 16
????????
你这里好像在减去的时候不对,不应是f(n-1-m)(可能我的理解不对),你看了!
加载更多回复(33)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧