Codeforces Beta Round #6 (Div. 2 Only) B. President's Office
2015-02-20 09:04
393 查看
题目大意
给出一个n*m的矩阵 ,描述桌子的布局。总统的桌子和他的副手的桌子相邻,每一个人的桌子有它独有的颜色。问总统有多少个副手。解题思路
搜出总统的桌子在矩阵中的边界后判断边界外的其它颜色桌子的数量。题目代码
#include <set> #include <map> #include <queue> #include <math.h> #include <vector> #include <string> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <cctype> #include <algorithm> #include <time.h> #define eps 1e-10 #define pi acos(-1.0) #define inf 107374182 #define inf64 1152921504606846976 #define lc l,m,tr<<1 #define rc m + 1,r,tr<<1|1 #define zero(a) fabs(a)<eps #define iabs(x) ((x) > 0 ? (x) : -(x)) #define clear1(A, X, SIZE) memset(A, X, sizeof(A[0]) * (min(SIZE,sizeof(A)))) #define clearall(A, X) memset(A, X, sizeof(A)) #define memcopy1(A , X, SIZE) memcpy(A , X ,sizeof(X[0])*(SIZE)) #define memcopyall(A, X) memcpy(A , X ,sizeof(X)) #define max( x, y ) ( ((x) > (y)) ? (x) : (y) ) #define min( x, y ) ( ((x) < (y)) ? (x) : (y) ) using namespace std; char s[105][105]; map <char ,bool>map1; bool vis[105][105]; int dx[4]={0,0,-1,1}; int dy[4]={-1,1,0,0}; int n,m; char tar[3]; void dfs(int x,int y) { if(vis[x][y])return ; vis[x][y]=true; for(int i=0;i<4;i++) { if(x+dx[i]>=0&&x+dx[i]<n&&y+dy[i]>=0&&y+dy[i]<m&&s[x+dx[i]][y+dy[i]]!='.') { if(s[x+dx[i]][y+dy[i]]!=tar[0]) { map1[s[x+dx[i]][y+dy[i]]]=true; } else { dfs(x+dx[i],y+dy[i]); } } } } int main() { scanf("%d%d%s",&n,&m,tar); for(int i=0;i<n;i++) { scanf("%s",s[i]); } for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(s[i][j]==tar[0]) { dfs(i,j); cout<<map1.size(); return 0; } } } return 0; }
相关文章推荐
- 【非常非常巧妙的暴搜】CodeForce 6B——President's Office
- CF 6 B - President's Office
- Can't perform Create, Update or Delete operations on 'Table(@TableName)' because it is read-only.
- document.getElementById("divv").style.display = 'none';
- 解决 Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from
- Codeforces Round #146 (Div. 2) D. Let's Play Osu!
- Codeforces Round #146 (Div. 2) D. Let's Play Osu! comb数平方和的数学期望
- 【NBA.COM】I've Only Got Iverson for You
- error: 'for' loop initial declarations are only allowed in C99 mode
- Error: "Database 'XXX' is already open and can only have one user at a time"
- 关于 overloaded function differs only by return type from 'void __thiscall 与类内实现
- div and flash 's z-index
- add/remove operation is impossible, because the code element 'Cxxx' is read only
- error C2556: 'void __thiscall......overloaded function differs only by return type from 'int __thiscall
- ABAP [div '/'] 的区别与妙用
- Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly'
- div+css - CSS标准 - 8.3 Margin properties: 'margin-top', 'margin-right', 'margin-bottom', 'margin-left', and 'margin' - 8.3边距属性
- ADODB使用excel的"Cannot modify the design of table 'xxxx'. It is in a read-only database"的问题
- How to solve “add/remove operation is impossible, because the code element 'Cxxx' is read only”
- CF Beta Round #89 (Div. 2) - Caesar's Legions