草坪修剪是指通过人工定期去修剪部分生长的草坪草茎叶,使草坪经常保持平整美观。草坪修剪的主要目的是:
①草坪修剪能控制草坪草高度,使草坪经常保持整齐、美观,以满足人们的需要,从而使草坪具有较高的坪用价值和经济价值。
②修剪可以维持草坪草在一定高度下生长,促进草坪草新陈代谢和根基分蘖,增加草坪的密度和平整度,使色调鲜绿、植株健壮。
③草坪及时修剪,高度适中,可改善草坪密度和通气性,减少病虫害发生,有效抑制生长点较高的混生在草坪中的阔叶杂草,使其不能开花结子,从而退化,失去繁衍后代的机会,而逐渐被消除。
④草坪经多次修剪,“草基脚”增多,弹性增强,人踩上草坪后不仅产生弹性感,而且增加了草坪草的耐磨性能。
⑤入冬前合理修剪草坪,可以延长暖季型草坪草的绿色期,增强冷季型草坪草夏季嫩草的越夏能力。
假设a[i][j]是需要修剪成的图案的一个点的高度,比如测试样例里面给的矩阵
存在解的条件很简单,任意i,j,存在a[i][j]是第i行或者第j列的最大值
试想一下,如果a[i][j]既不是第i行也不是第j列的最大值,为了剪它必然会破坏i行或者j列。
#include
#define max(a,b) (a>b?a:b)
int maxrow[110], maxcol[110];
int a[110][110];
int main () {
int n , m;
scanf("%d %d", &n, &m);
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
scanf("%d", &a[i][j]);
maxrow[i] = max(a[i][j],maxrow[i]);
maxcol[j] = max(a[i][j],maxcol[j]);
}
}
bool isok = true;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
if (maxrow[i] > a[i][j] && maxcol[j] > a[i][j]) {
isok = false;
}
}
}
if (isok) {
printf("YES\n");
}
else {
printf("NO\n");
}
return 0;
}