擂台:有小学水平都可做,有研究生水平的人不一定做得了?

Chrisma 2004-01-05 10:44:47
1。最初,一个人得了SARS,每天每个SARS病人传播5人,且每个感染SARS的人会在感
染后的第五天死亡。从最初这个人得SARS到第100天,共有多少活着的SARS病人?
2。有M个数构成一个圆圈:1,2,3,4,5,8,3, 6,其中1和6相接。将其分为N
组,N<=M, 相临的数在一组,N组数每组求和,N个和做乘积,求积最大的分组?
3。有M个十进制正整数,231, 233,23,35 432,423。将他们连接起来,求最大的
得数?
4。有20级台阶,一次可上一步、两步或三步。求有多少种不同的上法?
...全文
109 51 打赏 收藏 转发到动态 举报
写回复
用AI写文章
51 条回复
切换为时间正序
请发表友善的回复…
发表回复
tinghuyang 2004-03-26
  • 打赏
  • 举报
回复
up
tmxsl1214 2004-02-02
  • 打赏
  • 举报
回复
***
2002past 2004-02-01
  • 打赏
  • 举报
回复
更正一下:
1。求最下四层即可。
2002past 2004-02-01
  • 打赏
  • 举报
回复
我来总结一下:
1。相当于完全二叉树求叶子结点数目一样,只不过此处为5而非2,且求出最下五层数即可
2。相当于哈弗曼树求解方法
3。口算得出:432 423 35 233 23 231 去掉中间空格,4324233523323231 此数为最大
4。理解此题的题意是求:三种上法不同数的组合有多少种,写个程序就能出来,int i,j,k;
for(i=20;i--;i>=0)
for(j=10;j--;j>=0)
for(k=6 ;k--;k>=0)
if(i+i*2+k*3=20) count+=1; 结果为:40

各位同仁觉得呢?
hyeena 2004-01-17
  • 打赏
  • 举报
回复
4.a(n) = a(n-1)+a(n-2)+a(n-3)
a(1) = 1,a(2) = 2, a(3) = 4
a(20) = 121415
qscj 2004-01-16
  • 打赏
  • 举报
回复
to: shurui(水幻迷星)

我想了,你说得对,我的答案确实不对。

应该是:“减去N-4天传染的人数”

:(
SimonSui 2004-01-16
  • 打赏
  • 举报
回复
好久没来了,这些题都算是Noi级的吧。挺有意思。
goldhawk_2000 2004-01-15
  • 打赏
  • 举报
回复
2步比较在加上n1 就是从n1,ni,nj中取排序最靠前的
goldhawk_2000 2004-01-15
  • 打赏
  • 举报
回复
第2步比较在加上一个n1,就是取n1,ni,nj三个中排序在前的那个.
goldhawk_2000 2004-01-15
  • 打赏
  • 举报
回复
第三题可不可以这样:
设所有十进制数集合E,f(E)=ni为从E中找出第一个满足条件的整数ni,然后;

f(E)如下
1. E按字典排序(降,4排在49前面),判断第一个是否为其他的子串,不是取出来E=E-n1,转1.是转(2)
2. 设n1长j位,E'为E中所有整数除去前j位.f(E')=n'i,恢复的ni,f(E-n1)=nj,如果ni排序在nj前面则取ni,E=E-ni否则取nj,E=E-nj;

如此递归写完了才发现不现实,呵呵
shurui 2004-01-12
  • 打赏
  • 举报
回复
qscj(求是车几):
你的递推有问题!!!
////////////////////////////////////////////////////////////////////////////////
死亡当天传染给其它人:
F(n)=F(n-1)*(5+1)-F(n-4)//这天活着的总人数=昨天活着的总数翻(5+1)倍,再减去以前第4天活着的总数

死亡当天还没有来得及传染给其他人:
F(n)=(F(n-1)-F(n-4))*(5+1)//这天活着的总人数=昨天活着的总数减去以前第4天活着的总数然后翻(5+1)倍
////////////////////////////////////////////////////////////////////////////////

不是减去N-4天的总人数!!!!! 而是要减去N-4天传染的人数!!!!

liuping00 2004-01-10
  • 打赏
  • 举报
回复
2.
N为一个变量,只要符合条件N<=M即可

因为当A>1且B>1(A,B整数)则有A*B>=A+B
所以只要不为1的数都独成一组
找出圈中所有的1,设1的左为A右为B
则选A,B中小的与1合为一组
因为如果A,B都大于1且A>B则
(A+1)*B<=(B+1)*A (很容易证明)
另如果有n个1连续,则n为偶数就n个1分为 n/2组
n为奇数则与n个1相邻的两个数中小的一个与1组合余下(n-1)个1组成(n-1)/2个组合



liuping00 2004-01-10
  • 打赏
  • 举报
回复
同意qscj(求是车几) 的第1题解法
ilao 2004-01-10
  • 打赏
  • 举报
回复
我不会
qscj 2004-01-10
  • 打赏
  • 举报
回复
1题
我觉的我的答案没错呀!而且容易理解:


死亡当天传染给其它人:
F(n)=F(n-1)*(5+1)-F(n-4)//这天活着的总人数=昨天活着的总数翻(5+1)倍,再减去以前第4天活着的总数

死亡当天还没有来得及传染给其他人:
F(n)=(F(n-1)-F(n-4))*(5+1)//这天活着的总人数=昨天活着的总数减去以前第4天活着的总数然后翻(5+1)倍
dengsf 2004-01-09
  • 打赏
  • 举报
回复
那是 瘟疫+SARS = apocalypse
所以,100天后,人数=0。
LeeMaRS 2004-01-09
  • 打赏
  • 举报
回复
第一题: 当天死的人还能传染别人?
Chrisma 2004-01-09
  • 打赏
  • 举报
回复
也可以用迭代:从n=1开始,直到100
Chrisma 2004-01-09
  • 打赏
  • 举报
回复
第一题:
天数 1 2 3 4 5 6
再活4天 1 5 30 180 1080 6475
再活3天 0 1 5 30 180 1080
再活2天 0 0 1 5 30 180
再活1天 0 0 0 1 5 30
当天死 0 0 0 0 1 5
第n天活的人f(n): f(1)=1, f(2)=6, f(3)=36, f(4)=216
递推 n>=5: f(n)=5*(f(n-1)+f(n-2)+f(n-3)+f(n-4))
n=100时是一个极大的数> 5^100。故要用到大数加法和乘法。
ZeroZZZ000 2004-01-09
  • 打赏
  • 举报
回复
不好意思刚写完就发现错了……
构造Bx时应反复用Ax补位到满为止,如上述Ax=675,n=7
应化为Bx=6756756,
可以先按字典序排序,在排序中对位长不一样的两数比较时在对
短的数补位比较


上面的 LeeMaRS(小菜虎,仍需努力)是对的

但是我的方法应该快一点,主要还看对排序算法的选择了
加载更多回复(31)

33,008

社区成员

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

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