题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2721

题意: 给定n个左标,跟那n个坐标相同的 且3个以上的消失,圈都 靠下, 而且 如果一整列都没有的话,就都往左靠。。。。

思路:比赛的时候没调试完,,,, 最坑爹的是,用后台数据测试都对了,结果还是wrong, 经过鑫哥指导。。。那些字符要以字符串的形式输入,

否则会wrong ,后台的原因不知道为什么。。。

 #include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std; int dx[]= {,-,,};
int dy[]= {,,,-};
char G[][],map[][];
struct node
{
int x,y;
}a[]; struct point
{
int x,y;
}pos,next;
void bfs(int x1,int y1)
{
int i,j,k,count=;
int vis[][];
char ch;
char f;
f='a';
memset(vis,,sizeof(vis));
ch=G[x1][y1];
queue<point>q;
next.x=x1;
next.y=y1;
vis[x1][y1]=; q.push(next);
while(!q.empty())
{
pos=q.front();
q.pop();
count++;
for(i=; i<; i++)
{
next.x=pos.x+dx[i];
next.y=pos.y+dy[i];
if(!vis[pos.x+dx[i]][pos.y+dy[i]]&&G[pos.x+dx[i]][pos.y+dy[i]]==ch&&
pos.x+dx[i]>=&&pos.x+dx[i]<=&&pos.y+dy[i]>=&&pos.y+dy[i]<=)
{
vis[pos.x+dx[i]][pos.y+dy[i]]=;
q.push(next);
}
}
}
if(count>=)//刚开始 没看到这句with a cluster of 3 or more circles,
{
for(i=; i<=; i++)
for(j=; j<=; j++)
if(vis[i][j]==)
G[i][j]=f;
}
for(i=; i<=; i++)
{
for(j=; j>=; j--)//一定要倒着来,因为这个调试了好长时间。。。
{
if(G[i][j]==f)
{
for(k=j; k<=; k++)
{
G[i][k]=G[i][k+];
G[i][k+]=f;
}
}
}
}
for(i=; i>=; i--)//一定要倒着来,因为这个调试了好长时间。。。
{
if(G[i][]==f)
{
for(j=i; j<=; j++)
for(k=; k<=; k++)
{
G[j][k]=G[j+][k];
G[j+][k]=f;
}
}
}
}
int main()
{
int n,i,j,sum;
char ch;
char f;
f='a';
while(scanf("%d%*c",&n)!=EOF&&n)
{
sum=;
memset(G,,sizeof(G));
memset(map,,sizeof(map)); for(i=; i>=; i--)
cin>>map[i]; for(i=; i>=; i--)
{
for(j=; j<=; j++)
G[j][i]=map[i][j-];
}
for(i=; i<n; i++)
{
cin>>ch>>a[i].y;
a[i].x=ch-;
if(G[a[i].x][a[i].y]!=f)
bfs(a[i].x,a[i].y);
}
for(i=; i<=; i++)
for(j=; j<=; j++)
if(G[i][j]!=f)
sum++; printf("%d\n",sum);
}
return ;
}

最新文章

  1. 如何通过cmd开一个本地服务器
  2. SQLSERVER2008 R2安装说明
  3. Github代理设置
  4. city-picker 选择省市县的一个控件,好用。
  5. 【FTP】在自己的电脑上建立FTP服务器
  6. DiskGenius无损调整分区大小
  7. Muduo 多线程模型对比
  8. 7 天玩转 ASP.NET MVC — 第 6 天
  9. leetcode:Roman to Integer(罗马数字转化为罗马数字)
  10. WPF笔记(2.5 Canvas)——Layout
  11. java设计模式之单例设计模式和多例设计模式
  12. Chapter_4_JAVA作业
  13. sleep()和wait()的区别及wait方法的一点注意事项
  14. BZOJ4858 : [Jsoi2016]炸弹攻击 2
  15. Feign禁用Hystrix
  16. C# 枚举值 (二) 多属性 操作
  17. 调用链系列三、基于zipkin调用链封装starter实现springmvc、dubbo、restTemplate等实现全链路跟踪
  18. 怎么查 ODBC Driver for SQL Server
  19. kettle学习笔记(五)——kettle输出步骤
  20. C++零散知识点

热门文章

  1. Ecshop实现仿Taobao地区运费模板
  2. Java 多线程 简单实例 (Runnable)
  3. IOS 学习参考
  4. 友盟分享在appdelegate中的调用语句举例
  5. Java程序员的发展前景
  6. 1874 素数和最大 - Wikioi
  7. PHP中CURL方法curl_setopt()函数的一些参数 (转)
  8. WCF服务的创建和发布到IIS
  9. AlphaGo 已经战胜了李世石,而你还不知道什么是机器学习?
  10. 将ANGULAR与后端请求结合