首页 > 学院 > 开发设计 > 正文

1068. 万绿丛中一点红(20)乙级

2019-11-06 07:16:24
字体:
来源:转载
供稿:网友

暴力破解

#include<iostream>#include<vector>#include<cmath>#include<map>using namespace std;vector<vector<int>> all;map<int,int> visited;int N, M, T;bool pd(int x, int y){ if (x - 1 >= 0 && y - 1 >= 0 && abs(all[x][y] - all[x - 1][y - 1]) <= T) return false; if (x - 1 >= 0 && abs(all[x][y] - all[x - 1][y]) <= T) return false; if (x - 1 >= 0 && y + 1 < M && abs(all[x][y] - all[x - 1][y + 1]) <= T) return false; if (y - 1 >= 0 && abs(all[x][y] - all[x][y - 1]) <= T) return false; if (y + 1 < M && abs(all[x][y] - all[x][y + 1]) <= T) return false; if (x + 1 < N && y - 1 >= 0 && abs(all[x][y] - all[x + 1][y - 1]) <= T) return false; if (x + 1 < N && abs(all[x][y] - all[x + 1][y]) <= T) return false; if (x + 1 < N && y + 1 < M && abs(all[x][y] - all[x + 1][y + 1]) <= T) return false; return true;}int main(){ int cnt = 0; int x, y; cin >> M>>N>>T; all.resize(N, vector<int>(M)); for (int t = 0;t < N;t++) for (int i = 0;i < M;i++) { cin >> all[t][i]; visited[all[t][i]]++; } for (int t = 0;t < N;t++) for (int i = 0;i < M;i++) if (visited[all[t][i]]==1&&pd(t, i)) { if (++cnt > 1) { cout << "Not Unique" << endl;return 0; } x = t + 1;y = i + 1; } if (cnt == 0) cout << "Not Exist" << endl; else PRintf("(%d, %d): %d/n", y, x, all[x - 1][y - 1]);}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表