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

简单的DP吧,用个3维数组记住信息就行了

Posted by ryzasia at 2010-03-12 17:19:33 on Problem 1579
#include <iostream>
#include <vector>
#include <string>
#include <cmath>
#include <algorithm>
#include <functional>
#include <list>
#include <map>
#include <set>
using namespace std;

int w[30][30][30];
int a,b,c; 

class POJ     
{
  public:
  int POJMethod()
  {
    int i,j,k;
    for(i = 0;i<=20;++i)
      for(j = 0;j<=20;++j)
        for(k = 0;k<=20;++k)
        { 
          if(i==0 || j==0  || k==0)
            {w[i][j][k] = 1; }
          else if(i<j && j<k)
            w[i][j][k] = w[i][j][k-1] + w[i][j-1][k-1] - w[i][j-1][k];
          else
            w[i][j][k] = w[i-1][j][k] + w[i-1][j-1][k] + w[i-1][j][k-1] - w[i-1][j-1][k-1];  
        }    
    if(a<=0||b<=0||c<=0)
      return w[0][0][0];
    if(a>=20||b>=20||c>=20)
      return w[20][20][20];    
      
    return w[a][b][c];
  }
};


int main()
{     
    while((cin>>a>>b>>c) && (a!=-1||b!=-1||c!=-1))
    {
      POJ test;
      printf("w(%d, %d, %d) = %d\n",a,b,c,test.POJMethod());              
    }

    system("pause");
    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