中国海洋大学第四届朗讯杯高级组 Cash Cow(模拟)
题目: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 ;
}
中国海洋大学第四届朗讯杯高级组 Cash Cow(模拟)的更多相关文章
- 中国海洋大学第四届朗讯杯高级组 I Cuckoo for Hashing
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2719&cid=1203 题意 :意思就是哈希来的,具体大意就是说有两个哈希表,然后有这样 ...
- 中国海洋大学第四届朗讯杯高级组 A 2718 Rocky(模拟)
题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2718 题意:优先直走,右 左 后.... ...
- 中国海洋大学第四届朗讯杯高级组 A Rocky
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2718&cid=1203 题意:给你一个m乘n的格子阵,从一边进去,直线往前走,如果前边有 ...
- 腾讯云 安全组配置及与MySQL 远程登录失败原因浅析
前言,知道自己腾讯云服务器安全组配置并在安全组里开放了所有端口的用户可以粗略的看看下边的内容,否则就仔细看看吧. 因为有学习及业务需要,我要在腾讯云上安装了CentOS7.2版本的服务器上安装MySQ ...
- 第四届蓝桥杯C++B组省赛
1.高斯日记 2.马虎的算式 3.第39级台阶 4.黄金连分数 5.前缀判断 6.三部排序 7.错误票据 8.翻硬币 9.带分数 10.连号区间数
- 第四届蓝桥杯C++B组国(决)赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.猜灯谜 A 村的元宵节灯会上有一迷题: 请猜谜 * 请猜谜 = 请边赏灯边猜 小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的 ...
- CF 3-6 2级组 D题 STRESSFUL TRAINING 紧张的比赛
题目大概是这样的: 给出一个数列a[n] ,对于每一个数 a [i] 来说 都会在 T - - 时 -= b[i] 每个数都在任何时刻不能小于0 你可以在每次T - - 之前时给 一 个 a[i] + ...
- [2020年10月28日普级组]1405.小B浇花
区 间 和 的 和 区间和的和 区间和的和 题目解析 就直接模拟,从最低的花的高度向最高的花的高度枚举,如果当循环变量的值到达了顶峰,但还有花的数量大于2的,就把循环上线加一(所以数组要开大些) Co ...
- [2020年10月28日普级组]1406.SMRTFUN
S M R T F U N SMRTFUN SMRTFUN 题目描述 "又肥又温顺,又大又笨,他们看起来那么傻,而且也不有趣--" 这些牛想要证明,他们是既有趣,又聪明的.为了这样 ...
随机推荐
- Node.Js之【Stream 之复制文件问题】
var fs = require('fs'), path = require('path'), out = process.stdout; var filePath = 'F:/IMG_0221.MO ...
- Redis源码研究--字符串
之前看的内容,占个位子,以后补上. ------------8月2日------------- 好久没看了,惭愧,今天抽了点时间重新看了Redis的字符串,一边写博客,一边看. Redis的字符串主要 ...
- centos6.4下安装freetds使php支持mssql
centos版本:6.4 php版本5.3.17 没有安装之前的情况:nginx+php+mysql+FPM-FCGI 接下来安装步骤如下: 1.打开http://www.freetds.org/,进 ...
- 使用WebGL实现一个Viewer来显示STL文件
关键字:WebGL,STL,ThreeJS,Chrome,Viewer,Python3.4, HTML5,Canvas. OS:Windows 10. 本文介绍如何使用ThreeJS来实现一个WebG ...
- Python数据结构————二叉查找树的实现
对于二叉查找树的每个节点Node,它的左子树中所有的关键字都小于Node的关键字,而右子树中的所有关键字都大于Node的关键字. 二叉查找树的平均深度是O(log N). 1.初始化 class Bi ...
- 关于python多线程编程中join()和setDaemon()的一点儿探究
关于python多线程编程中join()和setDaemon()的用法,这两天我看网上的资料看得头晕脑涨也没看懂,干脆就做一个实验来看看吧. 首先是编写实验的基础代码,创建一个名为MyThread的 ...
- asp.net mvc 伪静态路由配置
asp.net mvc实现伪静态路由必须按如下方式设置好,才能访问 .htm 或者.html页面 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspne ...
- Linux下Mysql数据库备份
今天一同事的电脑无缘无故坏了,找了IT部门检测说是硬盘坏了,数据无法恢复.好悲剧.自己博客也写了好久不容易,要是突然间数据丢了那怎么办!于是写了个数据库自动备份脚本,并创建任务计划,实现每天22:30 ...
- Kinetic使用注意点--ellipse
new Ellipse(config) 参数: config:包含所有配置项的对象. { radius: "半径,可以用数字a.数组[a,b]或对象{x:a,y:b}来表示" } ...
- C#基础及记忆概念
在C#中,你给一个方法传输值类型参数时,实际上是使用的这个参数的一个副本,就是将原来的变量复制一份,然后传给一个方法,让其进行操作.所以在方法内部对参数的修改等不会对原来的参数造成影响(这个其实就是值 ...