您的位置:首页 > 其它

ural 1119. Metro(dp)

2014-10-10 09:45 405 查看
//简单dp,直接上代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;

double dp[1005][1005];
int a[1005][1005];
int main()
{
int n,m,k;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(a,0,sizeof(a));
scanf("%d",&k);
for(int t=0;t<k;t++)
{
int i,j;
scanf("%d%d",&i,&j);
a[i][j]=1;
}
int i,j;
for(i=0;i<=n;i++)
dp[i][0]=i;
for(j=0;j<=m;j++)
dp[0][j]=j;
for(i=1;i<=n;++i)
{
for(j=1;j<=m;++j)
{
if(a[i][j])
dp[i][j]=min(min(dp[i-1][j-1]+sqrt(2.),dp[i-1][j]+1),dp[i][j-1]+1);
else
dp[i][j]=min(dp[i-1][j]+1,dp[i][j-1]+1);
}
}
double ans=dp
[m]*100;
printf("%.0lf\n",ans);

}
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: