class Solution {
public:
static const int N =10;
int cnt=0;
int g[N][N];
int method[N][N];
typedef pair<int,int> PII;
PII st[N][N];
Solution(){
memset(g,0,sizeof(g));
memset(st,-1,sizeof(st));
memset(method,2,sizeof(method));
}
bool check(int i,int j){
if(!g[i][j+1]){
if(st[i][j+1].first!=-1){
st[i][j]=make_pair(i,j+1);
st[i][j+1]=make_pair(i,j);
cnt++;
return true;
}
else{
if(check(st[i][j+1].first,st[i][j+1].second)){
st[i][j]=make_pair(i,j+1);
st[i][j+1]=make_pair(i,j);
cnt++;
return true;
}
}
}
if(!g[i+1][j]){
if(st[i+1][j].first!=-1){
st[i][j]=make_pair(i+1,j);
st[i+1][j]=make_pair(i,j);
cnt++;
return true;
}
else{
if(check(st[i+1][j].first,st[i+1][j].second)){
st[i][j]=make_pair(i+1,j);
st[i+1][j]=make_pair(i,j);
cnt++;
return true;
}
}
}
return false;
}
int domino(int n, int m, vector<vector<int>>& broken) {
int broken_size = broken.size();
for(int i=0;i< broken_size;i++){
int a = broken[i][0];
int b = broken[i][1];
g[a][b] = -1;
g[b][a] = -1;
// method[a-1][b]-=1;
// method[a][b-1]-=1;
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(!g[i][j] & st[i][j].first!=-1){//没坏掉
bool flag = check(i,j);
}
}
}
return cnt;
}
};
785. 判断二分图【有bug版,暂时没有找出来】
于 2023-10-06 21:34:00 首次发布