Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

我用递推的思路,一切OK,怎么提交错了?错那了,希望有人帮我指正!

Posted by sunnvya at 2006-09-28 19:37:40 on Problem 1845
#include<iostream>
#include<math.h>
using namespace std;
long sum=0;
long long fun(long a,long b)
{
    if(a==0)return 1;
    if(a==1)return 1;
    if(b==0)return 1;
    if(b==1)return sum%9901;
    long long s=sum%9901;
    for(long i=2;i<=b;++i)
    s=(s+(sum-1)+(a-1)*(s-1))%9901;//递归思路是:fun(a,b)=( f(a,b-1)+(sum-1)*a^(b-1) )%9901
    return s;                       //由于递归慢,反递推就得到这个,可不知道怎么错了
}     
int main()
{
    long a,b,i;
    cin>>a>>b;
    if(a==0)sum=0;
    else if(a==1)sum=1;
    else if(a==2)sum=3;
    else if(a==3)sum=4;
    else 
    {
         for(i=1;i<(long)sqrt(1.0*a);++i)
         {
            if(a%i==0)
            sum+=i+a/i;
         } 
         if(i==(long)sqrt(1.0*a))
         sum+=(long)sqrt(1.0*a); 
    } 
    cout<<fun(a,b)<<endl;
    getchar();
    return 0;
}    


Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator