ssxyh 2008-12-08 03:37:00
点我顶贴
收藏
删除
有n面红旗和n面黄旗从东到西插成一排。如果相邻的两面旗帜的颜色不同,则称为颜色发生一次改变。
任务:计算这2n面旗帜的颜色改变m次的插法共有多少种?
示例:
旗帜的颜色为“红黄红红黄黄黄”称为颜色改变了3次的插法。
在n=4,m=1时仅有两种插法:“红红红红黄黄黄黄”和“黄黄黄黄红红红红”,对应的输出为“2”。
输入格式
输入:从键盘上依闪输入自然数n和m。(n<15)
输出格式
输出:把插法总数在屏幕上显示输出。
样例输入
4 1
样例输出
2
"旗帜的颜色不同,则称为颜色发生一次改变。"什么是颜色不同叫发生一次改变?
“红黄红红黄黄黄”这个是7个旗子啊!!!怎么是3次?
#2 libojie@2008-10-12 07:16:00
6807
回复
删除
从左到右数,发现旗子的颜色与上一个不同,就叫做一次改变。
红--黄--红红---黄黄黄
分割线处分别是一次改变。
这是一道组合数学问题。
#6 逸如天飘雪@2008-12-08 03:37:00
9762
回复
删除
var
n,m,ans:longint;
function c(a,b:longint):longint;
var i,temp:longint;
begin
temp:=1;
for i:=b downto (b-a+1) do
temp:=temp*i;
for i:=2 to a do
temp:=temp div i;
c:=temp;
end;
begin
readln(n,m);
ans:=c(m div 2,n-1)*c((m-1)div 2,n-1)*2;
writeln(ans);
readln;
readln;
end.
满分的