200分求动态规划详解!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 求“分治算法”和“动态规划算法”的英文,谢谢!

\u9ad8\u5206\u6c42\u52a8\u6001\u89c4\u5212\u9898\u76ee\uff01\uff01\uff01

\u8fd9\u662f\u6211\u4eec\u8ba1\u7b97\u673a\u7cfb\u7b97\u6cd5\u8bbe\u8ba1\u8bfe\u7684\u5b9e\u9a8c\u8bfe\u7a0b\uff0c\u4e0b\u9762\u662f\u52a8\u6001\u89c4\u5212\u5185\u5bb9\uff1a


\u5b9e\u9a8c\u56db\uff1a\u52a8\u6001\u89c4\u5212
\u5b9e\u9a8c\u76ee\u7684\uff1a\u7406\u89e3\u52a8\u6001\u89c4\u5212\u7684\u57fa\u672c\u601d\u60f3\uff0c\u7406\u89e3\u52a8\u6001\u89c4\u5212\u7b97\u6cd5\u7684\u4e24\u4e2a\u57fa\u672c\u8981\u7d20\u6700\u4f18\u5b50\u7ed3\u6784\u6027\u8d28\u548c\u5b50\u95ee\u9898\u7684\u91cd\u53e0\u6027\u8d28\u3002\u719f\u7ec3\u638c\u63e1\u5178\u578b\u7684\u52a8\u6001\u89c4\u5212\u95ee\u9898\u3002\u638c\u63e1\u52a8\u6001\u89c4\u5212\u601d\u60f3\u5206\u6790\u95ee\u9898\u7684\u4e00\u822c\u65b9\u6cd5\uff0c\u5bf9\u8f83\u7b80\u5355\u7684\u95ee\u9898\u80fd\u6b63\u786e\u5206\u6790\uff0c\u8bbe\u8ba1\u51fa\u52a8\u6001\u89c4\u5212\u7b97\u6cd5\uff0c\u5e76\u80fd\u5feb\u901f\u7f16\u7a0b\u5b9e\u73b0\u3002
\u5b9e\u9a8c\u5185\u5bb9\uff1a\u7f16\u7a0b\u5b9e\u73b0\u8bb2\u8fc7\u7684\u4f8b\u9898\uff1a\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u95ee\u9898\u3001\u77e9\u9635\u8fde\u4e58\u95ee\u9898\u3001\u51f8\u591a\u8fb9\u5f62\u6700\u4f18\u4e09\u89d2\u5256\u5206\u95ee\u9898\u3001\u7535\u8def\u5e03\u7ebf\u95ee\u9898\u7b49\u3002\u672c\u5b9e\u9a8c\u4e2d\u7684\u95ee\u9898\uff0c\u8bbe\u8ba1\u51fa\u7b97\u6cd5\u5e76\u7f16\u7a0b\u5b9e\u73b0\u3002
\u4e60\u9898
1\uff0e \u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217
\u4e00\u4e2a\u7ed9\u5b9a\u5e8f\u5217\u7684\u5b50\u5e8f\u5217\u662f\u5728\u8be5\u5e8f\u5217\u4e2d\u5220\u53bb\u82e5\u5e72\u5143\u7d20\u540e\u5f97\u5230\u7684\u5e8f\u5217\u3002\u786e\u5207\u5730\u8bf4\uff0c\u82e5\u7ed9\u5b9a\u5e8f\u5217X=\uff0c\u5219\u53e6\u4e00\u5e8f\u5217Z=\u662fX\u7684\u5b50\u5e8f\u5217\u662f\u6307\u5b58\u5728\u4e00\u4e2a\u4e25\u683c\u9012\u589e\u7684\u4e0b\u6807\u5e8f\u5217 \uff0c\u4f7f\u5f97\u5bf9\u4e8e\u6240\u6709j=1,2,\u2026,k\u6709

\u89e3\u7b54\u5982\u4e0b\uff1a
a) \u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u7684\u7ed3\u6784
\u82e5\u7528\u7a77\u4e3e\u641c\u7d22\u6cd5\uff0c\u8017\u65f6\u592a\u957f\uff0c\u7b97\u6cd5\u9700\u8981\u6307\u6570\u65f6\u95f4\u3002
\u6613\u8bc1\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u95ee\u9898\u4e5f\u6709\u6700\u4f18\u5b50\u7ed3\u6784\u6027\u8d28
\u8bbe\u5e8f\u5217X=\u548cY=\u7684\u4e00\u4e2a\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217Z=\uff0c\u5219\uff1a
i. \u82e5xm=yn\uff0c\u5219zk=xm=yn\u4e14Zk-1\u662fXm-1\u548cYn-1\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\uff1b
ii. \u82e5xm\u2260yn\u4e14zk\u2260xm \uff0c\u5219Z\u662fXm-1\u548cY\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\uff1b
iii. \u82e5xm\u2260yn\u4e14zk\u2260yn \uff0c\u5219Z\u662fX\u548cYn-1\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u3002
\u5176\u4e2dXm-1=\uff0cYn-1=\uff0cZk-1=\u3002
\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u95ee\u9898\u5177\u6709\u6700\u4f18\u5b50\u7ed3\u6784\u6027\u8d28\u3002
b) \u5b50\u95ee\u9898\u7684\u9012\u5f52\u7ed3\u6784
\u7531\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u95ee\u9898\u7684\u6700\u4f18\u5b50\u7ed3\u6784\u6027\u8d28\u53ef\u77e5\uff0c\u8981\u627e\u51faX=\u548cY=\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\uff0c\u53ef\u6309\u4ee5\u4e0b\u65b9\u5f0f\u9012\u5f52\u5730\u8fdb\u884c\uff1a\u5f53xm=yn\u65f6\uff0c\u627e\u51faXm-1\u548cYn-1\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\uff0c\u7136\u540e\u5728\u5176\u5c3e\u90e8\u52a0\u4e0axm(=yn)\u5373\u53ef\u5f97X\u548cY\u7684\u4e00\u4e2a\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u3002\u5f53xm\u2260yn\u65f6\uff0c\u5fc5\u987b\u89e3\u4e24\u4e2a\u5b50\u95ee\u9898\uff0c\u5373\u627e\u51faXm-1\u548cY\u7684\u4e00\u4e2a\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u53caX\u548cYn-1\u7684\u4e00\u4e2a\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u3002\u8fd9\u4e24\u4e2a\u516c\u5171\u5b50\u5e8f\u5217\u4e2d\u8f83\u957f\u8005\u5373\u4e3aX\u548cY\u7684\u4e00\u4e2a\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u3002
\u7531\u6b64\u9012\u5f52\u7ed3\u6784\u5bb9\u6613\u770b\u5230\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u95ee\u9898\u5177\u6709\u5b50\u95ee\u9898\u91cd\u53e0\u6027\u8d28\u3002\u4f8b\u5982\uff0c\u5728\u8ba1\u7b97X\u548cY\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u65f6\uff0c\u53ef\u80fd\u8981\u8ba1\u7b97\u51faX\u548cYn-1\u53caXm-1\u548cY\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u3002\u800c\u8fd9\u4e24\u4e2a\u5b50\u95ee\u9898\u90fd\u5305\u542b\u4e00\u4e2a\u516c\u5171\u5b50\u95ee\u9898\uff0c\u5373\u8ba1\u7b97Xm-1\u548cYn-1\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u3002
\u6211\u4eec\u6765\u5efa\u7acb\u5b50\u95ee\u9898\u7684\u6700\u4f18\u503c\u7684\u9012\u5f52\u5173\u7cfb\u3002\u7528c[i,j]\u8bb0\u5f55\u5e8f\u5217Xi\u548cYj\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u7684\u957f\u5ea6\u3002\u5176\u4e2dXi=\uff0cYj=\u3002\u5f53i=0\u6216j=0\u65f6\uff0c\u7a7a\u5e8f\u5217\u662fXi\u548cYj\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\uff0c\u6545c[i,j]=0\u3002\u5efa\u7acb\u9012\u5f52\u5173\u7cfb\u5982\u4e0b\uff1a


c) \u8ba1\u7b97\u6700\u4f18\u503c
\u7531\u4e8e\u5728\u6240\u8003\u8651\u7684\u5b50\u95ee\u9898\u7a7a\u95f4\u4e2d\uff0c\u603b\u5171\u53ea\u6709\u03b8(m*n)\u4e2a\u4e0d\u540c\u7684\u5b50\u95ee\u9898\uff0c\u56e0\u6b64\uff0c\u7528\u52a8\u6001\u89c4\u5212\u7b97\u6cd5\u81ea\u5e95\u5411\u4e0a\u5730\u8ba1\u7b97\u6700\u4f18\u503c\u80fd\u63d0\u9ad8\u7b97\u6cd5\u7684\u6548\u7387\u3002
\u8ba1\u7b97\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u957f\u5ea6\u7684\u52a8\u6001\u89c4\u5212\u7b97\u6cd5LCS_LENGTH(X,Y)\u4ee5\u5e8f\u5217X=\u548cY=\u4f5c\u4e3a\u8f93\u5165\u3002\u8f93\u51fa\u4e24\u4e2a\u6570\u7ec4c[0..m ,0..n]\u548cb[1..m ,1..n]\u3002\u5176\u4e2dc[i,j]\u5b58\u50a8Xi\u4e0eYj\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u7684\u957f\u5ea6\uff0cb[i,j]\u8bb0\u5f55\u6307\u793ac[i,j]\u7684\u503c\u662f\u7531\u54ea\u4e00\u4e2a\u5b50\u95ee\u9898\u7684\u89e3\u8fbe\u5230\u7684\uff0c\u8fd9\u5728\u6784\u9020\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u65f6\u8981\u7528\u5230\u3002\u6700\u540e\uff0cX\u548cY\u7684\u6700\u957f\u516c\u5171\u5b50\u5e8f\u5217\u7684\u957f\u5ea6\u8bb0\u5f55\u4e8ec[m,n]\u4e2d\u3002
\u7a0b\u5e8f\u5982\u4e0b\uff1a
#include
#include
int lcs_length(char x[], char y[]);
int main()
{
char x[100],y[100];
int len;
while(1)
{
scanf("%s%s",x,y);
if(x[0]=='0') //\u7ea6\u5b9a\u7b2c\u4e00\u4e2a\u5b57\u7b26\u4e32\u4ee5\u20180\u2019\u5f00\u59cb\u8868\u793a\u7ed3\u675f
break;
len=lcs_length(x,y);
printf("%d\n",len);
}
}
int lcs_length(char x[], char y[] )
{
int m,n,i,j,l[100][100];
m=strlen(x);
n=strlen(y);
for(i=0;i<m+1;i++)
l[i][0]=0;
for(j=0;j<n+1;j++)
l[0][j]=0;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
if(x[i-1]==y[j-1]) //i,j\u4ece1\u5f00\u59cb\uff0c\u4f46\u5b57\u7b26\u4e32\u662f\u4ece0\u5f00\u59cb
l[i][j]=l[i-1][j-1]+1;
else if(l[i][j-1]>l[i-1][j])
l[i][j]=l[i][j-1];
else
l[i][j]=l[i-1][j];
return l[m][n];
}
\u7531\u4e8e\u6bcf\u4e2a\u6570\u7ec4\u5355\u5143\u7684\u8ba1\u7b97\u8017\u8d39\u039f(1)\u65f6\u95f4\uff0c\u7b97\u6cd5lcs_length\u8017\u65f6\u039f(mn)\u3002
\u601d\u8003\uff1a\u7a7a\u95f4\u80fd\u8282\u7ea6\u5417\uff1f
2\uff0e \u8ba1\u7b97\u77e9\u9635\u8fde\u4e58\u79ef
\u5728\u79d1\u5b66\u8ba1\u7b97\u4e2d\u7ecf\u5e38\u8981\u8ba1\u7b97\u77e9\u9635\u7684\u4e58\u79ef\u3002\u77e9\u9635A\u548cB\u53ef\u4e58\u7684\u6761\u4ef6\u662f\u77e9\u9635A\u7684\u5217\u6570\u7b49\u4e8e\u77e9\u9635B\u7684\u884c\u6570\u3002\u82e5A\u662f\u4e00\u4e2ap\u00d7q\u7684\u77e9\u9635\uff0cB\u662f\u4e00\u4e2aq\u00d7r\u7684\u77e9\u9635\uff0c\u5219\u5176\u4e58\u79efC=AB\u662f\u4e00\u4e2ap\u00d7r\u7684\u77e9\u9635\u3002\u7531\u8be5\u516c\u5f0f\u77e5\u8ba1\u7b97C=AB\u603b\u5171\u9700\u8981pqr\u6b21\u7684\u6570\u4e58\u3002\u5176\u6807\u51c6\u8ba1\u7b97\u516c\u5f0f\u4e3a\uff1a

\u73b0\u5728\u7684\u95ee\u9898\u662f\uff0c\u7ed9\u5b9an\u4e2a\u77e9\u9635{A1,A2,\u2026,An}\u3002\u5176\u4e2dAi\u4e0eAi+1\u662f\u53ef\u4e58\u7684\uff0ci=1,2,\u2026,n-1\u3002\u8981\u6c42\u8ba1\u7b97\u51fa\u8fd9n\u4e2a\u77e9\u9635\u7684\u8fde\u4e58\u79efA1A2\u2026An\u3002
\u9012\u5f52\u516c\u5f0f\uff1a
\u7a0b\u5e8f\u5982\u4e0b\uff1a
#include
int main()
{
int p[101],i,j,k,r,t,n;
int m[101][101]; //\u4e3a\u4e86\u8ddf\u8bb2\u89e3\u65f6\u4fdd\u6301\u4e00\u81f4\u6570\u7ec4\u4ece1\u5f00\u59cb
int s[101][101]; //\u8bb0\u5f55\u4ece\u7b2ci\u5230\u7b2cj\u4e2a\u77e9\u9635\u8fde\u4e58\u7684\u65ad\u5f00\u4f4d\u7f6e
scanf("%d",&n);
for(i=0;i<=n;i++)
scanf("%d",&p[i]); //\u8bfb\u5165p[i]\u7684\u503c(\u6ce8\u610f\uff1ap[0]\u5230p[n]\u5171n+1\u9879)
for(i=1;i<=n;i++) //\u521d\u59cb\u5316m[i][i]=0
m[i][i]=0;
for(r=1;r<n;r++) //r\u4e3ai\u3001j\u76f8\u5dee\u7684\u503c
for(i=1;i<n;i++) //i\u4e3a\u884c
{
j=i+r; //j\u4e3a\u5217
m[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j]; //\u7ed9m[i][j]\u8d4b\u521d\u503c
s[i][j]=i;
for(k=i+1;k<j;k++)
{
t=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j];
if(t<m[i][j])
{
m[i][j]=t; //m[i][j]\u53d6\u6700\u5c0f\u503c
s[i][j]=k;
}
}
}
printf("%d",m[1][n]);
}
3\uff0e \u51f8\u591a\u8fb9\u5f62\u7684\u6700\u4f18\u4e09\u89d2\u5256\u5206
\u591a\u8fb9\u5f62\u662f\u5e73\u9762\u4e0a\u4e00\u6761\u5206\u6bb5\u7ebf\u6027\u7684\u95ed\u66f2\u7ebf\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u591a\u8fb9\u5f62\u662f\u7531\u4e00\u7cfb\u5217\u9996\u5c3e\u76f8\u63a5\u7684\u76f4\u7ebf\u6bb5\u7ec4\u6210\u7684\u3002\u7ec4\u6210\u591a\u8fb9\u5f62\u7684\u5404\u76f4\u7ebf\u6bb5\u79f0\u4e3a\u8be5\u591a\u8fb9\u5f62\u7684\u8fb9\u3002\u591a\u8fb9\u5f62\u76f8\u63a5\u4e24\u6761\u8fb9\u7684\u8fde\u63a5\u70b9\u79f0\u4e3a\u591a\u8fb9\u5f62\u7684\u9876\u70b9\u3002\u82e5\u591a\u8fb9\u5f62\u7684\u8fb9\u4e4b\u95f4\u9664\u4e86\u8fde\u63a5\u9876\u70b9\u5916\u6ca1\u6709\u522b\u7684\u516c\u5171\u70b9\uff0c\u5219\u79f0\u8be5\u591a\u8fb9\u5f62\u4e3a\u7b80\u5355\u591a\u8fb9\u5f62\u3002\u4e00\u4e2a\u7b80\u5355\u591a\u8fb9\u5f62\u5c06\u5e73\u9762\u5206\u4e3a3\u4e2a\u90e8\u5206\uff1a\u88ab\u5305\u56f4\u5728\u591a\u8fb9\u5f62\u5185\u7684\u6240\u6709\u70b9\u6784\u6210\u4e86\u591a\u8fb9\u5f62\u7684\u5185\u90e8\uff1b\u591a\u8fb9\u5f62\u672c\u8eab\u6784\u6210\u591a\u8fb9\u5f62\u7684\u8fb9\u754c\uff1b\u800c\u5e73\u9762\u4e0a\u5176\u4f59\u7684\u70b9\u6784\u6210\u4e86\u591a\u8fb9\u5f62\u7684\u5916\u90e8\u3002\u5f53\u4e00\u4e2a\u7b80\u5355\u591a\u8fb9\u5f62\u53ca\u5176\u5185\u90e8\u6784\u6210\u4e00\u4e2a\u95ed\u51f8\u96c6\u65f6\uff0c\u79f0\u8be5\u7b80\u5355\u591a\u8fb9\u5f62\u4e3a\u51f8\u591a\u8fb9\u5f62\u3002\u4e5f\u5c31\u662f\u8bf4\u51f8\u591a\u8fb9\u5f62\u8fb9\u754c\u4e0a\u6216\u5185\u90e8\u7684\u4efb\u610f\u4e24\u70b9\u6240\u8fde\u6210\u7684\u76f4\u7ebf\u6bb5\u4e0a\u6240\u6709\u7684\u70b9\u5747\u5728\u8be5\u51f8\u591a\u8fb9\u5f62\u7684\u5185\u90e8\u6216\u8fb9\u754c\u4e0a\u3002
\u901a\u5e38\uff0c\u7528\u591a\u8fb9\u5f62\u9876\u70b9\u7684\u9006\u65f6\u9488\u5e8f\u5217\u6765\u8868\u793a\u4e00\u4e2a\u51f8\u591a\u8fb9\u5f62\uff0c\u5373P=\u8868\u793a\u5177\u6709n\u6761\u8fb9v0v1\uff0cv1v2\uff0c\u2026 ,vn-1vn\u7684\u4e00\u4e2a\u51f8\u591a\u8fb9\u5f62\uff0c\u5176\u4e2d\uff0c\u7ea6\u5b9av0=vn \u3002
\u82e5vi\u4e0evj\u662f\u591a\u8fb9\u5f62\u4e0a\u4e0d\u76f8\u90bb\u7684\u4e24\u4e2a\u9876\u70b9\uff0c\u5219\u7ebf\u6bb5vivj\u79f0\u4e3a\u591a\u8fb9\u5f62\u7684\u4e00\u6761\u5f26\u3002\u5f26 \u5c06\u591a\u8fb9\u5f62\u5206\u5272\u6210\u51f8\u7684\u4e24\u4e2a\u5b50\u591a\u8fb9\u5f62\u548c\u3002\u591a\u8fb9\u5f62\u7684\u4e09\u89d2\u5256\u5206\u662f\u4e00\u4e2a\u5c06\u591a\u8fb9\u5f62\u5206\u5272\u6210\u4e92\u4e0d\u91cd\u8fed\u7684\u4e09\u89d2\u5f62\u7684\u5f26\u7684\u96c6\u5408T\u3002\u5982\u56fe\u662f\u4e00\u4e2a\u51f8\u591a\u8fb9\u5f62\u7684\u4e24\u4e2a\u4e0d\u540c\u7684\u4e09\u89d2\u5256\u5206\u3002

\u51f8\u591a\u8fb9\u5f62\u6700\u4f18\u4e09\u89d2\u5256\u5206\u7684\u95ee\u9898\u662f\uff1a\u7ed9\u5b9a\u4e00\u4e2a\u51f8\u591a\u8fb9\u5f62P=\u4ee5\u53ca\u5b9a\u4e49\u5728\u7531\u591a\u8fb9\u5f62\u7684\u8fb9\u548c\u5f26\u7ec4\u6210\u7684\u4e09\u89d2\u5f62\u4e0a\u7684\u6743\u51fd\u6570\u03c9\u3002\u8981\u6c42\u786e\u5b9a\u8be5\u51f8\u591a\u8fb9\u5f62\u7684\u4e00\u4e2a\u4e09\u89d2\u5256\u5206\uff0c\u4f7f\u5f97\u8be5\u4e09\u89d2\u5256\u5206\u5bf9\u5e94\u7684\u6743\u5373\u5256\u5206\u4e2d\u8bf8\u4e09\u89d2\u5f62\u4e0a\u7684\u6743\u4e4b\u548c\u4e3a\u6700\u5c0f\u3002
\u53ef\u4ee5\u5b9a\u4e49\u4e09\u89d2\u5f62\u4e0a\u5404\u79cd\u5404\u6837\u7684\u6743\u51fd\u6570W\u3002\u4f8b\u5982\uff1a\u5b9a\u4e49\u03c9(\u25b3vivjvk)=|vivj|+|vivk|+|vkvj|\uff0c\u5176\u4e2d\uff0c|vivj|\u662f\u70b9vi\u5230vj\u7684\u6b27\u6c0f\u8ddd\u79bb\u3002\u76f8\u5e94\u4e8e\u6b64\u6743\u51fd\u6570\u7684\u6700\u4f18\u4e09\u89d2\u5256\u5206\u5373\u4e3a\u6700\u5c0f\u5f26\u957f\u4e09\u89d2\u5256\u5206\u3002(\u6ce8\u610f\uff1a\u89e3\u51b3\u6b64\u95ee\u9898\u7684\u7b97\u6cd5\u5fc5\u987b\u9002\u7528\u4e8e\u4efb\u610f\u7684\u6743\u51fd\u6570)
4\uff0e \u9632\u536b\u5bfc\u5f39
\u4e00\u79cd\u65b0\u578b\u7684\u9632\u536b\u5bfc\u5f39\u53ef\u622a\u51fb\u591a\u4e2a\u653b\u51fb\u5bfc\u5f39\u3002\u5b83\u53ef\u4ee5\u5411\u524d\u98de\u884c\uff0c\u4e5f\u53ef\u4ee5\u7528\u5f88\u5feb\u7684\u901f\u5ea6\u5411\u4e0b\u98de\u884c\uff0c\u53ef\u4ee5\u6beb\u65e0\u635f\u4f24\u5730\u622a\u51fb\u8fdb\u653b\u5bfc\u5f39\uff0c\u4f46\u4e0d\u53ef\u4ee5\u5411\u540e\u6216\u5411\u4e0a\u98de\u884c\u3002\u4f46\u6709\u4e00\u4e2a\u7f3a\u70b9\uff0c\u5c3d\u7ba1\u5b83\u53d1\u5c04\u65f6\u53ef\u4ee5\u8fbe\u5230\u4efb\u610f\u9ad8\u5ea6\uff0c\u4f46\u5b83\u53ea\u80fd\u622a\u51fb\u6bd4\u5b83\u4e0a\u6b21\u622a\u51fb\u5bfc\u5f39\u65f6\u6240\u5904\u9ad8\u5ea6\u4f4e\u6216\u8005\u9ad8\u5ea6\u76f8\u540c\u7684\u5bfc\u5f39\u3002\u73b0\u5bf9\u8fd9\u79cd\u65b0\u578b\u9632\u536b\u5bfc\u5f39\u8fdb\u884c\u6d4b\u8bd5\uff0c\u5728\u6bcf\u4e00\u6b21\u6d4b\u8bd5\u4e2d\uff0c\u53d1\u5c04\u4e00\u7cfb\u5217\u7684\u6d4b\u8bd5\u5bfc\u5f39\uff08\u8fd9\u4e9b\u5bfc\u5f39\u53d1\u5c04\u7684\u95f4\u9694\u65f6\u95f4\u56fa\u5b9a\uff0c\u98de\u884c\u901f\u5ea6\u76f8\u540c\uff09\uff0c\u8be5\u9632\u536b\u5bfc\u5f39\u6240\u80fd\u83b7\u5f97\u7684\u4fe1\u606f\u5305\u62ec\u5404\u8fdb\u653b\u5bfc\u5f39\u7684\u9ad8\u5ea6\uff0c\u4ee5\u53ca\u5b83\u4eec\u53d1\u5c04\u6b21\u5e8f\u3002\u73b0\u8981\u6c42\u7f16\u4e00\u7a0b\u5e8f\uff0c\u6c42\u5728\u6bcf\u6b21\u6d4b\u8bd5\u4e2d\uff0c\u8be5\u9632\u536b\u5bfc\u5f39\u6700\u591a\u80fd\u622a\u51fb\u7684\u8fdb\u653b\u5bfc\u5f39\u6570\u91cf\uff0c\u4e00\u4e2a\u5bfc\u5f39\u80fd\u88ab\u622a\u51fb\u5e94\u6ee1\u8db3\u4e0b\u5217\u4e24\u4e2a\u6761\u4ef6\u4e4b\u4e00\uff1a
a)\u5b83\u662f\u8be5\u6b21\u6d4b\u8bd5\u4e2d\u7b2c\u4e00\u4e2a\u88ab\u9632\u536b\u5bfc\u5f39\u622a\u51fb\u7684\u5bfc\u5f39\uff1b
b)\u5b83\u662f\u5728\u4e0a\u4e00\u6b21\u88ab\u622a\u51fb\u5bfc\u5f39\u7684\u53d1\u5c04\u540e\u53d1\u5c04\uff0c\u4e14\u9ad8\u5ea6\u4e0d\u5927\u4e8e\u4e0a\u4e00\u6b21\u88ab\u622a\u51fb\u5bfc\u5f39\u7684\u9ad8\u5ea6\u7684\u5bfc\u5f39\u3002
\u8f93\u5165\u6570\u636e\uff1a\u7b2c\u4e00\u884c\u662f\u4e00\u4e2a\u6574\u6570n\uff0c\u4ee5\u540e\u7684n\u5404\u6709\u4e00\u4e2a\u6574\u6570\u8868\u793a\u5bfc\u5f39\u7684\u9ad8\u5ea6\u3002
\u8f93\u51fa\u6570\u636e\uff1a\u622a\u51fb\u5bfc\u5f39\u7684\u6700\u5927\u6570\u76ee\u3002
\u5206\u6790\uff1a\u5b9a\u4e49l[i]\u4e3a\u9009\u62e9\u622a\u51fb\u7b2ci\u4e2a\u5bfc\u5f39\uff0c\u4ece\u8fd9\u4e2a\u5bfc\u5f39\u5f00\u59cb\u6700\u591a\u80fd\u622a\u51fb\u7684\u5bfc\u5f39\u6570\u76ee\u3002
\u7531\u4e8e\u9009\u62e9\u4e86\u7b2ci\u679a\u5bfc\u5f39\uff0c\u6240\u4ee5\u4e0b\u4e00\u4e2a\u8981\u622a\u51fb\u7684\u5bfc\u5f39j\u7684\u9ad8\u5ea6\u8981\u5c0f\u4e8e\u7b49\u4e8e\u5b83\u7684\u9ad8\u5ea6\uff0c\u6240\u4ee5l[i]\u5e94\u8be5\u7b49\u4e8e\u4ecei\uff0b1\u5230n\u7684\u6bcf\u4e00\u4e2aj\uff0c\u6ee1\u8db3h[j]<=h[i]\u7684j\u4e2dl[j]\u7684\u6700\u5927\u503c\u3002
\u7a0b\u5e8f\u5982\u4e0b\uff1a
#include
int main()
{
int i,j,n,max,h[100],l[100];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&h[i]);
l[n-1]=1;
for(i=n-2;i>=0;i--)
{
max=0;
for(j=i+1;j<n;j++)
if(h[i]>h[j]&&max<l[j])
max=l[j];
l[i]=max+1;
}
printf("%d",l[0]);
}
5\uff0e \u77f3\u5b50\u5408\u5e76
\u5728\u4e00\u4e2a\u5706\u5f62\u64cd\u573a\u7684\u56db\u5468\u6446\u653e\u7740n\u5806\u77f3\u5b50(n<= 100)\uff0c\u73b0\u8981\u5c06\u77f3\u5b50\u6709\u6b21\u5e8f\u5730\u5408\u5e76\u6210\u4e00\u5806\u3002\u89c4\u5b9a\u6bcf\u6b21\u53ea\u80fd\u9009\u53d6\u76f8\u90bb\u7684\u4e24\u5806\u5408\u5e76\u6210\u65b0\u7684\u4e00\u5806,\u5e76\u5c06\u65b0\u7684\u4e00\u5806\u7684\u77f3\u5b50\u6570,\u8bb0\u4e3a\u8be5\u6b21\u5408\u5e76\u7684\u5f97\u5206\u3002\u7f16\u4e00\u7a0b\u5e8f\uff0c\u7531\u6587\u4ef6\u8bfb\u5165\u5806\u6808\u6570n\u53ca\u6bcf\u5806\u6808\u7684\u77f3\u5b50\u6570(<=20)\u3002
\u9009\u62e9\u4e00\u79cd\u5408\u5e76\u77f3\u5b50\u7684\u65b9\u6848,\u4f7f\u5f97\u505an\uff0d1\u6b21\u5408\u5e76,\u5f97\u5206\u7684\u603b\u548c\u6700\u5c0f\uff1b
\u8f93\u5165\u6570\u636e\uff1a
\u7b2c\u4e00\u884c\u4e3a\u77f3\u5b50\u5806\u6570n\uff1b
\u7b2c\u4e8c\u884c\u4e3a\u6bcf\u5806\u7684\u77f3\u5b50\u6570,\u6bcf\u4e24\u4e2a\u6570\u4e4b\u95f4\u7528\u4e00\u4e2a\u7a7a\u683c\u5206\u9694\u3002
\u8f93\u51fa\u6570\u636e\uff1a
\u4ece\u7b2c\u4e00\u81f3\u7b2cn\u884c\u4e3a\u5f97\u5206\u6700\u5c0f\u7684\u5408\u5e76\u65b9\u6848\u3002\u7b2cn+1\u884c\u662f\u7a7a\u884c.\u4ece\u7b2cn+2\u884c\u5230\u7b2c2n+1\u884c\u662f\u5f97\u5206\u6700\u5927\u5408\u5e76\u65b9\u6848\u3002\u6bcf\u79cd\u5408\u5e76\u65b9\u6848\u7528n\u884c\u8868\u793a\uff0c\u5176\u4e2d\u7b2ci\u884c(1<=i<=n)\u8868\u793a\u7b2ci\u6b21\u5408\u5e76\u524d\u5404\u5806\u7684\u77f3\u5b50\u6570(\u4f9d\u987a\u65f6\u9488\u6b21\u5e8f\u8f93\u51fa\uff0c\u54ea\u4e00\u5806\u5148\u8f93\u51fa\u5747\u53ef)\u3002\u8981\u6c42\u5c06\u5f85\u5408\u5e76\u7684\u4e24\u5806\u77f3\u5b50\u6570\u4ee5\u76f8\u5e94\u7684\u8d1f\u6570\u8868\u793a\u3002
Sample Input
4
4 5 9 4
Sample Output
\uff0d4 5 9 \uff0d4
\uff0d8 \uff0d5 9
\uff0d13 \uff0d9
22 4 \uff0d5 \uff0d9 4
4 \uff0d14 \uff0d4
\uff0d4 \uff0d18
22

6\uff0e \u6700\u5c0f\u4ee3\u4ef7\u5b50\u6bcd\u6811
\u8bbe\u6709\u4e00\u6392\u6570\uff0c\u5171n\u4e2a\uff0c\u4f8b\u5982\uff1a22 14 7 13 26 15 11\u3002\u4efb\u610f2\u4e2a\u76f8\u90bb\u7684\u6570\u53ef\u4ee5\u8fdb\u884c\u5f52\u5e76\uff0c\u5f52\u5e76\u7684\u4ee3\u4ef7\u4e3a\u8be5\u4e24\u4e2a\u6570\u7684\u548c,\u7ecf\u8fc7\u4e0d\u65ad\u7684\u5f52\u5e76\uff0c\u6700\u540e\u5f52\u4e3a\u4e00\u5806\uff0c\u800c\u5168\u90e8\u5f52\u5e76\u4ee3\u4ef7\u7684\u548c\u79f0\u4e3a\u603b\u4ee3\u4ef7\uff0c\u7ed9\u51fa\u4e00\u79cd\u5f52\u5e76\u7b97\u6cd5\uff0c\u4f7f\u603b\u4ee3\u4ef7\u4e3a\u6700\u5c0f\u3002
\u8f93\u5165\u3001\u8f93\u51fa\u6570\u636e\u683c\u5f0f\u4e0e\u201c\u77f3\u5b50\u5408\u5e76\u201d\u76f8\u540c\u3002
Sample Input
4
12 5 16 4
Sample Output
\uff0d12 \uff0d5 16 4
17 \uff0d16 \uff0d4
\uff0d17 \uff0d20
37
7\uff0e \u5546\u5e97\u8d2d\u7269
\u67d0\u5546\u5e97\u4e2d\u6bcf\u79cd\u5546\u54c1\u90fd\u6709\u4e00\u4e2a\u4ef7\u683c\u3002\u4f8b\u5982\uff0c\u4e00\u6735\u82b1\u7684\u4ef7\u683c\u662f2 ICU(ICU \u662f\u4fe1\u606f\u5b66\u7ade\u8d5b\u7684\u8d27\u5e01\u7684\u5355\u4f4d\uff09\uff1b\u4e00\u4e2a\u82b1\u74f6\u7684\u4ef7\u683c\u662f5 ICU\u3002\u4e3a\u4e86\u5438\u5f15\u66f4\u591a\u7684\u987e\u5ba2\uff0c\u5546\u5e97\u63d0\u4f9b\u4e86\u7279\u6b8a\u4f18\u60e0\u4ef7\u3002\u7279\u6b8a\u4f18\u60e0\u5546\u54c1\u662f\u628a\u4e00\u79cd\u6216\u51e0\u79cd\u5546\u54c1\u5206\u6210\u4e00\u7ec4\u3002\u5e76\u964d\u4ef7\u9500\u552e\u3002\u4f8b\u5982\uff1a3\u6735\u82b1\u7684\u4ef7\u683c\u4e0d\u662f6\u800c\u662f5 ICU\uff1b2\u4e2a\u82b1\u74f6\u52a01\u6735\u82b1\u662f10 ICU\u4e0d\u662f12 ICU\u3002
\u7f16\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u8ba1\u7b97\u67d0\u4e2a\u987e\u5ba2\u6240\u8d2d\u5546\u54c1\u5e94\u4ed8\u7684\u8d39\u7528\u3002\u8981\u5145\u5206\u5229\u7528\u4f18\u60e0\u4ef7\u4ee5\u4f7f\u987e\u5ba2\u4ed8\u6b3e\u6700\u5c0f\u3002\u8bf7\u6ce8\u610f\uff0c\u4f60\u4e0d\u80fd\u53d8\u66f4\u987e\u5ba2\u6240\u8d2d\u5546\u54c1\u7684\u79cd\u7c7b\u53ca\u6570\u91cf\uff0c\u5373\u4f7f\u589e\u52a0\u67d0\u4e9b\u5546\u54c1\u4f1a\u4f7f\u4ed8\u6b3e\u603b\u6570\u51cf\u5c0f\u4e5f\u4e0d\u5141\u8bb8\u4f60\u4f5c\u51fa\u4efb\u4f55\u53d8\u66f4\u3002\u5047\u5b9a\u5404\u79cd\u5546\u54c1\u4ef7\u683c\u7528\u4f18\u60e0\u4ef7\u5982\u4e0a\u6240\u8ff0\uff0c\u5e76\u4e14\u67d0\u987e\u5ba2\u8d2d\u4e70\u7269\u54c1\u4e3a\uff1a3\u6735\u82b1\u548c2\u4e2a\u82b1\u74f6\u3002\u90a3\u4e48\u987e\u5ba2\u5e94\u4ed8\u6b3e\u4e3a14 ICU\u56e0\u4e3a\uff1a
1\u6735\u82b1\u52a02\u4e2a\u82b1\u74f6\u4f18\u60e0\u4ef7\uff1a10 ICU
2\u6735\u82b1\u6b63\u5e38\u4ef7\uff1a4 ICU
\u8f93\u5165\u6570\u636e\uff1a\u7b2c\u4e00\u4e2a\u6587\u4ef6INPUT\uff0eTXT\u63cf\u8ff0\u987e\u5ba2\u6240\u8d2d\u7269\u54c1\uff08\u653e\u5728\u8d2d\u7269\u7b50\u4e2d\uff09;\u7b2c\u4e8c\u4e2a\u6587\u4ef6\u63cf\u8ff0\u5546\u5e97\u63d0\u4f9b\u7684\u4f18\u60e0\u5546\u54c1\u53ca\u4ef7\u683c\uff08\u6587\u4ef6\u540d\u4e3aOFF ER\uff0eTXT\uff09\u3002 \u4e24\u4e2a\u6587\u4ef6\u4e2d\u90fd\u53ea\u7528\u6574\u6570\u3002
\u7b2c\u4e00\u4e2a\u6587\u4ef6INPUT\uff0eTXT\u7684\u683c\u5f0f\u4e3a:\u7b2c\u4e00\u884c\u662f\u4e00\u4e2a\u6570\u5b57B\uff080\u2264B\u22645\uff09\uff0c\u8868\u793a\u6240\u8d2d\u5546\u54c1\u79cd\u7c7b\u6570\u3002\u4e0b\u9762\u5171B\u884c\uff0c\u6bcf\u884c\u4e2d\u542b3\u4e2a\u6570C\uff0cK\uff0cP\u3002 C \u4ee3\u8868\u5546\u54c1\u7684\u7f16\u7801\uff08\u6bcf\u79cd\u5546\u54c1\u6709\u4e00\u4e2a\u552f\u4e00\u7684\u7f16\u7801\uff09\uff0c1\u2264C\u2264999\u3002K\u4ee3\u8868\u8be5\u79cd\u5546\u54c1\u8d2d\u4e70\u603b\u6570\uff0c1\u2264K\u22645\u3002P \u662f\u8be5\u79cd\u5546\u54c1\u7684\u6b63\u5e38\u5355\u4ef7\uff08\u6bcf\u4ef6\u5546\u54c1\u7684\u4ef7\u683c\uff09\uff0c1\u2264P\u2264999\u3002\u8bf7\u6ce8\u610f\uff0c\u8d2d\u7269\u7b50\u4e2d\u6700\u591a\u53ef\u653e5*5\uff1d25\u4ef6\u5546\u54c1\u3002
\u7b2c\u4e8c\u4e2a\u6587\u4ef6OFFER\uff0eTXT\u7684\u683c\u5f0f\u4e3a:\u7b2c\u4e00\u884c\u662f\u4e00\u4e2a\u6570\u5b57S\uff080\u2264S\u22649 9\uff09\uff0c\u8868\u793a\u5171\u6709S \u79cd\u4f18\u60e0\u3002\u4e0b\u9762\u5171S\u884c\uff0c\u6bcf\u4e00\u884c\u63cf\u8ff0\u4e00\u79cd\u4f18\u60e0\u5546\u54c1\u7684\u7ec4\u5408\u4e2d\u5546\u54c1\u7684\u79cd\u7c7b\u3002\u4e0b\u9762\u63a5\u7740\u662f\u51e0\u4e2a\u6570\u5b57\u5bf9\uff08C\uff0cK\uff09\uff0c\u5176\u4e2dC\u4ee3\u8868\u5546\u54c1\u7f16\u7801\uff0c1\u2264C\u22649 99\u3002K\u4ee3\u8868\u8be5\u79cd\u5546\u54c1\u5728\u6b64\u7ec4\u5408\u4e2d\u7684\u6570\u91cf\uff0c1\u2264K\u22645\u3002\u672c\u884c\u6700\u540e\u4e00\u4e2a\u6570\u5b57P\uff081\u2264 P\u22649999\uff09\u4ee3\u8868\u6b64\u5546\u54c1\u7ec4\u5408\u7684\u4f18\u60e0\u4ef7\u3002\u5f53\u7136\uff0c \u4f18\u60e0\u4ef7\u8981\u4f4e\u4e8e\u8be5\u7ec4\u5408\u4e2d\u5546\u54c1\u6b63\u5e38\u4ef7\u4e4b\u603b\u548c\u3002
\u8f93\u51fa\u6570\u636e\uff1a\u5728\u8f93\u51fa\u6587\u4ef6OUTPUT\uff0eTXT\u4e2d\u5199 \u4e00\u4e2a\u6570\u5b57\uff08\u5360\u4e00\u884c\uff09\uff0c\u8be5\u6570\u5b57\u8868\u793a\u987e\u5ba2\u6240\u8d2d\u5546\u54c1\uff08\u8f93\u5165\u6587\u4ef6\u6307\u660e\u6240\u8d2d\u5546\u54c1\uff09\u5e94\u4ed8\u7684\u6700\u4f4e\u8d27\u6b3e\u3002
8\uff0e \u65c5\u6e38\u9884\u7b97
\u4e00\u4e2a\u65c5\u884c\u793e\u9700\u8981\u4f30\u7b97\u4e58\u6c7d\u8f66\u4ece\u67d0\u57ce\u5e02\u5230\u53e6\u4e00\u57ce\u5e02\u7684\u6700\u5c0f\u8d39\u7528\uff0c\u6cbf\u8def\u6709\u82e5\u5e72\u52a0\u6cb9\u7ad9\uff0c\u6bcf\u4e2a\u52a0\u6cb9\u7ad9\u6536\u8d39\u4e0d\u4e00\u5b9a\u76f8\u540c\u3002\u65c5\u6e38\u9884\u7b97\u6709\u5982\u4e0b\u89c4\u5219\uff1a
\u82e5\u6cb9\u7bb1\u7684\u6cb9\u8fc7\u534a\uff0c\u4e0d\u505c\u8f66\u52a0\u6cb9\uff0c\u9664\u975e\u6cb9\u7bb1\u4e2d\u7684\u6cb9\u4e0d\u53ef\u652f\u6301\u5230\u4e0b\u4e00\u7ad9\uff1b\u6bcf\u6b21\u52a0\u6cb9\u65f6\u90fd\u52a0\u6ee1\uff1b\u5728\u4e00\u4e2a\u52a0\u6cb9\u7ad9\u52a0\u6cb9\u65f6\uff0c\u53f8\u673a\u8981\u82b1\u8d392\u5143\u4e70\u4e1c\u897f\u5403\uff1b\u53f8\u673a\u4e0d\u5fc5\u4e3a\u5176\u4ed6\u610f\u5916\u60c5\u51b5\u800c\u51c6\u5907\u989d\u5916\u7684\u6cb9\uff1b\u6c7d\u8f66\u5f00\u51fa\u65f6\u5728\u8d77\u70b9\u52a0\u6ee1\u6cb9\u7bb1\uff1b\u8ba1\u7b97\u7cbe\u786e\u5230\u5206\uff081\u5143=100\u5206\uff09\u3002\u7f16\u5199\u7a0b\u5e8f\u4f30\u8ba1\u5b9e\u9645\u884c\u9a76\u5728\u67d0\u8def\u7ebf\u6240\u9700\u7684\u6700\u5c0f\u8d39\u7528\u3002
\u8f93\u5165\u6570\u636e\uff1a\u4ece\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6587\u672c\u6587\u4ef6\u201croute.dat\u201d\u8bfb\u5165\u6570\u636e\u3002\u6309\u4ee5\u4e0b\u683c\u5f0f\u8f93\u5165\u82e5\u5e72\u65c5\u884c\u8def\u7ebf\u7684\u60c5\u51b5\uff1a
\u7b2c\u4e00\u884c\u4e3a\u8d77\u70b9\u5230\u7ec8\u70b9\u7684\u8ddd\u79bb\uff08\u5b9e\u6570\uff09
\u7b2c\u4e8c\u884c\u4e3a\u4e09\u4e2a\u5b9e\u6570\uff0c\u540e\u8ddf\u4e00\u4e2a\u6574\u6570\uff0c\u6bcf\u4e24\u4e2a\u6570\u636e\u95f4\u7528\u4e00\u4e2a\u7a7a\u683c\u9694\u5f00\u3002\u5176\u4e2d\u7b2c\u4e00\u4e2a\u6570\u4e3a\u6c7d\u8f66\u6cb9\u7bb1\u7684\u5bb9\u91cf\uff08\u5347\uff09\uff0c\u7b2c\u4e8c\u4e2a\u6570\u662f\u6bcf\u5347\u6c7d\u6cb9\u884c\u9a76\u7684\u516c\u91cc\u6570\uff0c\u7b2c\u4e09\u4e2a\u6570\u662f\u5728\u8d77\u70b9\u52a0\u6ee1\u6cb9\u7bb1\u7684\u8d39\u7528\uff0c\u7b2c\u56db\u4e2a\u6570\u662f\u52a0\u6cb9\u7ad9\u7684\u6570\u91cf\u3002\uff08\u3008=50\uff09\u3002\u63a5\u4e0b\u53bb\u7684\u6bcf\u884c\u5305\u62ec\u4e24\u4e2a\u5b9e\u6570\uff0c\u6bcf\u4e2a\u6570\u636e\u4e4b\u95f4\u7528\u4e00\u4e2a\u7a7a\u683c\u5206\u9694\uff0c\u5176\u4e2d\u7b2c\u4e00\u4e2a\u6570\u662f\u8be5\u52a0\u6cb9\u7ad9\u79bb\u8d77\u70b9\u7684\u8ddd\u79bb\uff0c\u7b2c\u4e8c\u4e2a\u6570\u662f\u8be5\u52a0\u6cb9\u7ad9\u6bcf\u5347\u6c7d\u6cb9\u7684\u4ef7\u683c\uff08\u5143/\u5347\uff09\u3002\u52a0\u6cb9\u7ad9\u6309\u5b83\u4eec\u4e0e\u8d77\u70b9\u7684\u8ddd\u79bb\u5347\u5e8f\u6392\u5217\u3002\u6240\u6709\u7684\u8f93\u5165\u90fd\u6709\u4e00\u5b9a\u6709\u89e3\u3002
\u8f93\u51fa\u6570\u636e\uff1a\u7b54\u6848\u8f93\u51fa\u5230\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6587\u672c\u6587\u4ef6\u201croute.out\u201d\u4e2d\u3002\u8be5\u6587\u4ef6\u5305\u62ec\u4e24\u884c\u3002\u7b2c\u4e00\u884c\u4e3a\u4e00\u4e2a\u5b9e\u6570\u548c\u4e00\u4e2a\u6574\u6570\uff0c\u5b9e\u6570\u4e3a\u65c5\u884c\u7684\u6700\u5c0f\u8d39\u7528\uff0c\u4ee5\u5143\u4e3a\u5355\u4f4d\uff0c\u7cbe\u786e\u5230\u5206\uff0c\u6574\u6570\u8868\u793a\u9014\u4e2d\u52a0\u6cb9\u7684\u7ad9\u7684N\u3002\u7b2c\u4e8c\u884c\u662fN\u4e2a\u6574\u6570\uff0c\u8868\u793aN\u4e2a\u52a0\u6cb9\u7684\u7ad9\u7684\u7f16\u53f7\uff0c\u6309\u5347\u5e8f\u6392\u5217\u3002\u6570\u636e\u95f4\u7528\u4e00\u4e2a\u7a7a\u683c\u5206\u9694\uff0c\u6b64\u5916\u6ca1\u6709\u591a\u4f59\u7684\u7a7a\u683c\u3002
Sample Input
516.3 38.09 1
15.7 22.1 20.87 3 2
125.4 1.259
297.9 1.129
345.2 0.999
Sample Output
38.09 1
2
9\uff0e \u7687\u5bab\u770b\u5b88
\u592a\u5e73\u738b\u4e16\u5b50\u4e8b\u4ef6\u540e\uff0c\u9646\u5c0f\u51e4\u6210\u4e86\u7687\u4e0a\u7279\u8058\u7684\u5fa1\u524d\u4e00\u54c1\u4f8d\u536b\u3002\u7687\u5bab\u4ee5\u5348\u95e8\u4e3a\u8d77\u70b9\uff0c\u76f4\u5230\u540e\u5bab\u5ad4\u5983\u4eec\u7684\u5bdd\u5bab\uff0c\u5448\u4e00\u68f5\u6811\u7684\u5f62\u72b6\uff1b\u67d0\u4e9b\u5bab\u6bbf\u95f4\u53ef\u4ee5\u4e92\u76f8\u671b\u89c1\u3002\u5927\u5185\u4fdd\u536b\u68ee\u4e25\uff0c\u4e09\u6b65\u4e00\u5c97\uff0c\u4e94\u6b65\u4e00\u54e8\uff0c\u6bcf\u4e2a\u5bab\u6bbf\u90fd\u8981\u6709\u4eba\u5168\u5929\u5019\u770b\u5b88\uff0c\u5728\u4e0d\u540c\u7684\u5bab\u6bbf\u5b89\u6392\u770b\u5b88\u6240\u9700\u7684\u8d39\u7528\u4e0d\u540c\u3002\u53ef\u662f\u9646\u5c0f\u51e4\u624b\u4e0a\u7684\u7ecf\u8d39\u4e0d\u8db3\uff0c\u65e0\u8bba\u5982\u4f55\u4e5f\u6ca1\u6cd5\u5728\u6bcf\u4e2a\u5bab\u6bbf\u90fd\u5b89\u7f6e\u7559\u5b88\u4f8d\u536b\u3002
\u8bf7\u4f60\u7f16\u7a0b\u8ba1\u7b97\u5e2e\u52a9\u9646\u5c0f\u51e4\u5e03\u7f6e\u4f8d\u536b\uff0c\u5728\u770b\u5b88\u5168\u90e8\u5bab\u6bbf\u7684\u524d\u63d0\u4e0b\uff0c\u4f7f\u5f97\u82b1\u8d39\u7684\u7ecf\u8d39\u6700\u5c11\u3002
\u8f93\u5165\u6570\u636e\uff1a\u8f93\u5165\u6570\u636e\u7531\u6587\u4ef6\u540d\u4e3aintput.txt\u7684\u6587\u672c\u6587\u4ef6\u63d0\u4f9b\u3002\u8f93\u5165\u6587\u4ef6\u4e2d\u6570\u636e\u8868\u793a\u4e00\u68f5\u6811\uff0c\u63cf\u8ff0\u5982\u4e0b\uff1a
\u7b2c1\u884c n\uff0c\u8868\u793a\u6811\u4e2d\u7ed3\u70b9\u7684\u6570\u76ee\u3002
\u7b2c2\u884c\u81f3\u7b2cn+1\u884c\uff0c\u6bcf\u884c\u63cf\u8ff0\u6bcf\u4e2a\u5bab\u6bbf\u7ed3\u70b9\u4fe1\u606f\uff0c\u4f9d\u6b21\u4e3a\uff1a\u8be5\u5bab\u6bbf\u7ed3\u70b9\u6807\u53f7i\uff080<i<=n\uff09\uff0c\u5728\u8be5\u5bab\u6bbf\u5b89\u7f6e\u4f8d\u536b\u6240\u9700\u7684\u7ecf\u8d39k\uff0c\u8be5\u8fb9\u7684\u513f\u5b50\u6570m\uff0c\u63a5\u4e0b\u6765m\u4e2a\u6570\uff0c\u5206\u522b\u662f\u8fd9\u4e2a\u8282\u70b9\u7684m\u4e2a\u513f\u5b50\u7684\u6807\u53f7r1\uff0cr2\uff0c...\uff0crm\u3002
\u5bf9\u4e8e\u4e00\u4e2an\uff080 < n <= 1500\uff09\u4e2a\u7ed3\u70b9\u7684\u6811\uff0c\u7ed3\u70b9\u6807\u53f7\u57281\u5230n\u4e4b\u95f4\uff0c\u4e14\u6807\u53f7\u4e0d\u91cd\u590d\u3002
\u8f93\u51fa\u6570\u636e\uff1a\u8f93\u51fa\u5230output.txt\u6587\u4ef6\u4e2d\u3002\u8f93\u51fa\u6587\u4ef6\u4ec5\u5305\u542b\u4e00\u4e2a\u6570\uff0c\u4e3a\u6240\u6c42\u7684\u6700\u5c11\u7684\u7ecf\u8d39\u3002
\u5982\u53f3\u56fe\u7684\u8f93\u5165\u6570\u636e\u793a\u4f8b\uff1a
Sample Input
6
1 30 3 2 3 4
2 16 2 5 6
3 5 0
4 4 0
5 11 0
6 5 0
Sample Output
25
10\uff0e \u6e38\u620f\u5ba4\u95ee\u9898
\u6709\u4e00\u4e2a\u6e38\u620f\u5ba4\u91cc\u6709\u591a\u4e2a\u6e38\u620f\u5ba4\uff0c\u5e76\u4e14\u8fd9\u6bcf\u4e2a\u6e38\u620f\u5ba4\u91cc\u8fd8\u6709\u591a\u4e2a\u6e38\u620f\u5ba4\uff0c\u6bcf\u4e2a\u6e38\u620f\u5ba4\u91cc\u9762\u8fd8\u6709\u6e38\u620f\u5ba4\uff0c\u4f9d\u6b64\u7c7b\u63a8\u3002\u8fdb\u5165\u6bcf\u4e2a\u6e38\u620f\u5ba4\u90fd\u53ef\u5f97\u5230\u4e00\u5b9a\u7684\u5feb\u4e50\uff0c\u6bcf\u4e2a\u6e38\u620f\u5ba4\u7684\u95e8\u7968\u4ef7\u683c\u90fd\u5927\u4e8e\u7b49\u4e8e0\uff0c\u90fd\u6709\u4e00\u4e2a\u5feb\u4e50\u503c\uff0c\u5e76\u4e14\u53ea\u6709\u8fdb\u5165\u4e86\u4e00\u4e2a\u6e38\u620f\u5ba4\uff0c\u624d\u53ef\u4ee5\u8fdb\u5165\u5b83\u5185\u90e8\u7684\u6e38\u620f\u5ba4\uff0c\u5c0f\u660e\u73b0\u5728\u6709n\u5143\u94b1\uff0c\u95ee\u6700\u5927\u80fd\u5f97\u5230\u591a\u5c11\u7684\u5feb\u4e50\u3002
11\uff0e *\u57fa\u56e0\u95ee\u9898
\u5df2\u77e5\u4e24\u4e2a\u57fa\u56e0\u5e8f\u5217\u5982s\uff1aAGTAGT\uff1bt\uff1aATTAG\u3002\u73b0\u8981\u4f60\u7ed9\u5e8f\u5217\u4e2d\u589e\u52a0\u4e00\u4e9b\u7a7a\u683c\u540e\uff0c\u9996\u5148\u4f7f\u5f97\u4e24\u4e2a\u5e8f\u5217\u7684\u957f\u5ea6\u76f8\u7b49\uff0c\u5176\u6b21\u4e24\u4e2a\u4e32\u5bf9\u5e94\u7b26\u53f7\u5339\u914d\u5f97\u5230\u7684\u503c\u6700\u5927\u3002\u57fa\u56e0\u53ea\u6709\u56db\u79cd\u5206\u522b\u7528A\u3001G\u3001C\u3001T\u8868\u793a\uff0c\u5339\u914d\u4e2d\u4e0d\u5141\u8bb8\u4e24\u4e2a\u7a7a\u683c\u76f8\u5bf9\u5e94\uff0c\u4efb\u610f\u4e24\u7b26\u53f7\u7684\u5339\u914d\u503c\u7531\u4e0b\u8868\u7ed9\u51fa\uff1a
A G C T \u3015
A 5 -2 -1 -2 -4
G -2 5 -4 -3 -2
C -1 -4 5 -5 -1
T -2 -3 -5 5 -2
\u3015 -4 -2 -1 -2
\u63d0\u793a\uff1a\u5b9a\u4e49\u95ee\u9898l[i][j]\u4e3a\u53d6\u7b2c\u4e00\u4e2a\u5e8f\u5217\u7684\u524di\u9879\uff0c\u548c\u7b2c\u4e8c\u4e2a\u5e8f\u5217\u7684\u524dj\u9879\uff0c\u8fd9\u4e24\u4e2a\u5e8f\u5217\u52a0\u7a7a\u683c\u5339\u914d\u7684\u6700\u5927\u503c\u3002\u5b83\u7684\u6700\u4f18\u503c\u4e0e\u4e09\u4e2a\u5b50\u95ee\u9898\u6709\u5173\uff0cl[i-1][j-1]\u3001l[i][j-1]\u3001l[i-1][j]\u3002
\u5efa\u7acb\u9012\u5f52\u516c\u5f0f\u5982\u4e0b\uff1a

\u5176\u4e2dm[0][t[j]\u8868\u793a\u8868\u4e2d\u7a7a\u683c\u548ct[j]\u5339\u914d\u7684\u5bf9\u5e94\u503c\u3002
\u601d\u8003\uff1a\u672c\u95ee\u9898\u7684\u521d\u59cb\u5316\u3002
12\uff0e *\u7530\u5fcc\u8d5b\u9a6c
\u7530\u5fcc\u4e0e\u9f50\u738b\u8d5b\u9a6c\uff0c\u53cc\u65b9\u5404\u6709n\u5339\u9a6c\u53c2\u8d5b\uff08n<=100\uff09\uff0c\u6bcf\u573a\u6bd4\u8d5b\u8d4c\u6ce8\u4e3a1\u4e24\u9ec4\u91d1\uff0c\u73b0\u5df2\u77e5\u9f50\u738b\u4e0e\u7530\u5fcc\u7684\u6bcf\u5339\u9a6c\u7684\u901f\u5ea6\uff0c\u5e76\u4e14\u9f50\u738b\u80af\u5b9a\u662f\u6309\u9a6c\u7684\u901f\u5ea6\u4ece\u5feb\u5230\u6162\u51fa\u573a\uff0c\u73b0\u8981\u4f60\u5199\u4e00\u4e2a\u7a0b\u5e8f\u5e2e\u52a9\u7530\u5fcc\u8ba1\u7b97\u4ed6\u6700\u597d\u7684\u7ed3\u679c\u662f\u8d62\u591a\u5c11\u4e24\u9ec4\u91d1\uff08\u8f93\u7528\u8d1f\u6570\u8868\u793a\uff09\u3002
\u5206\u6790\uff1a\u5148\u6392\u5e8f\uff0c\u9f50\u738b\u7684\u9a6c\u7684\u901f\u5ea6\u653e\u5728\u6570\u7ec4a\u4e2d\uff0c\u7530\u5fcc\u7684\u9a6c\u7684\u901f\u5ea6\u653e\u5728\u6570\u7ec4b\u4e2d\u3002\u672c\u95ee\u9898\u5e94\u7528\u7684\u7b97\u6cd5\u662f\u52a8\u6001\u89c4\u5212\u548c\u8d2a\u5fc3\u7b97\u6cd5\u76f8\u7ed3\u5408\u89e3\u51b3\u7684\u3002\u4ece\u4e24\u4eba\u7684\u6700\u5f31\u7684\u9a6c\u5165\u624b\uff1a
\u82e5\u7530\u5fcc\u7684\u9a6c\u5feb\uff0c\u5c31\u8ba9\u8fd9\u4e24\u5339\u9a6c\u6bd4\u8d5b\uff1b
\u82e5\u7530\u5fcc\u7684\u9a6c\u6162\uff0c\u5e72\u8106\u5c31\u8ba9\u4ed6\u5bf9\u4ed8\u9f50\u738b\u6700\u5feb\u7684\u9a6c\uff1b
\u82e5\u4e24\u5339\u9a6c\u7684\u901f\u5ea6\u76f8\u7b49\uff0c\u8fd9\u65f6\u6709\u4e24\u79cd\u9009\u62e9\u65b9\u6848\uff0c\u6216\u8005\u5b83\u4fe9\u6bd4\u8d5b\uff0c\u6216\u8005\u5bf9\u4ed8\u9f50\u738b\u6700\u5feb\u7684\u9a6c\u3002
\u5b9a\u4e49\u5b50\u95ee\u9898\uff1al(i\uff0cj)\u4e3a\u9f50\u738b\u7684\u4ece\u7b2ci\u5339\u9a6c\u5f00\u59cb\u7684j\u5339\u9a6c\u4e0e\u7530\u5fcc\u7684\u6700\u5feb\u7684j\u5339\u9a6c\u6bd4\u8d5b\uff0c\u7530\u5fcc\u6240\u83b7\u5f97\u7684\u6700\u5927\u6536\u76ca\u3002
\u5219\uff1a
\u7a0b\u5e8f\u5177\u4f53\u5b9e\u73b0\u65f6\uff0c\u4e3a\u4e86\u9002\u5408c\u6570\u636e\u4ece0\u5f00\u59cb\uff0c\u7a0d\u52a0\u53d8\u52a8\uff0c\u5b9a\u4e49\u5b50\u95ee\u9898\uff1al(i\uff0cj)\u4e3a\u9f50\u738b\u7684\u4ece\u7b2ci\u5339\u9a6c\u5f00\u59cb\u5230\u7b2ci\uff0bj\u5339\u9a6c\u5171j+1\u5339\u9a6c\u4e0e\u7530\u5fcc\u7684\u6700\u5feb\u7684j+1\u5339\u9a6c\u6bd4\u8d5b\uff0c\u7530\u5fcc\u6240\u83b7\u5f97\u7684\u6700\u5927\u6536\u76ca\u3002\u521d\u59cb\u5316\u65f6\uff1al[i][0]\u8868\u793a\u9f50\u738b\u7684\u7b2ci\u5339\u9a6c\u4e0e\u7530\u5fcc\u6700\u5feb\u7684\u9a6c\u6bd4\u8d5b\u7684\u7ed3\u679c\u3002
\u7a0b\u5e8f\u5982\u4e0b\uff1a
#include
void readdata();
void init();
int n,a[100],b[100],l[100][100];
int main()
{
int i,j;
readdata();
init();
for(i=n-2;i>=0;i--)
for(j=1;j<n-i;j++)
if(a[i+j]<b[j])
l[i][j]=l[i][j-1]+1;
else if(a[i+j]>b[j])
l[i][j]=l[i+1][j-1]-1;
else if(l[i+1][j-1]-1>l[i][j-1])
l[i][j]=l[i+1][j-1]-1;
else
l[i][j]=l[i][j-1];
printf("%d",l[0][n-1]);
}
void readdata()
{
int i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
}
void init()
{
int i;
// qsort(a,n); //\u7565
for(i=0;i<n;i++)
{
if(a[i]<b[0])
l[i][0]=1;
else if(a[i]==b[0])
l[i][0]=0;
else
l[i][0]=-1;
}
}

dividing and conquering algorithm
dynamic programming algorithm

嗯···我学动归不是很久,同样是迷惘过,估计两个月前刚刚开窍……
你看他写的什么无后效性什么最优子结构的就头大,我也头大%…………
动态规划一般解决两类问题,一类是最优化问题,就是问你最大价值最小数什么的,另一类是方案总数问题。

细分的话类型很多,
我见得多的(我是高二学生,目前在筹备NOIP)
(你那题多我就只说名字了)
背包,楼上连9讲都放上来了我就不多说了……
最长不上升不下降子序列问题(比如说潘帕斯雄鹰生日模拟赛的飞翔,就是很经典的不下降的变形)
资源分配问题(比如说橱窗布置,马棚问题,机器分配问题)
区间动归(乘积最大,能量项链等等)
最长公共子序列问题(有个遗传编码好像);
解决方案树的比如说爬楼梯问题……………………

动态规划的类型很多很多,因为他很灵活的,我们老师曾经给我们找了100个DP方程,但是那都没有用,强记根本记不住,关键是理解。

深入一点的就有DP的优化,时间空间的降维(就是用别的方法去做,或者比如说背包本来是二维的空间优化过该成一维的了),树形DP(这个我也不会)。
(优化里面有个很经典的题《过河》)

我对DP是属于那种突然就开了窍的……别看说“动态规划”什么的唬人,其实就是一个比较一个计算,知道他干什么了题上来就有头绪,方程啊思想啊就有了……

主要也是多看题吧,从简单的开始,理解他的思想……自己写动归的时候注意下面几个问题:
1、大前提是确定你做的是动归题……看得多了也就知道自己面对的是什么类型的题了
2、次前提是想法要对(我做题的时候先想这道题时间空间的维度,然后根据这个去想方程),方程正确,
实在想不起来可以先看题解,去理解人家的思想之后,不要看标程把程序做出来……
3、注意数组不要开的过小,一般都是左右都开大一点,比如他的数据范围是1~100 ,数组就开0~101.这个是防越界的,因为很多DP赋初值的时候会用到F[0],F[0,0]
4、初始值要正确,因为很多DP其他地方都是正确的因为初始值赋错了而全部过不了的情况是很常见的……(比如说USACO里面的货币系统)
5、DP循环的范围要正确,一般根据题来判断范围写多少的(比如说橱窗问题,今天下午写这个题因为循环写错了一直AC不了)

USACO里也有很多DP题,可以做……
以上全部手打,希望能对你有所帮助。
我也是正在学习的人,上面的东西不一定全部正确,但是对我而言很受用,也算是我的经验了。希望日后能一起学习交流外加进步喽
QQ:340131980
1. 资源问题1
-----机器分配问题
F[I,j]:=max(f[i-1,k]+w[i,j-k])

2. 资源问题2
------01背包问题
F[I,j]:=max(f[i-1,j-v]+w,f[i-1,j]);

3. 线性动态规划1
-----朴素最长非降子序列
F:=max{f[j]+1}

4. 剖分问题1
-----石子合并
F[i,j]:=min(f[i,k]+f[k+1,j]+sum[i,j]);

5. 剖分问题2
-----多边形剖分
F[I,j]:=min(f[i,k]+f[k,j]+a[k]*a[j]*a);

6. 剖分问题3
------乘积最大
f[i,j]:=max(f[k,j-1]*mult[k,i]);

7. 资源问题3
-----系统可靠性(完全背包)
F[i,j]:=max{f[i-1,j-c*k]*P[I,x]}

8. 贪心的动态规划1
-----快餐问题
F[i,j,k]:=max{f[i-1,j',k']+(T-(j-j')*p1-(k-k')*p2) div p3}

9. 贪心的动态规划2
-----过河 f=min{{f(i-k)} (not stone)
{f(i-k)}+1} (stone); +贪心压缩状态

10. 剖分问题4
-----多边形-讨论的动态规划
F[i,j]:=max{正正 f[I,k]*f[k+1,j];
负负 g[I,k]*f[k+1,j];
正负 g[I,k]*f[k+1,j];
负正 f[I,k]*g[k+1,j];} g为min

11. 树型动态规划1
-----加分二叉树 (从两侧到根结点模型)
F[I,j]:=max{f[I,k-1]*f[k+1,j]+c[k]}

12. 树型动态规划2
-----选课 (多叉树转二叉树,自顶向下模型)
F[I,j]表示以i为根节点选j门功课得到的最大学分
f[i,j]:=max{f[t.l,k]+f[t.r,j-k-1]+c}

13. 计数问题1
-----砝码称重
f[f[0]+1]=f[j]+k*w[j];
(1<=i<=n; 1<=j<=f[0]; 1<=k<=a;)

14. 递推天地1
------核电站问题
f[-1]:=1; f[0]:=1;
f:=2*f[i-1]-f[i-1-m]

15. 递推天地2
------数的划分
f[i,j]:=f[i-j,j]+f[i-1,j-1];

16. 最大子矩阵1
-----一最大01子矩阵
f[i,j]:=min(f[i-1,j],v[i,j-1],v[i-1,j-1])+1;
ans:=maxvalue(f);

17. 判定性问题1
-----能否被4整除
g[1,0]:=true; g[1,1]:=false; g[1,2]:=false; g[1,3]:=false;
g[i,j]:=g[i-1,k] and ((k+a[i,p]) mod 4 = j)

18. 判定性问题2
-----能否被k整除
f[I,j±n mod k]:=f[i-1,j]; -k<=j<=k; 1<=i<=n

20. 线型动态规划2
-----方块消除游戏
f[i,i-1,0]:=0
f[i,j,k]:=max{f[i,j-1,0]+sqr(len(j)+k),
f[i,p,k+len[j]]+f[p+1,j-1,0]}
ans:=f[1,m,0]

21. 线型动态规划3
-----最长公共子串,LCS问题
f[i,j]={0(i=0)&(j=0);
f[i-1,j-1]+1 (i>0,j>0,x=y[j]);
max{f[i,j-1]+f[i-1,j]}} (i>0,j>0,x<>y[j]);

22. 最大子矩阵2
-----最大带权01子矩阵O(n^2*m)
枚举行的起始,压缩进数列,求最大字段和,遇0则清零

23. 资源问题4
-----装箱问题(判定性01背包)
f[j]:=(f[j] or f[j-v]);

24. 数字三角形1
-----朴素の数字三角形
f[i,j]:=max(f[i+1,j]+a[I,j],f[i+1,j+1]+a[i,j]);

25. 数字三角形2
-----晴天小猪历险记之Hill
同一阶段上暴力动态规划
if[i,j]:=min(f[i,j-1],f[I,j+1],f[i-1,j],f[i-1,j-1])+a[i,j]

26. 双向动态规划1
数字三角形3
-----小胖办证
f[i,j]:=max(f[i-1,j]+a[i,j],f[i,j-1]+a[i,j],f[i,j+1]+a[i,j])

27. 数字三角形4
-----过河卒
//边界初始化
f[i,j]:=f[i-1,j]+f[i,j-1];

28. 数字三角形5
-----朴素的打砖块
f[i,j,k]:=max(f[i-1,j-k,p]+sum[i,k],f[i,j,k]);

29. 数字三角形6
-----优化的打砖块
f[I,j,k]:=max{g[i-1,j-k,k-1]+sum[I,k]}

30. 线性动态规划3
-----打鼹鼠’
f:=f[j]+1;(abs(x-x[j])+abs(y-y[j])<=t-t[j])

31. 树形动态规划3
-----贪吃的九头龙

32. 状态压缩动态规划1
-----炮兵阵地
Max(f[Q*(r+1)+k],g[j]+num[k])
If (map and plan[k]=0) and
((plan[P] or plan[q]) and plan[k]=0)

33. 递推天地3
-----情书抄写员
f:=f[i-1]+k*f[i-2]

34. 递推天地4
-----错位排列
f:=(i-1)(f[i-2]+f[i-1]);
f[n]:=n*f[n-1]+(-1)^(n-2);

35. 递推天地5
-----直线分平面最大区域数
f[n]:=f[n-1]+n
:=n*(n+1) div 2 + 1;

36. 递推天地6
-----折线分平面最大区域数
f[n]:=(n-1)(2*n-1)+2*n;

37. 递推天地7
-----封闭曲线分平面最大区域数
f[n]:=f[n-1]+2*(n-1)
:=sqr(n)-n+2;
38 递推天地8
-----凸多边形分三角形方法数
f[n]:=C(2*n-2,n-1) div n;
对于k边形
f[k]:=C(2*k-4,k-2) div (k-1); //(k>=3)

39 递推天地9
-----Catalan数列一般形式
1,1,2,5,14,42,132
f[n]:=C(2k,k) div (k+1);

40 递推天地10
-----彩灯布置
排列组合中的环形染色问题
f[n]:=f[n-1]*(m-2)+f[n-2]*(m-1); (f[1]:=m; f[2]:=m(m-1);

41 线性动态规划4
-----找数
线性扫描
sum:=f+g[j];
(if sum=Aim then getout; if sum<Aim then inc(i) else inc(j);)

42 线性动态规划5
-----隐形的翅膀
min:=min{abs(w/w[j]-gold)};
if w/w[j]<gold then inc(i) else inc(j);

43 剖分问题5
-----最大奖励
f:=max(f,f[j]+(sum[j]-sum)*i-t

44 最短路1
-----Floyd
f[i,j]:=max(f[i,j],f[i,k]+f[k,j]);
ans[q[i,j,k]]:=ans[q[i,j,k]]+s[i,q[i,j,k]]*s[q[i,j,k],j]/s[i,j];
45 剖分问题6
-----小H的小屋
F[l,m,n]:=f[l-x,m-1,n-k]+S(x,k);

46 计数问题2
-----陨石的秘密(排列组合中的计数问题)
Ans[l1,l2,l3,D]:=f[l1+1,l2,l3,D+1]-f[l1+1,l2,l3,D];
F[l1,l2,l3,D]:=Sigma(f[o,p,q,d-1]*f[l1-o,l2-p,l3-q,d]);

47 线性动态规划
------合唱队形
两次F:=max{f[j]+1}+枚举中央结点

48 资源问题
------明明的预算方案:加花的动态规划
f[i,j]:=max(f[i,j],f[l,j-v-v[fb]-v[fa]]+v*p+v[fb]*p[fb]+v[fa]*p[fa]);

49 资源问题
-----化工场装箱员

50 树形动态规划
-----聚会的快乐
f[i,2]:=max(f[i,0],f[i,1]);
f[i,1]:=sigma(f[t^.son,0]);
f[i,0]:=sigma(f[t^.son,3]);

51 树形动态规划
-----皇宫看守
f[i,2]:=max(f[i,0],f[i,1]);
f[i,1]:=sigma(f[t^.son,0]);
f[i,0]:=sigma(f[t^.son,3]);

52 递推天地
-----盒子与球
f[i,1]:=1;
f[i,j]:=j*(f[i-1,j-1]+f[i-1,j]);

53 双重动态规划
-----有限的基因序列
f:=min{f[j]+1}
g[c,i,j]:=(g[a,i,j] and g[b,i,j]) or (g[c,i,j])

54 最大子矩阵问题
-----居住空间
f[i,j,k]:=min(min(min(f[i-1,j,k],f[i,j-1,k]),
min(f[i,j,k-1],f[i-1,j-1,k])),
min(min(f[i-1,j,k-1],f[i,j-1,k-1]),
f[i-1,j-1,k-1]))+1;
55 线性动态规划
------日程安排
f:=max{f[j]}+P[I]; (e[j]<s)

56 递推天地
------组合数
C[I,j]:=C[i-1,j]+C[I-1,j-1]
C[I,0]:=1

57 树形动态规划
-----有向树k中值问题
F[I,r,k]:=max{max{f[l,I,j]+f[r,I,k-j-1]},f[f[l,r,j]+f[r,r,k-j]+w[I,r]]}

58 树形动态规划
-----CTSC 2001选课
F[I,j]:=w(if i∈P)+f[l,k]+f[r,m-k](0≤k≤m)(if l<>0)

59 线性动态规划
-----多重历史
f[i,j]:=sigma{f[i-k,j-1]}(if checked)

60 背包问题(+-1背包问题+回溯)
-----CEOI1998 Substract
f[i,j]:=f[i-1,j-a] or f[i-1,j+a]

61 线性动态规划(字符串)
-----NOI 2000 古城之谜
f[i,1,1]:=min{f[i+length(s),2,1], f[i+length(s),1,1]+1}f[i,1,2]:=min{f[i+length(s),1,2]+words[s],f[i+length(s),1,2]+words[s]}

62 线性动态规划
-----最少单词个数
f[i,j]:=max{f[I,j],f[u-1,j-1]+l}

63 线型动态规划
-----APIO2007 数据备份
状态压缩+剪掉每个阶段j前j*2个状态和j*2+200后的状态贪心动态规划
f:=min(g[i-2]+s,f[i-1]);
64 树形动态规划
-----APIO2007 风铃
f:=f[l]+f[r]+{1 (if c[l]<c[r])}
g:=1(d[l]<>d[r]) 0(d[l]=d[r])
g[l]=g[r]=1 then Halt;

65 地图动态规划
-----NOI 2005 adv19910
F[t,i,j]:=max{f[t-1,i-dx[d[[t]],j-dy[d[k]]]+1],f[t-1,i,j];

66 地图动态规划
-----优化的NOI 2005 adv19910
F[k,i,j]:=max{f[k-1,i,p]+1} j-b[k]<=p<=j;

67 目标动态规划
-----CEOI98 subtra
F[I,j]:=f[I-1,j+a] or f[i-1,j-a]

68 目标动态规划
----- Vijos 1037搭建双塔问题
F[value,delta]:=g[value+a,delta+a] or g[value,delta-a]

69 树形动态规划
-----有线电视网
f[i,p]:=max(f[i,p],f[i,p-q]+f[j,q]-map[i,j])
leaves>=p>=l, 1<=q<=p;

70 地图动态规划
-----vijos某题
F[I,j]:=min(f[i-1,j-1],f[I,j-1],f[i-1,j]);

71 最大子矩阵问题
-----最大字段和问题
f:=max(f[i-1]+b,b); f[1]:=b[1]

72 最大子矩阵问题
-----最大子立方体问题
枚举一组边i的起始,压缩进矩阵 B[I,j]+=a[x,I,j]
枚举另外一组边的其实,做最大子矩阵

73 括号序列
-----线型动态规划
f[I,j]:=min(f[I,j],f[i+1,j-1](ss[j]=”()”or(”[]”)),
f[I+1,j+1]+1 (s[j]=”(”or”[” ] , f[I,j-1]+1(s[j]=”)”or”]” )

74 棋盘切割
-----线型动态规划
f[k,x1,y1,x2,y2]=min{min{f[k-1,x1,y1,a,y2]+s[a+1,y1,x2,y2],
f[k-1,a+1,y1,x2,y2]+s[x1,y1,a,y2]
min{}}

75 概率动态规划
-----聪聪和可可(NOI2005)
x:=p[p[i,j],j]
f[I,j]:=(f[x,b[j,k]]+f[x,j])/(l[j]+1)+1
f[I,i]=0
f[x,j]=1

76 概率动态规划
-----血缘关系
F[A, B]=(f[A0, B]+P[A1, B])/2
f[I,i]=1
f[I,j]=0(I,j无相同基因)

77 线性动态规划
-----决斗
F[I,j]=(f[I,j] and f[k,j]) and (e[I,k] or e[j,k]),i<k<j

78 线性动态规划
-----舞蹈家
F[x,y,k]=min(f[a[k],y,k+1]+w[x,a[k]],f[x,a[k],k+1]+w[y,a[k]])

79 线性动态规划
-----积木游戏
F[I,a,b,k]=max(f[I,a+1,b,k],f[i+1,a+1,a+1,k’],f[I,a+1,a+1,k’])

80 树形动态规划(双次记录)
-----NOI2003 逃学的小孩
朴素的话枚举节点i和离其最远的两个节点 j,k O(n^2)
每个节点记录最大的两个值,并记录这最大值分别是从哪个相邻节点传过来的。当遍历到某个孩子节点的时候,只需检查最大值是否是从该孩子节点传递来的。如果是,就取次大,否则取最大值

81 树形动态规划(完全二叉树)
-----NOI2006 网络收费
F[I,j,k]表示在点i所管辖的所有用户中,有j个用户为A,在I的每个祖先u上,如果N[a]>N则标0否则标1,用二进制状态压缩进k中,在这种情况下的最小花费
F[I,j,k]:=min{f[l,u,k and (s<<(i-1))]+w1,f[r,j-u,k and(s<<(i-1))]}

82 树形动态规划
-----IOI2005 河流
F:=max

83 记忆化搜索
-----Vijos某题,忘了
F[pre,h,m]:=sigma{SDP(I,h+1,M+i)} (pre<=i<=M+1)

84 状态压缩动态规划
-----APIO 2007 动物园
f[I,k]:=f[i-1,k and not (1<<4)] + NewAddVal

85 树形动态规划
-----访问术馆
f[i,j-c×2]:= max ( f[l,k], f[r,j-c×2-k] )

86 字符串动态规划
-----Ural 1002 Phone
if exist(copy(s,j,i-j)) then f:=min(f,f[j]+1);

87 多进程动态规划
-----CEOI 2005 service
Min( f[i,j,k], f[i-1,j,k] + c[t[i-1],t] )
Min( f[i,t[i-1],k], f[i-1,j,k] + c[j,t] )
Min( f[i,j,t[i-1]], f[i-1,j,k] + c[k,t] )

88 多进程动态规划
-----Vijos1143 三取方格数
max(f[i,j,k,l],f[i-1,j-R[m,1],k-R[m,2],l-R[m,3]]);
if (j=k) and (k=l) then inc(f[i,j,k,l],a[j,i-j]) else
if (j=k) then inc(f[i,j,k,l],a[j,i-j]+a[l,i-l]) else
if (k=l) then inc(f[i,j,k,l],a[j,i-j]+a[k,i-k]) else
if (j=l) then inc(f[i,j,k,l],a[j,i-j]+a[k,i-k]) else
inc(f[i,j,k,l],a[j,i-j]+a[k,i-k]+a[l,i-l]);

89 线型动态规划
-----IOI 2000 邮局问题
f[i,j]:=min(f[I,j],f[k,j-1]+d[k+1,i]);

90 线型动态规划
-----Vijos 1198 最佳课题选择
if j-k>=0 then Min(f[i,j],f[i-1,j-k]+time(i,k));
91 背包问题
----- USACO Raucous Rockers
多个背包,不可以重复放物品,但放物品的顺序有限制。
F[I,j,k]表示决策到第i个物品、第j个背包,此背包花费了k的空间。
f[I,j,k]:=max(f[I-1,j,k],f[I-1,j,k-t]+p,f[i-1,j-1,maxtime-t])

92 多进程动态规划
-----巡游加拿大(IOI95、USACO)
d[i,j]=max{d[k,j]+1(a[k,i] & j<k<i),d[j,k]+1(a[I,j] & (k<j))}。

f[i,j]表示从起点出发,一个人到达i,另一个人到达j时经过的城市数。d[i,j]=d[j,i],所以我们限制i>j
分析状态(i,j),它可能是(k,j)(j<k<i)中k到达i得到(方式1),也可能是(j,k)(k<j)中k超过j到达i得到(方式2)。但它不能是(i,k)(k<j)中k到达j得到,因为这样可能会出现重复路径。即使不会出现重复路径,那么它由(j,k)通过方式2同样可以得到,所以不会遗漏解 时间复杂度O(n3)

93 动态规划
-----ZOJ cheese
f[i,j]:=f[i-kk*zl[u,1],j-kk*zl[u,2]]+a[i-kk*zl[u,1],j-kk*zl[u,2]]

94 动态规划
-----NOI 2004 berry 线性
F[I,1]:=s
F[I,j]:=max{min{s-s[l-1]},f[l-1,j-1]} (2≤j≤k, j≤l≤i)

95 动态规划
-----NOI 2004 berry 完全无向图
F[I,j]:=f[i-1,j] or (j≥w) and (f[i-1,j-w])

96 动态规划
-----石子合并 四边形不等式优化
m[i,j]=max{m[i+1,j], m[i,j-1]}+t[i,j]

97 动态规划
-----CEOI 2005 service
(k≥long,i≥1)g[i, j, k]=max{g[i-1,j,k-long]+1,g[i-1,j,k]}
(k<long,i≥1) g[i, j, k]=max{g[i-1,j-1,t-long]+1,g[i-1,j,k]}
(0≤j≤m, 0≤k<t) g[0,j,k]=0;
ans:=g[n,m,0]。

状态优化:g[i, j]=min{g[i-1,j],g[i-1,j-1]+long}
其中(a, b)+long=(a’, b’)的计算方法为:
当b+long ≤t时: a’=a; b’=b+long;
当b+long >t时: a’=a+1; b’=long;
规划的边界条件:
当0≤i≤n时,g[i,0]=(0,0)

98 动态规划
-----AHOI 2006宝库通道
f[k]:=max{f[k-1]+x[k,j]-x[k,i-1], x[k,j]-x[k,i-1]}

99 动态规划
-----Travel
A) 费用最少的旅行计划。
设f表示从起点到第i个旅店住宿一天的最小费用;g表示从起点到第i个旅店住宿一天,在满足最小费用的前提下所需要的最少天数。那么:
f=f[x]+v, g=g[x]+1
x满足:
1、 x<i,且d – d[x] <= 800(一天的最大行程)。
2、 对于所有的t < i, d – d[t] <= 800,都必须满足:
A. g[x] < g[t](f[x] = f[t]时) B. f[x] < f[t] (其他情况)
f[0] = 0,g[0] = 0。 Ans:=f[n + 1],g[n+1]。

B). 天数最少的旅行计划。
方法其实和第一问十分类似。
设g’表示从起点到第i个旅店住宿一天的最少天数;f’表示从起点到第i个旅店住宿一天,在满足最小天数前提下所需要的最少费用。那么:
g’ = g’[x] + 1, f’ = f’[x] + v
x满足:
1、 x<i,且d – d[x] <= 800(一天的最大行程)。
2、 对于所有的t < i, d – d[t] <= 800,都必须满足:
f’[x] < f’[t] g’[x] = g’[t]时
g’[x] < g’[t] 其他情况
f’[0] = 0,g’[0] = 0。 Ans:=f’[n + 1],g’[n+1]。

100 动态规划
-----NOI 2007 cash
y:=f[j]/(a[j]*c[j]+b[j]);
g:=c[j]*y*a+y*b;
f:=max(f,g)

不做题目是不可能提高水平的,方法都是在做题中学会的。
像背包是一个基础模型,很多题目都是由它演化而来
你只要把NOIP2000年到2008年每一道题都学会用最优方法做出来就一定可以很好的掌握DP。
而且NOIP中一些题目的独特思想,比如过河的O(N LOG N) 算法,合并果子的O(N),树网的核的O(N)算法都是很值得学的,

把所有做过的DP方程全写出来,整理,化简,记住大体格式。再去做一些动归,强迫自己套用做过的经典格式,再做一些变形。考虑清楚边界,若AC了,你就会发现思路很清楚!
晕!不发了,楼上的一样啊!看楼上的OIer的吧,写得很好!
PS:我也是高二的
QQ:854024564

我自己写的总结,还没有写完,如果需要的话,我写完给你发去

我的QQ:422194011 验证信息: 110

五.动态规划
①记忆划搜索(滑雪)
function dp():longint;
begin
if 被搜索过 then exit();
枚举所有可能推出的状态
begin
temp:=新的状态
如果比记录的更优,则更新
end;
exit(f[]);
end;

②数塔问题(1取方格数、数字三角形)
f[i,j]表示从(1,1)走到(i,j)的最大(最小)权和
f[i,j]=max(f[i-1,j],f[i-1,j-1])+a[i,j]

③多进程动态规划
a) 三取方格数
设3个同时进行取方格数的操作,f[t,x1,x2,x3]表示第t步,第一次第二次第三次的纵坐标分别是x1,x2,x3
f[t,x1,x2,x3]=max(f[t-1,x1,x2,x3],f[t-1,x1,x2,x3-1],f[t-1,x1,x2-1,x3],f[t-1,x1,x2-1,x3-1],f[t-1,x1-1,x2,x3],f[t-1,x1-1,x2,x3-1],f[t-1,x1-1,x2-1,x3],f[t-1,x1-1,x2-1,x3-1])+temp
关于temp,由于两次如果在一个地方,则数字不再重复加,则
if (x1=x2) and (x2=x3) then temp:=a[x1,y1];
if (x1=x2) and (x2<>x3) then temp:=a[x1,y1]+a[x3,y3];
if (x1<>x2) and (x2=x3) then temp:=a[x1,y1]+a[x3,y3];
if (x1<>x2) and (x2<>x3) then temp:=a[x1,y1]+a[x2,y2]+a[x3,y3];
if (x1=x3) and (x1<>x2) then temp:=a[x1,y1]+a[x2,y2];
if (x1<>x3) and (x3=x2) then temp:=a[x1,y1]+a[x2,y2];
最后结果f[n+n-1,n,n,n]

b) 传纸条(二取方格数)
设两张纸条同时从(1,1)开始传,传往(n,m), f[i,j1,j2]表示第i步,第一张纸条、第二张纸条的纵坐标分别是j1,j2
f[i,j1,j2]=max(f[i-1,j1,j2],f[i-1,j1-1,j2],f[i-1,j1,j2-1],f[i-1,j1-1,j2-1])+a[i-j1+1,j1]+a[i-j2+1,j2]
另外如果j1=j2 且 i<>n+m-1 则f[i,j1,j2]=-maxlongint 两个纸条无法传递到同一个人上
最终答案 f[n+m-1,m,m]

c) Canada Tour usaco
f[i,j]表示甲到i城市,乙到j城市,所经过的最多的城市
则f[i,j]f[j,i]
f[i,j]=max(f[i,k]+1) map[k,i]连通 ,且f[i,k]>0(表示map[1,i]间接连通)
边界条件 f[1,1]=1
最终结果 max(max(f[k,n]),1) 且map[i,n]

④最大子XX形
a) 盖房子 vijos 1057 最大子正方形
f[I,j]表示右上角所能围成的最大正方形的面积,则
f[i,j]=min(f[i+1,j],f[i+1,j+1],f[i,j+1])+1
边界条件f[I,j]=0
结果max(f[I,j])

b) 迎春舞会之集体舞 vijos 1063 最大子三角形
f[I,j,k]表示I,j为三角形的底,长度为k的三角形是否能构成,则
f[i,j,k]= (f[i-1,j-1,k-1]) and (f[i-1,j+1,k-1]) and (f[i-1,j,1]) and (f[i,j,1]) and (odd(j-i-1)) (判断奇数保证三角形的合法性)
边界条件 f[I,j,1]=true
最终结果 在K循环下 当f数组如果没有被更新 则层数为k-1

⑤背包问题
01背包问题(每件物品只有一件)
F[I,j]表示前i个物品,放入一个j重量的背包的价值
W[i] 第i个物品的重量 c[i]第i个物品的价值
For i:=1 to n do
For j:=w[i] to m do
F[I,j]=max(f[i-1,j],f[i-1,j-w[i]]+c[i];
可将空间优化成o(n)
For i:=1 to n do
For j:=m downto w[i] do
F[j]=max(f[j-w[i]]+c[i],f[j])
如果要求背包恰好被装满 则初始化f为-oo f[0]=0
如果要求背包不需要装满 则初始化f为0

2维空间
var
f:array[0..1000,0..1000] of longint;
i,j,n,m:longint;
w,c:array[0..1000] of longint;

function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;

begin
readln(m,n);
for i:=1 to n do
readln(w[i],c[i]);
for i:=1 to n do
for j:=1 to m do
if j>=w[i] then
f[i,j]:=max(f[i-1,j],f[i-1,j-w[i]]+c[i])
else
f[i,j]:=f[i-1,j];
writeln(f[n,m]);
end.

1维空间
var
w,c,f:array[0..1000] of longint;
i,j,n,m:longint;

function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;

begin
readln(m,n);
for i:=1 to n do
readln(w[i],c[i]);
for i:=1 to n do
for j:=m downto w[i] do
f[j]:=max(f[j],f[j-w[i]]+c[i]);
writeln(f[m]);
end.

完全背包问题(物品数量不限)
1维空间复杂度
var
f,w,c:array[0..1000] of longint;
i,j,n,m:longint;

function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;

begin
readln(n,m);
for i:=1 to n do
readln(w[i],c[i]);
for i:=1 to n do
for j:=w[i] to m do
f[j]:=max(f[j],f[j-w[i]]+c[i]);
writeln(f[m]);
end.

2维空间复杂度
var
f:array[0..1000,0..1000] of longint;
w,c:array[0..1000] of longint;
i,j,n,m,k:longint;

function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;

begin
readln(n,m);
for i:=1 to n do
readln(w[i],c[i]);
for i:=1 to n do
for j:=1 to m do
begin
for k:=1 to (j div w[i]) do
if j-k*w[i]>=0 then
f[i,j]:=max(f[i-1,j],f[i-1,j-k*w[i]]+k*c[i])
else
f[i,j]:=f[i-1,j];
if f[i,j]<f[i-1,j] then f[i,j]:=f[i-1,j];
end;
writeln(f[n,m]);
end.

多重背包问题(物品数量限制) O(n*V*∑g[i])。
var
f:array[0..1000,0..1000] of longint;
w,c,g:array[0..1000] of longint;
i,j,n,m,k:longint;

function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;

begin
readln(n,m);
for i:=1 to n do
readln(w[i],c[i],g[i]);
for i:=1 to n do
for j:=1 to m do
begin
for k:=1 to g[i] do
if j-k*w[i]>=0 then
f[i,j]:=max(f[i-1,j],f[i-1,j-k*w[i]]+k*c[i])
else
f[i,j]:=f[i-1,j];
if f[i,j]<f[i-1,j] then f[i,j]:=f[i-1,j];
end;
writeln(f[n,m]);
end.

二维费用背包(有两个费用)
3维空间复杂度
var
f:array[0..100,0..100,0..100] of longint;
v,w,g:array[0..100] of longint;
n,m,i,j,x,q,p,k:longint;

function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;

begin
readln(n,m,x);
for i:=1 to n do
readln(v[i],w[i],g[i]);
for i:=1 to n do
for j:=1 to m do
for k:=1 to x do
begin
if (j<w[i]) or (k<g[i]) then f[i,j,k]:=f[i-1,j,k] else
f[i,j,k]:=max(f[i-1,j,k],f[i-1,j-w[i],k-g[i]]+v[i]);
end;
writeln(f[n,m,x]);
end.

2维空间复杂度
var
f:array[0..1000,0..1000] of longint;
w,v,g:array[0..1000] of longint;
i,j,n,m,x,k:longint;

function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;

begin
readln(n,m,x);
for i:=1 to n do
readln(v[i],w[i],g[i]);
for i:=1 to n do
for j:=m downto w[i] do
for k:=x downto g[i] do
f[j,k]:=max(f[j,k],f[j-w[i],k-g[i]]+v[i]);
writeln(f[m,x]);
end.

其他累背包问题:
记录方案数 usaco 2.2 subest sums
dp[i,j]前i个物品达到j的方案数
dp[i,j]=dp[i-1,j]+dp[i-1,j-i] j-i>=0
dp[i,j]=dp[i-1,j] j-i<0

装箱问题 noip2001普及组 第四题
F[i,j]表示前i个物品是否能装到j
F[I,j]=f[i-1,j] or f[i-1,j-w[i]]

最小乘车费用 山寨vj 1015
f[j]表示前行j公里,需要花费的最小钱数
f[j]=min(f[j-w[i]]) j-w[i]>=0

⑥区间类
一般f[i,j]表示i到j的最优值
以I到j的差距l来划分阶段
For l:=1 to n-1 do
For i:=1 to n-l do
J:=i+l;

乘法游戏 山寨vj 1014
F[i,j]表示i到j区间内的最小值
f[i,j]=min(f[i,k]+f[k,j]+a[i]*a[j]*a[k])

添加括号 vijos 1038
F[i,j]表示区间内i到j的最小值
F[I,j]=min(f[I,k],f[k+1,j])+sum[I,j];

加分二叉树 NOIP 2003 提高组 第3题
F[I,j]表示I到j区间内形成的树的最大价值
f[i,j]=max(f[i,k-1]*f[k+1,j]+a[k])

能量项链 NOIP 2006 提高组 第1道
F[I,j]表示I到j的最大能量释放总之
f[i,j]=max(f[i,k]+f[k,j]+a[i]*a[j]*a[k])

回文词 ioi 2002
f[i,j]表示从i到j组成回文词插入的最小长度
f[I,j]= min(f[i+1,j],f[I,j-1])+1 (s[i]<>s[j])
f[i+1,j-1] (s[i]=s[j])

⑦依靠最小数划分类
数的划分 NOIP 2001 提高组 第2道
一个数分成n个部分,如果在n个部分中有1,则删去这个部分,另外所有的全部减1
F[I,j]表示i分成j个部分
F[I,j]=f[i-1,j-1]+f[i-j,j]

⑧树形DP
选课 vijos 1180

杂题:
传球游戏 noip 2008 普及组
F[I,j]表示传i次,传到j个人
f[i,j]=f[i-1,j-1]+f[i-1,j+1];

关于动态规划记录路径的相关问题
再开一个对应的数组,转移时记录状态,递归输出
procedure print();
var t:longint;
begin
if 没有达到最终目的地 then print();
输出信息
end;

跟你个网站http://people.csail.mit.edu/bdean/6.046/dp/
这种东西没有指定的方法,即使告诉你方法也并不能理解,你自己认真思考几道题就明白了 这也是科学领域里的最好的方法

  • 缂栫▼! 鏂瑰潡娑堥櫎闂 鍔ㄦ佽鍒
    绛旓細e..璨屼技灏戣创浜嗕竴鐐圭偣銆傘傝繖鏄疧(nm^3)鐨勬爣绋嬨傘俶鏄繛缁殑鏁板瓧鐩稿悓鐨勬鏁帮紝姣斿鏍蜂緥m=4銆傘傛壘涓嶅埌鏇村ソ鐨勭畻娉曘傘傚ソ鍍忋傘備笉鏄緢闀裤傘俢onst limit =100;inf ='block.in';outf ='block.out';var n,m :longint;color,len ,rest,prev :array[0..limit+1] of long...
  • 姹侾ID绠楁硶绋嬪簭璇﹁В?!!!
    绛旓細鍥炵瓟锛氭帹鑽愰鐩:绠鍗曚腑绛,缁忓吀TSP闂涓瓑,鐘舵佸帇缂〥P涓瓑涓瓑,鏍戝舰DP銆傚彲鍙傝冦婄畻娉曡壓鏈笌淇℃伅瀛︾珵璧涖鍔ㄦ佽鍒涓鑺傜殑鏍戠姸妯″瀷涓瓑,銆婄畻娉曡壓鏈笌淇℃伅瀛︾珵璧涖嬩腑鐨勪範棰樹腑绛,銆婄畻娉曡壓鏈笌淇℃伅瀛︾珵璧涖嬩腑鐨勪範棰樹腑绛,銆婄畻娉曡壓鏈笌淇℃伅瀛︾珵璧涖嬩腑鐨勪範棰樹腑绛,閫掓帹涓瓑,闇瑕佸噺灏戝啑浣欒绠椾腑绛,鍥涜竟褰笉绛夊紡鐨勭畝鍗曞簲...
  • MPC绠楁硶娴佺▼璇﹁В(涓)
    绛旓細鎺ヤ笅鏉ワ紝鎴戜滑灏嗘繁鍏ユ帰璁∕PC涓鍔ㄦ佽鍒(DP)鐨勫叧绯汇傚湪闈炵嚎鎬х郴缁熶腑锛岄氬父鐢ㄥ井鍒嗘柟绋嬶紙渚嬪寮1锛夋潵琛ㄨ揪锛岃孧PC鐨勭洰鏍囨槸鎵惧埌鏈浼樻帶鍒跺緥鏉ラ┍鍔ㄧ郴缁熻秼鍚戜簬鍘熺偣銆傚綋绯荤粺澶嶆潅鎬у鍔犳椂锛屾垜浠氬父閲囩敤绂绘暎鍖栫殑鏂规硶锛屽宸垎鏂圭▼锛堝紡4锛夋潵杩戜技澶勭悊銆傚湪澶勭悊绂绘暎绯荤粺鏃讹紝浠d环鍑芥暟鐨勬眰瑙h嚦鍏抽噸瑕侊紙寮5锛夛紝瀹冨紩瀵兼垜浠...
  • 0-1鑳屽寘闂鍏ラ棬璇﹁В
    绛旓細0-1鑳屽寘闂璇寸殑鏄紝缁欏畾鑳屽寘瀹归噺W锛屼竴绯诲垪鐗╁搧{weiht,value}锛屾瘡涓墿鍝佸彧鑳藉彇涓浠讹紝鑾峰彇鏈澶у笺傞噰鐢鍔ㄦ佽鍒姹傝В锛屽姩鎬佽鍒掔殑涓鑸寰嬮兘鏄紝鍦ㄤ粈涔堜粈涔堝墠i涓姸鎬佷笅鐨勬渶澶у兼垨鑰呮渶灏忓肩殑鍓嶆彁涓嬶紝鐒跺悗鍐嶆妸i鐨勭姸鎬佺殑鍊兼眰鍑烘潵銆傝繖閲屾垜浠畾涔変竴涓嚱鏁帮紝琛ㄧず鐘舵併俶(1,2,3,4..i)(w)琛ㄧず鏈1鍙,2...
  • 鐢熺墿淇℃伅瀛:鍋囪涓ゆ潯搴忓垪:catgt鍜宎cgctg.鍒╃敤鍔ㄦ佽鍒鏂规硶鏉ヨ繘琛...
    绛旓細鍏堢敾鍑虹煩闃碉紝鍥炴函锛屽緱鍒版瘮瀵圭粨鏋滐紝杩欐槸鎴戝仛鐨勶紝浣犵湅涓
  • 鎵旈浮铔嬮棶棰璇﹁В
    绛旓細褰撳ぇ瀛︽暀鎺堟墜涓彙鏈変竴绛愮壒鍒殑楦¤泲锛屾寫鎴樿嚜鐒剁殑娉曞垯锛屽皾璇曟彮绀哄灞傛ゼ鎵旇泲涓嶇鐨勭瓥鐣ワ紝杩欎笉浠呬粎鏄竴涓疄楠岋紝鏇存槸涓鍦烘櫤鎱х殑瀵瑰喅銆傛暀鎺堢簿蹇冭璁′簡鍥涚鏂规硶鏉ユ帰绱㈣繖绁炵鐨勫钩琛$偣锛氭灇涓炬硶锛堜互鐗虹壊灏濊瘯娆℃暟鎹㈠彇瀹夊叏锛夛紝浜屽垎娉曪紙椋庨櫓涓庢晥鐜囦箣闂寸殑鎶夋嫨锛夛紝鍏ㄥ眬骞宠 鍏紡绠楁硶锛堝鍚屼笅妫嬬殑娣辨濈啛铏戯級锛屼互鍙鍔ㄦ佽鍒锛...
  • 2019鍖瑰吂鍫″ぇ瀛﹀伐涓氬伐绋嬩笓涓璇﹁В
    绛旓細闄ゆ涔嬪锛屽彲閫夋嫨瀛︿範灏嗚繍绛规蹇佃繍鐢ㄤ簬鐢熶骇瑙勫垝銆佸簱瀛樻帶鍒躲佹帓鏈熴佽澶囧竷灞涓庤璁°佸埗閫犲伐鑹虹瓑棰嗗煙銆傞変慨璇惧寘鎷綉缁滀紭鍖栥佹暣鏁拌鍒掋鍔ㄦ佽鍒銆佹ā鎷熶豢鐪熴佺缁忕綉缁溿佽瘯鎺紭鍖栥佸彲闈犳т笌鍙淮鎶ゆт互鍙婂疄楠岃璁°傛柊浜у搧寮鍙戜笌鍒堕 宸ヤ笟宸ョ▼绯讳竴鑸兘灏嗗埗閫犱笟浣滀负鏍稿績棰嗗煙銆備絾鍦ㄥ尮鍏瑰牎澶у锛屽伐涓氬伐绋嬪凡缁忎笉浠呬粎灏嗗埗閫...
  • 璇﹁В缂栬緫璺濈(Edit Distance)鍙婂叾浠g爜瀹炵幇
    绛旓細2 鍔ㄦ佽鍒 閫掑綊鏄粠鍚庡悜鍓嶅垎瑙o紝閭d笌涔嬬浉瀵圭殑灏辨槸浠庡墠鍚戝悗璁$畻锛岄愭笎鎺ㄥ鍑烘渶缁堢粨鏋滐紝姝ゆ硶琚О涔嬩负鍔ㄦ佽鍒掞紝鍔ㄦ佽鍒掑緢閫傜敤浜庡叿鏈夐噸鍙犺绠楁ц川鐨勯棶棰橈紝浣嗚繖涓繃绋嬩腑浼氬瓨鍌ㄥぇ閲忕殑涓棿璁$畻鐨勭粨鏋滐紝涓涓ソ鐨勫姩鎬佽鍒掔畻娉曚細灏介噺鍑忓皯绌洪棿澶嶆潅搴︺傜紪杈戣窛绂绘槸NLP鍩烘湰鐨勫害閲忔枃鏈浉浼煎害鐨勭畻娉曪紝鍙互浣滀负鏂囨湰鐩镐技...
  • 缃戜笂璧勬枡鐪嬩笉鏄庣櫧,澶钩娲嬮噾浣戜汉鐢熸眰璇﹁В!
    绛旓細杞荤棁锛夌殑淇濋殰锛屼繚闅滅梾绉嶅仛鍒颁笟鍐呴鍏堛傚湪淇濋殰娣卞害鏂归潰锛屸滈噾浣戜汉鐢熲濈獊鐮存у湴瀹炵幇浜嗗闄╀繚棰濄侀噸澶х柧鐥呬繚棰濄佺壒瀹氱柧鐥咃紙杞荤棁锛変繚棰濋殢涓婚櫓鍒嗙孩姘村钩鐨勫悓姝ュ闀匡紝甯姪瀹㈡埛鎶靛尽鍥犻氳揣鑶ㄨ儉銆佸尰鐤楄垂鐢ㄤ笂鍗囬犳垚鐨勬湭鏉ヤ繚闅滈噾棰濅笉瓒崇殑椋庨櫓锛屽仛鍒拌韩浠枫佸ぇ鐥呫佽交鐥囦笁澶т汉鐢熼闄╃殑涓夐噸鍔ㄦ佽鍒 ...
  • 涓撻绡噟鏍堜笌闃熷垪璇﹁В
    绛旓細鍗曡皟鏍 / 鍗曡皟闃熷垪杩樻湁鏇村姞骞挎硾鐨勮繍鐢,渚嬪鏌愪簺鍔ㄦ佽鍒闂闇瑕佷娇鐢ㄥ崟璋冮槦鍒楄繘琛屼紭鍖,杩欑被闂灏嗗湪鍔ㄦ佽鍒掍笓棰樹腑鍐嶅睍寮浠嬬粛銆 鎬荤粨: 涓嶇鏄垰鎺ヨЕ璁$畻鏈虹殑澶у鐢熻繕鏄噯澶囨眰鑱岄潰璇曠殑绋嬪簭鍛,鏍堝拰闃熷垪鐨勬蹇靛拰搴旂敤鏄竴瀹氳鎺屾彙鐨,瀹冧滑鏈鍩虹鐨勬暟鎹粨鏋,鐞嗚В浜嗚繖浜涙暟鎹粨鏋勭殑鐢ㄦ硶,灏辫兘鍦ㄥ悇绉嶇紪绋嬮棶棰樹腑鍔犱互搴旂敤銆 鎬讳箣,...
  • 扩展阅读:27报名动态第1047期 ... 坐骑式二十七报红桃 ... 双人互动插画图片视频教程 ... 公路地磅超多少吨抓拍 ... 动态磅违章怎么查询 ... 27报第400期带声音 ... 27报名动态第630期 ... 就业规划200字 ... 动态地磅超载不承认 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网