洛谷P8601[蓝桥杯][2013年第四届真题]剪格子

news2024/11/14 21:46:13

题目描述

如图 11 所示,3×3 的格子中填写了一些整数。

我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是 6060。

本题的要求就是请你编程判定:对给定的 m\times nm×n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。

如果存在多种解答,请输出包含左上角格子的那个区域包含的格子的最小数目。

如果无法分割,则输出 00。

输入格式

程序先读入两个整数 mm,nn 用空格分割 (m,n<10)(m,n<10) 表示表格的宽度和高度。

接下来是 nn 行,每行 mm 个正整数,用空格分开。每个整数不大于 1000010000。

输出格式

程序输出:在所有解中,包含左上角的分割区可能包含的最小的格子数目。

输入输出样例

输入

3 3

10 1 52

20 30 1

1 2 3

输出

3

输入

4 3

1 1 1 1

1 30 80 2

1 1 1 100

输出

10

说明/提示

第二个用例中:

时限 5 秒, 64M。蓝桥杯 2013 年第四届省赛

思路:利用搜索遍历每一种解决方案,把每种解决方案中格子的个数记录下来,然后输出最少格子数

#include<iostream>
using namespace std;
int g[11][11];
int vis[11][11];
int n, m, num[10010], sum, s, k;
int xx[] = { 1,0,-1,0 };
int yy[] = { 0,1,0,-1 };
void dfs(int x, int y)
{
    if (s == sum / 2)
    {
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
            {
                if (vis[i][j] == 1) num[k]++;
            }
        }
        k++;
        return;
    }
    for (int i = 0; i < 4; i++)
    {
        int dx = x + xx[i];
        int dy = y + yy[i];
        if (dx>=1 && dx<=n && dy>=1 && dy<=m && vis[dx][dy]==0 )
        {
            vis[dx][dy] = 1;
            s += g[dx][dy];
            dfs(dx, dy);
            s -= g[dx][dy]; //回溯
            vis[dx][dy] = 0;
        }
    }
}
int main()
{
    cin >> m >> n;
    int i, j;
    for (i = 1; i <= n; i++)
    {
        for (j = 1; j <= m; j++)
        {
            cin >> g[i][j];
            sum += g[i][j];
        }
    }
    vis[1][1] = 1;
    s += g[1][1];
    dfs(1, 1);
    int minn = num[0];
    for (i = 0; i < k; i++)
    {
        minn = min(minn, num[i]);
    }
    cout << minn << endl;
    return 0;
}

这串代码在洛谷中只能跑过3个测试案例,暂时还没有找到更好的解决方法,呜呜~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/356617.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java开发】Spring 12 :Spring IOC控制反转和依赖注入(解决单接口多实现类调用)

IOC 是 Inversion of Control 的简写&#xff0c;译为“控制反转”&#xff0c;Spring 通过 IOC 容器来管理所有 Java 对象的实例化和初始化&#xff0c;控制对象与对象之间的依赖关系。我们将由 IOC 容器管理的 Java 对象称为 Spring Bean&#xff0c;它与使用关键字 new 创建…

分享112个HTML艺术时尚模板,总有一款适合您

分享112个HTML艺术时尚模板&#xff0c;总有一款适合您 112个HTML艺术时尚模板下载链接&#xff1a;https://pan.baidu.com/s/1D3-mfPOud-f3vy9yLl-bmw?pwdfph2 提取码&#xff1a;fph2 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 时尚平面模特网站模板 潮…

Redis数据类型以及应用场景

目录1、 String&#xff08;字符串&#xff09;2、 Hash&#xff08;哈希&#xff09;3、 List&#xff08;列表&#xff09;4、 Set&#xff08;集合&#xff09;5、 sorted set&#xff08;有序集合ZSet&#xff09;字符串&#xff08;String&#xff09;、哈希表&#xff08…

40/365 javascript 严格检查模式 字符串

1.严格检查模式 因为js语法的随意性&#xff0c;可以直接使用变量&#xff08;没有声明&#xff09;&#xff0c;也不会报错。 <script>n 5;</script> 但这样会造成很多问题&#xff0c;一是变量不声明就使用&#xff0c;二是这样使用的变量会是全局变量&#x…

Python数据容器、list列表、tuple元组、str字符串、数据容器(序列)切片、set集合、dict字典

数据来源 01 数据容器 为什么学习数据容器 数据容器 总结 02 列表 1&#xff09;列表定义 为什么需要列表 列表的定义语法 列表的定义方式 演示 """ 演示数据容器之:list列表 语法:[元素,元素,......] """ # 定义一个列表list my_list …

从零开始 verilog 以太网交换机(三)MAC发送控制器的设计与实现

从零开始 verilog 以太网交换机&#xff08;三&#xff09;MAC发送控制器的设计与实现 &#x1f508;声明&#xff1a; &#x1f603;博主主页&#xff1a;王_嘻嘻的CSDN主页 &#x1f9e8; 从零开始 verilog 以太网交换机系列专栏&#xff1a;点击这里 &#x1f511;未经作者允…

数据结构概述

逻辑结构 顺序存储 随机访问是可以通过下标取到任意一个元素&#xff0c;即数组的起始位置下标 链式存储 链式存储是不连续的&#xff0c;比如A只保留了当前的指针&#xff0c;那么怎么访问到B和C呢 每个元素不仅存储自己的值还使用额外的空间存储指针指向下一个元素的地址&a…

【python】英雄联盟电竞观赛引擎 掉落提示 CapsuleFarmerEvolved 「Webhook」「钉钉」

介绍 本项目链接 Github本项目链接 Gitee本项目链接 最近在github上发现一个可以用来自动帮你挂英雄联盟(除国服)电竞引擎(可以开出头像和表情)的项目,CapsuleFarmerEvolved,github原项目链接简单来说就是本来是通过看比赛获取奖励的,它帮助你进行观看. 对这个活动有兴趣的话…

3|物联网控制|计算机控制-刘川来胡乃平版|第1章:绪论|青岛科技大学课堂笔记|U1 ppt

目录绪论&#xff08;2学时&#xff09;常用仪表设备&#xff08;3学时&#xff09;计算机总线技术&#xff08;4学时&#xff09;过程通道与人机接口&#xff08;6学时&#xff09;数据处理与控制策略&#xff08;6学时&#xff09;网络与通讯技术&#xff08;3学时&#xff0…

sonarqube 生成pdf报错

sonar 生成report pdf报错&#xff0c;需要先配置username,password, Administration->PDF Report-> Password & Username https://gitee.com/zzulj/sonar-pdf-plugin sonar-pdf-plugin sonar-pdfreport-plugin-4.0.1.jar Installation 下载对应的版本&#xff…

Day894.加锁规则的一些问题 -MySQL实战

加锁规则的一些问题 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于加锁规则的一些问题的内容。 加锁规则&#xff0c;这个规则中&#xff0c;包含了两个“原则”、两个“优化”和一个“bug”&#xff1a; 原则 1&#xff1a;加锁的基本单位是 next-key lock。nex…

stable-diffusion-webui 安装使用

文章目录1.github 下载&#xff0c;按教程运行2.安装python 忘记勾选加入环境变量&#xff0c;自行加入&#xff08;重启生效&#xff09;3.环境变量添加后&#xff0c;清理tmp &#xff0c;venv重新运行4.运行报错&#xff0c;无法升级pip&#xff0c;无法下载包&#xff0c;5…

如何将Python打包后的exe还原成.py?

将python打包好的exe解压为py文件&#xff0c;步骤如下&#xff1a;下载pyinstxtractor.py文件下载地址&#xff1a;https://nchc.dl.sourceforge.net/project/pyinstallerextractor/dist/pyinstxtractor.py并将pyinstxtractor.py放到和exe相同的目录文件下打开命令控制台cd 进…

No.182# 技术管理之管理任务管理

引言继前文梳理「团队建设」与「管理规划」后&#xff0c;本文梳理下技术管理的另外一块「任务管理」。走查任务管理的主要内容&#xff1a;主要内容提点任务目标量化任务的优先级拉通形成共识团队梯队建设任务进度跟踪任务完成复盘一、主要内容提点二、任务目标量化任务管理&a…

QT mp3音乐播放器实现框架,Qt鼠标事件,网络编程,QSqlite,Json解析,HTTP请求等

QT mp3音乐播放器实现框架&#xff0c;Qt鼠标事件&#xff0c;网络编程&#xff0c;QSqlite,Json解析&#xff0c;HTTP请求等框架搭建UI设计mp3.hmp3.cpp隐藏窗口标题 最大化 最小化 关闭框架搭建 .pro添加 # 网络 添加多媒体 数据库 QT network multimedia sql添加头…

C进阶:5.动态内存管理

目录 1.为什么存在动态内存分配 2.动态内存函数的介绍 2.1 malloc 和 free 2.2 calloc malloc 与 calloc的区别&#xff1a; 2.3 realloc 3.常见的动态内存错误 3.1对NULL指针的解引用操作 3.2对动态开辟空间的越界访问 3.3对非动态开辟的内存使用free释放 3.4使用f…

帮助指令 man ,help及文档常用管理指令

帮助指令 man&#xff0c;help 1. man 当我们想要了解某个命令如何使用&#xff0c;及选项的含义是什么以及配置文件的帮助信息时&#xff0c;可以使用 man [命令或配置文件]&#xff0c;这样便可以获得到帮助提示信息了。 语法格式&#xff1a;man [命令或者配置文件] 比如…

[SSD科普之2] SATA、mSATA、M.2、M.2(NVMe)、PCIE固态硬盘接口详解

固态硬盘概念固态驱动器&#xff08;Solid State Drive&#xff09;&#xff0c;俗称固态硬盘&#xff0c;固态硬盘是用固态电子存储芯片阵列而制成的硬盘&#xff0c;因为台湾英语里把固体电容称之为Solid而得名。SSD由控制单元和存储单元&#xff08;FLASH芯片、DRAM芯片&…

最全280个上市公司数字化转型指标(2010-2021年)

基于年报测度数字化的论文在中文顶刊已有有趣的研究发表&#xff0c;从深交所、上交所下载2010-2021年上市公司年报&#xff0c;提取MD&A部分&#xff0c;基于《管理世界》、《经济研究》等期刊论文构建企业数字化词典&#xff08;详细参考见后文&#xff09;&#xff0c;将…

JavaScript系列之实现继承的几种方式

文章の目录一、借助父构造函数继承属性1、实现方式2、优点3、缺点二、原型链继承1、实现方式2、优点3、缺点三、组合继承四、ES6继承的实现方式参考写在最后一、借助父构造函数继承属性 1、实现方式 先定义一个父构造函数(this指向为window)&#xff1b;再定义一个子构造函数…