hdu5319 简单模拟
2024-09-03 03:42:34
题意很好懂,大致就是三种颜色,红和蓝一起会变绿,给个终态矩阵,问从原始状态到终态最少画几笔? 按一定规则画
思路就是记红为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);
}
}
最新文章
- C# 项目提交过程中感受
- MSSQL订阅库索引对齐
- 「Mobile Testing Summit China 2016」 中国移动互联网测试大会-议题征集
- 【USACO】Transformations(模拟)
- URL编码数据转换为JSON数据
- HTML5 indexedDB数据库的入门学习(二)
- navicat for mysql 显示中文乱码解决办法
- ext2 源代码解析之 “从路径名到目标结点” (一)
- javascript event bubbling and capturing (再谈一谈js的事件冒泡和事件补获,看到这篇文章加深了理解)
- 第三方库API接口
- Neutron Vlan Network 学习
- mmap:速度快+整块操作
- P4178 Tree
- nodejs多版本管理
- python_文件操作
- Zookeeper客户端介绍
- Robo 可视化mongoDb的操作
- #pragma alloc_text
- 安卓开发笔记——关于Handler的一些总结(上)
- 【css】弹性盒模型
热门文章
- $.ajax和$.load的区别
- HDU 1305 Immediate Decodability 可直接解码吗?
- pta编程题19 Saving James Bond 2
- SAP成都研究院非典型程序猿,菜园子小哥:当我用UI5诊断工具时我用些什么
- memcached for .net on windows
- 判断一个字符串是否为GUID的方法
- 【BZOJ3940】[USACO2015 Feb] Censoring (AC自动机的小应用)
- 【ML】聊天机器人
- 2018.5.17 oracle函数查询
- 2018. 2.4 Java中集合嵌套集合的练习