好久没有自己独立做出题了。
就是一个dp.
画图就可以得出Dp关系
/*
ID:jinbo wu
TASK:bigbrn
LANG:C++
*/
#include<bits/stdc++.h>
using namespace std;
bool a[1010][1010];
int b[1010][1010];
int main()
{
freopen("bigbrn.in","r",stdin);
freopen("bigbrn.out","w",stdout);
int n,m;
cin>>n>>m;
int u,v;
for(int i=0;i<m;i++)
{
cin>>u>>v;
a[u][v]=1;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if(a[i][j])
b[i][j]=0;
else
b[i][j]=1;
}
int ans=1;
for(int i=2;i<=n;i++)
for(int j=2;j<=n;j++)
{
if(!a[i][j])
{
b[i][j]=min(b[i-1][j-1],min(b[i-1][j],b[i][j-1]))+1;
}
ans=max(ans,b[i][j]);
}
cout<<ans<<endl;
}
本文通过一个具体的例子介绍了如何使用动态规划(DP)解决特定问题。利用C++代码实现了一个基于图的DP算法,通过构建布尔矩阵来确定状态转移方程,并最终求得最大路径长度。

1480

被折叠的 条评论
为什么被折叠?



