J. Anti-merge
题意增加了思维的难度。 虽然看着像之前做的二分图,但本质上就是个染色问题,stl容器的使用更易处理这个问题。 思维难点在于:我只需要一种类型的标记就可防止相邻相同类型的格子避免合并。 ans[0]记录每轮最少需要的染色次数
#include
using namespace std;
const int inf=0x3f3f3f3f;
const int N=505;
int n,m,a[N][N],types;
int dx[5]={1,0,-1,0};
int dy[5]={0,1,0,-1};
vectorans[5];
int color[N][N];
bool check(int i,int j)
{
int k1=0,k2=0;
if(i-1>=1&&a[i-1][j]==a[i][j]) k1=1;
if(j-1>=1&&a[i][j-1]==a[i][j]) k2=1;
if(k1||k2) return 1;
return 0;
}
void dfs(int x,int y,int col)
{
color[x][y]=col;
ans[col].push_back({x,y});
for(int i=0;i=1&&nx=1&&ny>n>>m;
for(int i=1;ia[i][j];
for(int i=1;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?