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; }