1
已解决
Time Limit Exceeded:60分
黄子澄的测评结果:
测试点#1测评结果 : Accepted时间 : 32ms
测试点#2测评结果 : Accepted时间 : 64ms
测试点#3测评结果 : Accepted时间 : 32ms
测试点#4测评结果 : Accepted时间 : 32ms
测试点#5测评结果 : Accepted时间 : 52ms
测试点#6测评结果 : Accepted时间 : 244ms
测试点#7测评结果 : Time Limit Exceeded时间 : 1976ms偷看一下数据测试点#8测评结果 : Time Limit Exceeded时间 : 1988ms偷看一下数据测试点#9测评结果 : Time Limit Exceeded时间 : 1992ms偷看一下数据测试点#10测评结果 : Time Limit Exceeded时间 : 1988ms偷看一下数据
我的提交(cpp):
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iomanip>
using namespace std;
int n,m,cnt,p,q,dir[5][2]={{},{-1,0},{1,0},{0,-1},{0,1}};
char map[1001][100001];
bool vis[1001][100001];
void dfs(int x,int y){
cnt++;
vis[x][y]=true;
for(int i=1;i<=4;i++){
int x2=x+dir[i][0],y2=y+dir[i][1];
if(x2>=1&&y2>=1&&x2<=n&&y2<=n&&!vis[x2][y2]&&map[x2][y2]!=map[x][y]){
dfs(x2,y2);
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>map[i][j];
}
}
for(int i=1;i<=m;i++){
cnt=0;
cin>>p>>q;
dfs(p,q);
memset(vis,0,sizeof(vis));
cout<<cnt<<endl;
}
return 0;
}
