题目链接:
和Uva1629很类似,不过,可能用记忆化难写一点,状态初始化懒得搞了。就用循环好了。
状态描叙也可以修改,那个题目是由于有樱桃的坐标,所以用四维,而这个题目只要长宽,和块数就OK了,三维,然后还是死遍历所有情况的切割。
1 #include2 #include 3 using namespace std; 4 int dp[25][25][25]; 5 int main() 6 { 7 int n,m,c; 8 for(int i=1; i<=20; i++) 9 {10 for(int j=1; j<=20; j++)11 {12 dp[i][j][1]=i*j;13 }14 }15 for(int i=1; i<=20; i++)16 {17 for(int j=1; j<=20; j++)18 {19 for(int k=2; k<=20; k++)20 {21 for(int l=1; l >n>>m>>c)41 {42 if(n==0&&m==0&&c==0) break;43 printf("%d\n",dp[n][m][c]); 44 }45 return 0;46 }