状态: Unaccepted
测评机: Xeost[5]
得分: 60分
提交日期: 2010-8-6 23:03:00
有效耗时: 203毫秒
测试结果1: 通过本测试点|有效耗时109ms
测试结果2: 通过本测试点|有效耗时47ms
测试结果3: 通过本测试点|有效耗时47ms
测试结果4: 测试结果错误.错误结果为:1281556081
正确结果应为:100808458960497
测试结果5: 测试结果错误.错误结果为:838977396
正确结果应为:504543532140404
提交代码: view sourceprint?
#include <iostream>
using namespace std;
long int a[200],n,m,x=0,v[200][10];
long int zo(int i,bool b,int j); /*第i个坑 b==0无核料,1有料,j 已连续放入J个核料*/
int main()
{
cin>>n>>m;
memset(v,0,sizeof(v));
cout<<zo(0,0,0);
}
long int zo(int i,bool b,int j) /*v【n-i】[j] 剩余n-i个坑时,已连续放入j个核料的情况数量 */
{
if(j>=m) return 0;
if(v[n-i][j]>0) return v[n-i][j];
if(i>=n&&j<m) return 1;
v[n-(i+1)][j+1]=zo(i+1,1,j+1);
v[n-(i+1)][0]=zo(i+1,0,0);
/*
25.
cout<<"v["<<n<<"-("<<i<<"+1)]["<<j<<"+1]="<<v[n-(i+1)][j+1]<<endl;
26.
cout<<"v["<<n<<"-("<<i<<"+1)][0]="<<v[n-(i+1)][0]<<endl;
27.
cout<<"v["<<n<<"-"<<i<<"]["<<j<<"]="<<v[n-i][j]<<endl; */
v[n-i][j]=v[n-i-1][j+1]+v[n-i-1][0];
return v[n-i][j];
}