本文主要是介绍POJ 1717 Dominoes G++ 动态规划 背,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
//英语 看博友分析 抄博友程序 动态规划 背
int up[1008];
int down[1008];
int dp[1008][12000];
int main()
{int n;scanf("%d",&n);for(int i=1;i<=n;i++){cin>>up[i]>>down[i];}memset(dp,0x3f,sizeof(dp));//dp[0][6000]=0;//抄博友程序 int cha=up[1]-down[1];dp[1][cha+6000]=0;dp[1][6000-cha]=1;for(int i=2;i<=n;i++){for(int j=0;j<=12000;j++){cha=up[i]-down[i];if(j-cha>=0){dp[i][j]=min(dp[i][j],dp[i-1][j-cha]);//抄博友程序 }if(j+cha<=12000){dp[i][j]=min(dp[i][j],dp[i-1][j+cha]+1);}}}for(int i=0;i<=6000;i++){int ans=min(dp[n][i+6000],dp[n][6000-i]);if(ans<1000){cout<<ans<<endl;break;}} return 0;
}
这篇关于POJ 1717 Dominoes G++ 动态规划 背的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!