HDU 2258
来源:互联网 发布:oracle数据库下载教程 编辑:程序博客网 时间:2024/06/05 11:26
题目: http://acm.hdu.edu.cn/showproblem.php?pid=2258
跟HDU 3295 是一样的消去方法。。感觉这题比 3295还容易点,可能是因为先打3295,总体思路差不多所以感觉容易点了。= =!。。直接按题意模拟即可。。没什么细节问题。
下面是AC代码:
#include<iostream>#include<cstring>#include<cstdio>#include<vector>using namespace std;char map[25][25];char temp_map[25][25];bool vis[25][25];bool mark[25][25];int n,m,ans,cur_max;int dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}};bool cheack(int x,int y){ return x>=0&&x<n&&y>=0&&y<m; return false;}void dfs(int x,int y,char color){ for(int i=0;i<4;i++){ int nx=x+dir[i][0],ny=y+dir[i][1]; if(cheack(nx,ny)&&!vis[nx][ny]&&temp_map[nx][ny]==color){ vis[nx][ny]=true; temp_map[nx][ny]='0'; cur_max+=1; dfs(nx,ny,color); } }}void move_zero(){ vector<char > temp[25]; int len=0,i,j; for( i=0;i<m;i++){ for( j=n-1;j>=0;j--) if(map[j][i]>'0') break; if(j>=0){ for(int j=n-1;j>=0;j--){ if(map[j][i]>'0') temp[len].push_back(map[j][i]); } for(int j=temp[i].size();j<n;j++) temp[len].push_back('0'); len++; } } for(int i=len;i<m;i++){ for(int j=0;j<n;j++) temp[i].push_back('0'); } for(int i=0;i<n;i++) for(int j=0;j<m;j++){ map[i][j]=temp[j][n-1-i]; }// for(int i=0;i<m;i++){// for(int j=0;j<n;j++)// cout<<map[i][j]<<" ";// cout<<endl;// }}int main(){ int cnt; while(scanf("%d%d",&n,&m)!=EOF){ for(int i=0;i<n;i++) scanf("%s",map[i]); ans=0; while(1){ cnt=0; for(int i=0;i<n;i++) for(int j=0;j<m;j++) temp_map[i][j]=map[i][j]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++) if(temp_map[i][j]>'0'){ memset(vis,false,sizeof(vis)); cur_max=1; vis[i][j]=true; dfs(i,j,temp_map[i][j]); if(cnt<cur_max){ cnt=cur_max; for(int l=0;l<n;l++) for(int k=0;k<m;k++) mark[l][k]=vis[l][k]; } } } if(cnt<=1) break; ans+=cnt*(cnt-1); for(int i=0;i<n;i++) for(int j=0;j<m;j++) if(mark[i][j]){ map[i][j]='0'; } move_zero(); } cout<<ans<<endl; } return 0;}
- HDU 2258
- hdu 2258 BFS
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- Linux下修改PATH路径
- 连连看两图连通检测算法(Objective-c)
- WinCE6.0配置文件之一:Catalog Item文件pbxml属性
- 清理Mysql日志
- Python常用辅助安全测试6个代码例子
- HDU 2258
- 感觉良好
- Python 编码时应该注意的几件事情
- Oracle的体系结构(四)内存结构
- 黑马程序员——父类—子类之间的多态
- MVC 3.0 身份认证
- 13个超棒的代码资源网站推荐
- 一位大牛整理的python资源
- SAS日期格式输出格式大全