Description
There are N+1 rows and M+1 columns fence with N*M grids on the grassland. Each grid has a sheep. In order to let the sheep together, we need to dismantle the fence. Every time you can remove a row or a column of fences. What’s the least number of times to reach the goal?
Input
There are multiple test cases. The first line of each case contains two integers N and M. (1≤N,M≤1000)
Output
For each case, output the answer in a line.
Sample Input
1 2 2 2
Sample Output
1 2
题解:一个N*M的网格,每个格子里都有一头羊,现在要把所有羊聚集在一起。。。要通过拆网格,每次拆一行或者一列,问最小次数;
刚开始没想到要拆四周的墙,各种傻逼。。。最后终于发现了拆列,拆行,或者拆中间;拆行或者列是N,M只需要留一个就行了;或者N-1+M-1;
代码:
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; const int INF = 0x3f3f3f3f; typedef long long LL; int main(){ int N, M; while(~scanf("%d%d",&N,&M)){ int ans = min(N,M); ans=min(ans,N-1+M-1); printf("%d\n",ans); } return 0; }