0
已解决
测试点#1测评结果 : Wrong Answer时间 : 0ms偷看一下数据测试点#2测评结果 : Accepted时间 : 0ms
测试点#3测评结果 : Accepted时间 : 0ms
测试点#4测评结果 : Accepted时间 : 0ms
测试点#5测评结果 : Accepted时间 : 0ms
我的提交(cpp):
#include<iostream> #include<queue> using namespace std; int map[11][11]; const int dir[4][2]={ {1,0},{0,1},{-1,0},{0,-1} }; struct node{ int x,y; }; bool be_out(int x,int y) { if(x>10||y>10||x<1||y<1) return 0; return 1; } int bfs() { for(int i=1;i<=10;i++) if(map[10][i]==0) { queue<node>k; k.push((node){10,i}); map[10][i]=1; while(!k.empty()) { node f=k.front(); k.pop(); for(int j=0;j<4;j++) if(be_out(f.x+dir[j][0],f.y+dir[j][1])&&!map[f.x+dir[j][0]][f.y+dir[j][1]]) { map[f.x+dir[j][0]][f.y+dir[j][1]]=1; k.push((node){f.x+dir[j][0],f.y+dir[j][1]}); } } }else if(map[1][i]==0) { queue<node>k; k.push((node){1,i}); map[1][i]=1; while(!k.empty()) { node f=k.front(); k.pop(); for(int j=0;j<4;j++) if(be_out(f.x+dir[j][0],f.y+dir[j][1])&&!map[f.x+dir[j][0]][f.y+dir[j][1]]) { map[f.x+dir[j][0]][f.y+dir[j][1]]=1; k.push((node){f.x+dir[j][0],f.y+dir[j][1]}); } } }else if(map[i][10]==0) { queue<node>k; k.push((node){i,10}); map[i][10]=1; while(!k.empty()) { node f=k.front(); k.pop(); for(int j=0;j<4;j++) if(be_out(f.x+dir[j][0],f.y+dir[j][1])&&!map[f.x+dir[j][0]][f.y+dir[j][1]]) { map[f.x+dir[j][0]][f.y+dir[j][1]]=1; k.push((node){f.x+dir[j][0],f.y+dir[j][1]}); } } }else if(map[i][1]==0) { queue<node>k; k.push((node){i,1}); map[i][1]=1; while(!k.empty()) { node f=k.front(); k.pop(); for(int j=0;j<4;j++) if(be_out(f.x+dir[j][0],f.y+dir[j][1])&&!map[f.x+dir[j][0]][f.y+dir[j][1]]) { map[f.x+dir[j][0]][f.y+dir[j][1]]=1; k.push((node){f.x+dir[j][0],f.y+dir[j][1]}); } } } int sum=0; for(int x=1;x<=10;x++) for(int y=1;y<=10;y++) if(!map[x][y]) { queue<node>k; k.push((node){x,y}); map[x][y]=1; sum++; while(!k.empty()) { node f=k.front(); k.pop(); for(int j=0;j<4;j++) if(be_out(f.x+dir[j][0],f.y+dir[j][1])&&!map[f.x+dir[j][0]][f.y+dir[j][1]]) { sum++; map[f.x+dir[j][0]][f.y+dir[j][1]]=1; k.push((node){f.x+dir[j][0],f.y+dir[j][1]}); } } } return sum; } int main() { for(int i=1;i<=10;i++) for(int j=1;j<=10;j++) cin>>map[i][j]; cout<<bfs()<<endl; return 0; }
哪错了
80分