讨论 / PID94 / 飙车 动归题 c++代码
tjsudys 2014-03-31 06:28:52
点我顶贴 收藏 删除
#include <vector>

#include <iostream>

#include <algorithm>

using namespace std;

int road[103][11]={0};

int max(int a,int b,int c)

{

if(a<b)a=b;

if(a<c)a=c;

return a;

}

int max(int a,int b,int c,int d)

{

if(a<b)a=b;

if(a<c)a=c;

if(a<d)a=d;

return a;

}

int min(int a,int b,int c,int d)

{

if(a>b)a=b;

if(a>c)a=c;

if(a>d)a=d;

return a;

}

int main()

{

int n, l;

int mint=10000;

char t;

cin>>n>>l;

for(int i=1;i<=n;i++)

for(int j=0;j<l;j++)

{

cin>>t;

if(t=='1')

road[i][j]=1;

else road[i][j]=00;

}

for(int i=n-1;i>=0;i-=2)

{

for(int j=0;j<l;j++)

road[i][j]=min(road[i+1][j]+road[i][j]+road[i+2][j],j==0?10000:road[i+2][j-1]+road[i][j],j==(l-1)?10000:road[i][j]+road[i+2][j+1],10000);

}

for(int i=1-n%2,j=0;j<l;j++)

{

mint = mint>road[i][j]? road[i][j]:mint;

}

cout<<mint;

}

查看更多回复
提交回复