根据题意,给定一个 \(2\times2\) 的仅包含 \(0\) 和 \(1\) 的二维数组。定义一个操作,每次可以选择一行和一列将其变成 \(0\),求最小操作次数。

思路:根据枚举可得共有 \(14\) 种矩阵形态,通过观察可得:

  1. 当矩阵中 \(1\) 的数量为 \(0\) 时,即只有一种形态,其最小操作次数为 \(0\)。

  2. 当矩阵中 \(1\) 的数量为 \(1\) 时,共有四种形态(分别是 \(1\) 分布在四个角),此时最小操作次数为 \(1\)。

  3. 当矩阵中 \(1\) 的数量为 \(2\) 时,共有四种形态(分别是在同一行或同一列,在对角线上),其最小操作次数为 \(1\)。

  4. 当矩阵中 \(1\) 的数量为 \(3\) 时,共有四种形态(其形状类似于中文笔画中的横折,将其进行旋转),这时最小操作次数为 \(1\)。

  5. 当矩阵中 \(1\) 的数量为 \(4\) 时,只有一种形态,其最小操作次数为 \(2\)。

做法一:根据判断形态得出答案,可以通过此题,但做法二更优,此处使用做法二。

做法二:综上所述,可得当 \(1\) 的数量为 \(0\) 时,最小操作数为 \(0\);当 \(1\) 的数量为 \(1/2/3\) 时,最小操作数为 \(1\);当 \(1\) 的数量为 \(4\) 时,最小操作数为 \(2\)。即通过计算 \(1\) 的数量来得出答案,可以直接省去数组。

#include<cstdio>
#include<iostream>
using namespace std;
int t;//共有t组数据
int a;
int cnt;//计算1的数量
int main(){
scanf("%d",&t);
while(t--){
cnt=0;
for(int i=0;i<4;i++){
scanf("%d",&a);
cnt+=a;//统计1的数量
}
if(cnt==0) puts("0");
else if(cnt==1||cnt==2||cnt==3) puts("1");
else puts("2");
}
return 0;
}

CF1701A Grass Field 题解的更多相关文章

  1. 1.2机器学习基础下--python深度机器学习

    1. 机器学习更多应用举例: 人脸识别   2. 机器学习就业需求:      LinkedIn所有职业技能需求量第一:机器学习,数据挖掘和统计分析人才      http://blog.linked ...

  2. http://codeforces.com/problemset/problem/847/E

    E. Packmen time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  3. T59

    Working without a break makes you more prone to error. The great drawback to living near a main road ...

  4. PatentTips - Blending a Graphic over a Video

    Television broadcasts of events can be enhanced by providing graphics that are blended with other im ...

  5. Lesson 2 Spare that spider

    How much of each year do spiders killing insects? Why, you may wonder, should spiders be our friends ...

  6. 【题解】洛谷P3119 Grass Cownoisseur G

    题面:洛谷P3119 Grass Cownoisseur G 本人最近在熟悉Tarjan的题,刷了几道蓝题后,我飘了 趾高气扬地点开这道紫题,我一瞅: 哎呦!这不是分层图吗? 突然就更飘了~~~ 用时 ...

  7. UVA 10382 Watering Grass(区间覆盖,贪心)题解

    题意:有一块草坪,这块草坪长l 米,宽 w 米,草坪有一些喷头,每个喷头在横坐标为 p 处,每个喷头的纵坐标都是(w/2) ,并且喷头的洒水范围是一个以喷头为圆心,半径为 r 米的圆.每次最少需要打开 ...

  8. SPOJ ADAFIELD Ada and Field(STL的使用:set,multiset,map的迭代器)题解

    题意:n*m的方格,“0 x”表示x轴在x位置切一刀,“0 y”表示y轴在y位置切一刀,每次操作后输出当前面积最大矩形. 思路:用set分别储存x轴y轴分割的点,用multiset(可重复)储存x轴y ...

  9. Grass Cownoisseur[Usaco2015 Jan]

    题目描述 In an effort to better manage the grazing patterns of his cows, Farmer John has installed one-w ...

随机推荐

  1. python写一个能变身电光耗子的贪吃蛇

    python写一个不同的贪吃蛇 写这篇文章是因为最近课太多,没有精力去挖洞,记录一下学习中的收获,python那么好玩就写一个大一没有完成的贪吃蛇(主要还是跟课程有关o(╥﹏╥)o,课太多好烦) 第一 ...

  2. Dnscat2隧道

    0x01 前言   DNS是用来做域名解析的,是连接互联网的关键,故即使是企业内网,在防火墙高度关闭下,也有着很好的连通性,但是黑客却可以通过将其他协议的内容封装再DNS协议中,然后通过DNS请求和响 ...

  3. 记录一次用宝塔部署微信小程序Node.js后端接口代码的详细过程

    一直忙着写毕设,上一次写博客还是元旦,大半年过去了.... 后面会不断分享各种新项目的源码与技术.欢迎关注一起学习哈! 记录一次部署微信小程序Node.js后端接口代码的详细过程,使用宝塔来部署. 我 ...

  4. WPF中的依赖属性

    1. WPF中的依赖属性 依赖属性是专门基于WPF创建的.在WPF库实现中,依赖属性使用普通的C#属性进行了包装,使用方法与普通的属性是相同的. 1.1 依赖属性提供的属性功能 资源 数据绑定 样式 ...

  5. 宽字符输出中文,Devc++解决方法

    有群友问类似问题,然后我编译了一下试试: #include <stdio.h> #include <wchar.h> #include <locale.h> int ...

  6. 构建AR视频空间大数据平台(物联网及工业互联网、视频、AI场景识别)

    目       录 1.      应用背景... 2 2.      系统框架... 2 3.      AI场景识别算法和硬件... 3 4.      AR视频空间管理系统... 5 5.    ...

  7. 128_Power BI父级排名TOPN子级动态展示

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 前些天在和朋友交流Power BI中有这样一个需求,按照父级排名后,需要显示出父级TOPN的子级明细. 如下&l ...

  8. 【Java面试】如何理解Spring Boot中的Starter?

    一个工作了3年的Java程序员,遇到一个Spring Boot的问题. 他对这个问题有一些了解,但是回答得不是很好,希望参考我的高手回答. 这个问题是:"如何理解Spring Boot中的S ...

  9. JetBrains IDE全新UI预览版来了,要做简洁与强大兼顾的IDE

    5月23日,JetBrains发布了一篇博文,透露他们正在实现一套全新的界面界面. 他们认为目前行业中的用户界面趋势已经发生了演变,很多新用户认为JetBrains IDE的界面过于笨重,而且过时.所 ...

  10. npm错误:Cannot find module ‘compression-webpack-plugin

    转自 (82条消息) 前端开发遇到Cannot find module 'compression-webpack-plugin'问题解决_brave_zhao的博客-CSDN博客 <div id ...