zoj3141 DP

来源:互联网 发布:网络规划设计师薪资 编辑:程序博客网 时间:2024/06/15 15:26

将自己历史的AC共享

zoj3141 DP题

dp[i][j]=min(dp[r][j]+dp[i-r][j]+1, dp[i][k]+dp[i][j-k]+1) 0=

//1759591 2009-02-06 21:15:23 Accepted  3141 C++ 70 420 green tea #include <cstdio>#include <algorithm>using namespace std;int dp[250][250];int main(){    int T, r, c, i, j, k, n;    for ( i = 0; i < 250; ++i )        for ( j = 0; j < 250; ++j )             dp[i][j] = 100000000;    for ( i = 1; i < 250; ++i )         dp[i][i] = 0;    for ( i = 0; i < 250; ++i )         dp[0][i] = dp[i][0] = 0;    for ( i = 1; i < 250; ++i )         for ( j = 1; j < 250; ++j ) {              for ( k = 0; k <= i; ++k ) {                  if ( dp[i][j] > dp[k][j]+dp[i-k][j]+1 )                     dp[i][j] = dp[k][j]+dp[i-k][j]+1;              }              for ( k = 0; k <= j; ++k ) {                  if ( dp[i][j] > dp[i][k]+dp[i][j-k]+1 )                      dp[i][j] = dp[i][k]+dp[i][j-k]+1;              }        }    scanf("%d", &T);    while ( T-- ) {         scanf("%d%d", &r, &c);         printf("%d\n", dp[r][c]);    }    return 0;}

如觉得还有问题 可参考其他相关文章
zoj3141 其他1
zoj3141 其他2

0 0
原创粉丝点击