UVA 11882(p218)----Biggest Number
2016-02-27 13:49
435 查看
#include<iostream> #include<cstring> #include<algorithm> #include<queue> #include<cstdio> using namespace std; typedef long long LL; const int maxn=33; struct node { int a[maxn],len; void cl() { len=0; } void print() { for(int i=0;i<len;i++) printf("%d",a[i]); printf("\n"); } bool operator < (const node &rhs) const { if(len!=rhs.len) return len<rhs.len; for(int i=0;i<len;i++) if(a[i]!=rhs.a[i]) return a[i]<rhs.a[i]; return false; } }; struct point { int x,y; }; int dx[]={1,-1,0,0}; int dy[]={0,0,1,-1}; node ans,now,tmp; char mat[maxn][maxn]; bool vis[maxn][maxn]; bool vis2[maxn][maxn]; int n,m; int can[maxn]; int maxlen(int x,int y) { queue<point> q; point temp; temp.x=x;temp.y=y; q.push(temp); int ret=1; can[0]=mat[x][y]-'0'; memset(vis2,0,sizeof(vis2)); vis2[x][y]=1; while(!q.empty()) { point now,next; now=q.front(); q.pop(); for(int i=0;i<4;i++) { next.x=now.x+dx[i]; next.y=now.y+dy[i]; if(!isdigit(mat[next.x][next.y])||vis[next.x][next.y]||vis2[next.x][next.y]) continue; vis2[next.x][next.y]=true; can[ret++]=mat[next.x][next.y]-'0'; q.push(next); } } return ret; } void dfs(int x,int y) { now.a[now.len++]=mat[x][y]-'0'; vis[x][y]=true; for(int i=0;i<4;i++) { int px=x+dx[i],py=y+dy[i]; if(!isdigit(mat[px][py])||vis[px][py]) continue; int wantlen=maxlen(px,py); if(now.len+wantlen<ans.len) continue; if(now.len+wantlen==ans.len) { sort(can,can+wantlen); tmp=now; for(int i=wantlen-1;i>=0;i--) tmp.a[tmp.len++]=can[i]; if(tmp<ans) continue; } dfs(px,py); } if(ans<now) ans=now; now.len--; vis[x][y]=false; } int main() { //freopen("in.in","r",stdin); while(scanf("%d%d",&n,&m)!=EOF&&n&&m) { memset(mat,0,sizeof(mat)); for(int i=1;i<=n;i++) scanf("%s",&mat[i][1]); ans.cl();now.cl(); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) if(isdigit(mat[i][j])) dfs(i,j); } ans.print(); } return 0; }
相关文章推荐
- 3439: Kpm的MC密码 trie+主席树
- [UVA1587]BOX
- Apple Pay编程指导
- JSP学习笔记一之JSP的结构与生命周期
- UVA 11584(p275)----Partitioning by Palindromes
- 程序猿学习创业《第一期》
- 机器学习流行算法一览
- 阿里云服务器Web项目配置发布全过程(五)
- JavaWeb—DBUtils框架简介、DbUtils类、QueryRunner类 、ResultSetHandler接口
- UVA 11582(p316)----Colossal Fibonacci Numbers!
- 腾讯QQ:异地登陆也被封号,你们是怎么决策的???
- vim-ctags-taglist-netrw
- nefu fibs的位数 461 (矩阵)
- HDU-1176 做个骑士,以梦为马
- 我的Python成长之路---第六天---Python基础(19)---2016年2月20日(晴)
- UVA 11572(p239)----Unique snowflakes
- 【CI学习笔记】一个用PHP写的,简单的MVC实例
- 跟着视频做的SSH项目总结
- Android-----declare-styleable
- 发现了一个好的全面且好用的数据接口