1158 pick numbers

来源:互联网 发布:动态sql防止sql注入 编辑:程序博客网 时间:2024/06/06 09:08
// bfs #include <iostream>#include <queue>using namespace std;const int N=12;int G[N][N];int s1[]={0,1};int s2[]={1,0};int outpu,m,n;struct statu{int aa,bb,valuee;statu(){}statu(int a,int b,int va){aa=a;bb=b;valuee=va;}};void bfs(){queue<statu>que;que.push(statu(1,1,G[1][1]));while(!que.empty()){statu st=que.front();que.pop();if(st.aa==m&&st.bb==n&&st.valuee>0){outpu=min(outpu,st.valuee);}statu temp; // vital for (int i=0;i<2;i++)  //i=0 move left  i=1 move down{temp.aa=st.aa+s1[i];temp.bb=st.bb+s2[i];temp.valuee=st.valuee+G[temp.aa][temp.bb];if (temp.aa<=m&&temp.bb<=n){que.push(statu(temp.aa,temp.bb,temp.valuee));}}}}int main(){while (cin>>m>>n){outpu=1000;for (int i=1;i<=m;i++){for (int j=1;j<=n;j++){cin>>G[i][j];}}bfs();if (outpu<1000){cout<<outpu<<endl;}elsecout<<-1<<endl;}return 0;}

0 0
原创粉丝点击