我要的幸福
来源:互联网 发布:浙江教育网络电视 编辑:程序博客网 时间:2024/04/25 17:45
题目描述
Zyh相信自己想要的幸福在不远处。然而,zyh想要得到这幸福,还需要很长的一段路。Zyh坚持认为整个人生可以抽象为一个n*m的棋盘。左上角的格子为(1,1),右下角的格子为(n,m)。整个棋盘上的格子都有不同的事件,因为生活的多姿多彩,事件的权值Aij都两两不同。不幸的是,在整个人生中有若干个极其黑暗的事件,它们的权值Aij=0。更进一步说,对于Aij>0的事件,权值两两不同。
Zyh站在人生的起点(1,1),他想要走向人生的巅峰(n,m)。Zyh认为人只能前进,即若Zyh站在(a,b),他只能走向(a,b+1)或者(a+1,b)。并且Zyh认为黑暗的事件是绝对不可以触碰的,因为一旦经历就会坠入万丈深渊。Zyh会将自己所经历的事件的权值依次写出,形成一个n+m-1的序列。Zyh想知道其中字典序最小(保证前面的数字尽量小)的序列是什么。若是人生过于艰难,没有一个合法序列,就输出”Oh,the life is too difficult!”,不包含引号。
输入
输入的第一行是两个正整数n和m。接着是n行m列的人生棋盘。
输出
输出只有一行,如果存在合法序列,则为n+m-1个用一个空格隔开的权值。否则就输出Oh,the life is too difficult!
样例输入
3 3
1 3 4
11 9 0
5 6 8
样例输出
1 3 9 6 8
提示
Input
2 3
1 0 3
0 4 5
Output
Oh,the life is too difficult!
Hint
对于20%的数据 n<10 m<10
对于60%的数据 n<=300 m<=300
对于100%的数据 n<=1000 m<=1000 Aij<=1e9
bfs,每次把那个小的先添加进队列。
#include<cstdio>#include<iostream>using namespace std;int n,m,t,w,l,r,len;int a[1005][1005],x[1000005],y[1000005],f[1000005];int p[1005][1005],ans[2005];int main(){ cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&a[i][j]); t=0;w=1; x[1]=1;y[1]=1;p[1][1]=1; while(t<w) { t++; if(x[t]==n&&y[t]==m) break; l=x[t]; r=y[t]; if(a[l+1][r]<a[l][r+1]) { if(a[l+1][r]>0&&p[l+1][r]==0) { w++; x[w]=l+1; y[w]=r; f[w]=t; p[l+1][r]=1; } if(a[l][r+1]>0&&p[l][r+1]==0) { w++; x[w]=l; y[w]=r+1; f[w]=t; p[l][r+1]=1; } } else { if(a[l][r+1]>0&&p[l][r+1]==0) { w++; x[w]=l; y[w]=r+1; f[w]=t; p[l][r+1]=1; } if(a[l+1][r]>0&&p[l+1][r]==0) { w++; x[w]=l+1; y[w]=r; f[w]=t; p[l+1][r]=1; } } } while(f[t]!=0) { len++; ans[len]=a[x[t]][y[t]]; t=f[t]; } if(a[1][1]==0||len!=n+m-2) { cout<<"Oh,the life is too difficult!"<<endl; return 0; } len++; ans[len]=a[1][1]; for(int i=len;i>1;i--) printf("%d ",ans[i]); cout<<ans[1]<<endl; return 0;}
0 0
- 我要的幸福
- 我要的幸福
- 我要的幸福
- 我要的幸福
- 我要稳稳的幸福!
- 我要的就是简单的幸福
- jzoj 3813 我要的幸福
- 我的大幸福
- 我的小幸福
- 幸福的我 加油
- 我的幸福呢?
- 我眼中的幸福、
- 我菛 的 幸福
- 我的幸福
- 为了我的幸福
- 我的幸福时刻
- 我們的幸福
- 我要幸福
- 每日一笑(3)
- 雷军的宿命:从万籁俱寂到舞台中央的喧嚣
- SQL 服务无法启动,日志显示9003错误
- Win8无法升级.NET Framework 3.5.1的解决办法
- 用友T1-商贸宝库存商品明细账
- 我要的幸福
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- 报表勾稽关系问题
- 支付宝支付接口之异步回调
- 图论总结
- 用友备份/恢复临时路径修改
- 「企业上云」系列之开源数据库的现状
- Mysql命令
- 软件测试从业者 - 向戚继光学管理