讨论 / 只有60分···各位帮忙看看啊
coldffire 2011-10-15 08:25:00
点我顶贴 收藏 删除
题目:核电站问题

状态: 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];

}

#1 mhy12345@2011-10-15 08:25:00
回复 删除
我用的是pascal,先定义longint(2^31)不行,只过了60分,定义qword(2^64)就AC了
查看更多回复
提交回复