Changle NO.1 Middle School Assemble For Training Day 2
The third day in Changle.
长乐的第三天,学的是深搜和广搜。
这题可真难,日常不会写,无语。
哎~
一题卡了一个小时,始终过不去,我心态崩了~哪位大佬帮忙看一下
山峰与山谷
#include<bits/stdc++.h>
using namespace std;
int n,head=1,tail=1,d[1000010][3],z,x,p;
int a[1010][1010];
int fx[9]={0,-1,-1,0,1,1,1,0,-1};
int fy[9]={0,0,1,1,1,0,-1,-1,-1};
bool flag1,flag2,b[1010][1010];
void bfs(int sx,int sy)
{
flag1=false;
flag2=false;
head=1;
tail=1;
d[head][1]=1;
d[head][2]=1;
p=a[sx][sy];
while(head<=tail)
{
for(int i=1;i<=8;i++)
{
int tx=d[head][1]+fx[i];
int ty=d[head][2]+fy[i];
if(tx<1 || ty<1 || tx>n || ty>n)
{
continue;
}
if(a[tx][ty]<p)
{
flag1=true;
}
else if(a[tx][ty]>p)
{
flag2=true;
}
else
{
b[tx][ty]=true;
tail++;
d[tail][1]=tx;
d[tail][2]=ty;
}
}
head++;
}
if(flag1!=true && flag2!=true)
{
z++;
x++;
}
if(flag1==true && flag2!=true)
{
z++;
}
if(flag1!=true && flag2==true)
{
x++;
}
return;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(b[i][j]==true)
{
continue;
}
bfs(i,j);
}
}
cout<<z<<" "<<x;
return 0;
}
ps.今天去品尝了一下长乐冰饭。长乐的四果汤,还没有泉州的好吃,烧烤也不怎么样,还贵,无语。
三天花了将近300元,物价好贵啊!!!!!
and 日常想家。
2023.7.12