#include <bits/stdc++.h>
using namespace std;
int a[10001][10001];
int x[100001];
int y[100001];
double f[1001][1001];
int gh[10001][1001];
int main()
{
int g=100;
int n,m,k;
cin>>n>>m>>k;
for(int i=1;i<=k;i++)
{
cin>>x[i]>>y[i];
}
for(int i=1;i<=n;i++)
{
f[i][0]=i*100;
}
for(int i=1;i<=m;i++)
{
f[0][i]=i*100;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{int flog=0;
for(int op=1;op<=k;op++)
{
if(x[op]==i)
{
if(y[op]==j)
{
flog=1;
}
}
}
if(flog==1&&gh[i][j]==0)
{
if((f[i-1][j-1]+sqrt(100.0*100.0+100.0*100.0))<=f[i][j-1]+g&&(f[i-1][j-1]+sqrt(100.0*100.0+100.0*100.0))<=f[i-1][j]+g)
{
f[i][j]=f[i-1][j-1]+sqrt(100.0*100.0+100.0*100.0);
}
else if(f[i-1][j]+g<=f[i-1][j-1]+sqrt(100.0*100.0+100.0*100.0)&&f[i-1][j]+g<=f[i][j-1])
{
f[i][j]=f[i-1][j]+g;
}
}
else
{
if(f[i-1][j]+g<=f[i][j-1]+g)
{
f[i][j]=f[i-1][j]+g;
}
else
{
f[i][j]=f[i][j-1]+g;
}
}
}
}
cout<<round(f[n][m]);
}
走捷径(csp模拟)
最新推荐文章于 2024-02-29 20:11:56 发布