一道暴力题
处理出老鼠到达每个点的时间
用这个时间与猫的位置与这个点的曼哈顿距离取min
再取max就行了
#include#include #include #include using namespace std;inline int read(){ int x=0,f=1,ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}inline int min(int x,int y){ return x y?x:y;}inline int cal_abs(int x){ return max(x,-x);}int n,m;int a[100][100];int dis[100][100];int main(){ while(scanf("%d %d",&n,&m)!=EOF){ memset(dis,0x3f,sizeof(dis)); for(int i=0;i =(cal_abs(s-i)+cal_abs(t-j))) ans=min(ans,max(dis[i][j],cal_abs(s-i)+cal_abs(t-j))); if(ans==0x3f3f3f3f) puts("impossible"); else printf("%d\n",ans); } return 0;}