题意很好懂,大致就是三种颜色,红和蓝一起会变绿,给个终态矩阵,问从原始状态到终态最少画几笔?  按一定规则画

思路就是记红为1,蓝为2,绿为3,先遍历绿色,针对每一块绿色进行删除,每找到一块绿色,首先将它置零,然后主对角线上和它挨着的红色或绿色-1,副对角线上和它挨着的蓝色或绿色-2,ans+2; 知道所有绿色遍历完为止。然后在遍历剩余的红色和蓝色,红色块主对角线上和它挨着的红色-1(包括它)ans+1,绿色副对角线上和它挨着的蓝色-2(包括它)ans+1。  最后输出ans即可。

#include<cstdio>
#include<cstring>
#include<iostream> using namespace std; int n,m;
int g[][];
int ans=;
void dfs_1(int x,int y) //左上
{
while(g[x][y]==||g[x][y]==)
{
// puts("1");
g[x][y]--;
x--;
y--;
}
}
void dfs_2(int x,int y) // 右下
{
while(g[x][y]==||g[x][y]==)
{
// puts("1");
g[x][y]--;
x++;
y++;
}
}
void dfs_3(int x,int y) // 左下
{
while(g[x][y]==||g[x][y]==)
{
// puts("1");
g[x][y]-=;
x++;
y--;
}
}
void dfs_4(int x,int y) // 右上
{
while(g[x][y]==||g[x][y]==)
{
// puts("1");
g[x][y]-=;
x--;
y++;
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
ans=;
memset(g,,sizeof(g));
scanf("%d",&n);
for(int i=;i<=n;i++)
{
char cc[];
memset(cc,'\0',sizeof(cc));
scanf("%s",cc);
m=strlen(cc);
for(int j=;j<m;j++)
{
if(cc[j]=='R') g[i][j+]=;
if(cc[j]=='B') g[i][j+]=;
if(cc[j]=='G') g[i][j+]=;
}
}
for(int a=;a<=n;a++)
{
for(int b=;b<=m;b++)
{
if(g[a][b]==)
{
g[a][b]=;
dfs_1(a-,b-);
dfs_2(a+,b+);
dfs_3(a+,b-);
dfs_4(a-,b+);
ans+=;
}
}
}
for(int c=;c<=n;c++)
{
for(int d=;d<=m;d++)
{
if(g[c][d]==)
{
g[c][d]=;
dfs_1(c-,d-);
dfs_2(c+,d+);
ans++;
}
else if(g[c][d]==)
{
g[c][d]=;
dfs_3(c+,d-);
dfs_4(c-,d+);
ans++;
}
}
}
printf("%d\n",ans);
}
}

最新文章

  1. C# 项目提交过程中感受
  2. MSSQL订阅库索引对齐
  3. 「Mobile Testing Summit China 2016」 中国移动互联网测试大会-议题征集
  4. 【USACO】Transformations(模拟)
  5. URL编码数据转换为JSON数据
  6. HTML5 indexedDB数据库的入门学习(二)
  7. navicat for mysql 显示中文乱码解决办法
  8. ext2 源代码解析之 “从路径名到目标结点” (一)
  9. javascript event bubbling and capturing (再谈一谈js的事件冒泡和事件补获,看到这篇文章加深了理解)
  10. 第三方库API接口
  11. Neutron Vlan Network 学习
  12. mmap:速度快+整块操作
  13. P4178 Tree
  14. nodejs多版本管理
  15. python_文件操作
  16. Zookeeper客户端介绍
  17. Robo 可视化mongoDb的操作
  18. #pragma alloc_text
  19. 安卓开发笔记——关于Handler的一些总结(上)
  20. 【css】弹性盒模型

热门文章

  1. $.ajax和$.load的区别
  2. HDU 1305 Immediate Decodability 可直接解码吗?
  3. pta编程题19 Saving James Bond 2
  4. SAP成都研究院非典型程序猿,菜园子小哥:当我用UI5诊断工具时我用些什么
  5. memcached for .net on windows
  6. 判断一个字符串是否为GUID的方法
  7. 【BZOJ3940】[USACO2015 Feb] Censoring (AC自动机的小应用)
  8. 【ML】聊天机器人
  9. 2018.5.17 oracle函数查询
  10. 2018. 2.4 Java中集合嵌套集合的练习