poj 1579 Function Run Fun
题目链接:http://poj.org/problem?id=1579
解题思路:简单dp
1 /////////////////////////////////////////////////////////////////////////// 2 //problem_id: poj 1579 3 //user_id: SCNU20102200088 4 /////////////////////////////////////////////////////////////////////////// 5 6 #include <algorithm> 7 #include <iostream> 8 #include <iterator> 9 #include <iomanip> 10 #include <cstring> 11 #include <cstdlib> 12 #include <string> 13 #include <vector> 14 #include <cstdio> 15 #include <cctype> 16 #include <cmath> 17 #include <queue> 18 #include <stack> 19 #include <list> 20 #include <set> 21 #include <map> 22 using namespace std; 23 24 /////////////////////////////////////////////////////////////////////////// 25 typedef long long LL; 26 const double PI=acos(-1.0); 27 /////////////////////////////////////////////////////////////////////////// 28 29 /////////////////////////////////////////////////////////////////////////// 30 //Add Code: 31 /////////////////////////////////////////////////////////////////////////// 32 33 int main(){ 34 /////////////////////////////////////////////////////////////////////// 35 //Add code: 36 int i,j,k,w[25][25][25]; 37 for(i=0;i<=20;i++){ 38 for(j=0;j<=20;j++){ 39 for(k=0;k<=20;k++){ 40 if(i==0 || j==0 || k==0) w[i][j][k]=1; 41 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]; 42 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]; 43 } 44 } 45 } 46 while(scanf("%d%d%d",&i,&j,&k)!=EOF){ 47 if(i==-1 && j==-1 && k==-1) break; 48 printf("w(%d, %d, %d) = ",i,j,k); 49 if(i<=0 || j<=0 || k<=0) printf("%d\n",1); 50 else if(i>20 || j>20 || k>20) printf("%d\n",w[20][20][20]); 51 else printf("%d\n",w[i][j][k]); 52 } 53 /////////////////////////////////////////////////////////////////////// 54 return 0; 55 } 56 57 /////////////////////////////////////////////////////////////////////////// 58 /* 59 Testcase: 60 Input: 61 1 1 1 62 2 2 2 63 10 4 6 64 50 50 50 65 -1 7 18 66 -1 -1 -1 67 Output: 68 w(1, 1, 1) = 2 69 w(2, 2, 2) = 4 70 w(10, 4, 6) = 523 71 w(50, 50, 50) = 1048576 72 w(-1, 7, 18) = 1 73 */ 74 ///////////////////////////////////////////////////////////////////////////
posted on 2013-08-19 10:06 SCNU20102200088 阅读(113) 评论(0) 编辑 收藏 举报