08 2013 档案

摘要:#include using namespace std;short int dp[5050][5050];int main(){int i,j,n; char a[5050];cin>>n;cin>>a+1;memset(dp,0,sizeof(dp));for(i=1;i0;j--){if(a[i]==a[j])dp[j][i]=dp[j+1][i-1];elsedp[j][i]=(dp[j][i-1]<dp[j+1][i]?dp[j][i-1]:dp[j+1][i])+1;}cout<<dp[1][n]<<endl;return 0; 阅读全文
posted @ 2013-08-26 20:32 单调的幸福 阅读(246) 评论(0) 推荐(0)
摘要:解法一:#includeusing namespace std;int map[102][102];int m=0xfffffff;void prim(int n){ int lowcost[102],s[102]={0},i,j,min,k,ans=0; for(i=1;i>map[i][j]; prim(n); } return 0;}解法二:#includeusing namespace std;const int Max = 102;const int inf = 0xfffffff;int n, ans;int map[Max][Max], dis[Max];//dis[i]表 阅读全文
posted @ 2013-08-15 17:19 单调的幸福 阅读(212) 评论(0) 推荐(0)
摘要:定义:将一个问题分解为子问题递归求解(小问题按阶段分),并且将中间结果保存以避免重复计算的办法,就叫做“动态规划”。阶段:运用动态规划首先需要将问题的全过程恰当地划分成若干个相互联系的阶段,以便按一定的次序去求解。阶段的划分一般是根据时间和空间的自然特征来定的,一般要便于把问题转化成多阶段决策的过程。大多数情况下,DP可以用来求最优值,这里要注意,DP求最优值不是递推,而是枚举。要考虑清楚每个阶段,并表示出来。然后寻找终止条件,这里常常把每个阶段的最值保存起来,然后在最值里面求最值。备忘录方法:备忘录方法是递归方式的变形。它与动态规划方法一样备忘录方法采用用一个表保存已解决的子问题的答案,而且 阅读全文
posted @ 2013-08-08 14:51 单调的幸福 阅读(1107) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2013-08-01 20:04 单调的幸福 阅读(11) 评论(0) 推荐(0)