【团体程序设计天梯赛】L2-052 吉利矩阵

思路:

直接回溯枚举每一个位置填的数,二维肯定是不方便的,我们转成一维,下标x从0到n*n-1。二维数组下标从0到n-1,在一维中下标为x的点在二维中对应行是x/n,列是x%n。

每个数最小能填的是0,最大肯定就是l了,时间复杂度的上限是n的2l次幂,4的18大概是1e11这样。

我们直接标记每行sum和每列sum,因为只有当前填的元素只会影响它所在的行和列,所以只要判断它所在行和列是否满足条件就行了。剪枝一下,具体的就是,当前和不能大于l,因为后面还有元素要加,以及,当前和加上后面元素的最大和能够大于等于l。

代码:

#include <iostream>
using namespace std;
int l,n,row[5],col[5],ans;void backtrack(int x){if(x==n*n){for(int i=0;i<n;i++){if(row[i]!=l) return;if(col[i]!=l) return;}ans++;return;}for(int i=0;i<=l;i++){//能填的数最小是0,最大是l//剪枝1:当前行或列值不超过lif(row[x/n]+i>l||col[x%n]+i>l) break;row[x/n]+=i;//对应行和更新col[x%n]+=i;//对应列和更新//剪枝2:加上其他没有填的数(取最大)能达到lif(row[x/n]+l*(n-1-x%n)>=l&&col[x%n]+l*(n-1-x/n)>=l)backtrack(x+1);row[x/n]-=i;//还原现场col[x%n]-=i;}
}
int main(){cin>>l>>n;backtrack(0);cout<<ans;return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

米家风扇拆解大全方案展示

随着科技的飞速进步&#xff0c;小家电设备逐渐向着智能化、便捷化的方向发展。在这个过程中&#xff0c;Type-C接口以其高效、易用的特点&#xff0c;正日益成为小家电领域的主流充电接口。然而&#xff0c;由于Type-C接口的种类繁多&#xff0c;设备在识别和使用不同充电方式…

2024年3月电风扇家电线上电商(京东天猫淘宝)销售数据排行榜

鲸参谋监测的线上电商&#xff08;京东天猫淘宝&#xff09;平台3月份的电风扇家电销售数据已出炉&#xff01; 根据鲸参谋数据显示&#xff0c;今年3月份&#xff0c;电风扇市场呈现出稳步增长态势。在线上电商平台上电风扇总销量累计约226万件&#xff0c;环比上个月上涨了2…

C++相关概念和易错语法(8)(匿名对象、构造+拷贝构造优化、构造析构顺序)

1.匿名对象 当我们实例化对象后&#xff0c;有的对象可能只使用一次&#xff0c;之后就没用了。这个时候我们往往要主动去析构它&#xff0c;否则会占着浪费空间。但是如果遇到大量的这种情况&#xff0c;我们并不想每次都去创建对象、调用、析构&#xff0c;这样会写出很多重…

QT Webengine开发过程报错qml: Render process exited with code 159 (killed)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、解决方法二、补充说明总结 前言 基于QT的Webengine开发过程中&#xff0c;QT的官方示例quicknanobrowser也无法成功运行&#xff0c;程序运行后&#xff0…

TypeError: Cannot read property ‘forceUpdate‘ of undefined

今天给大家展示一个 我自己在写项目的时候遇到的保存 其实很简单就是没有修改addid 把自己的小程序appid填上去就好了 学习记录笔记&#xff01;

决策树原理及应用

目录 一、决策树概述 1.1决策树的组成 1.2构建决策树 1.3决策树的剪枝 1.4决策树的优点和缺点 二、决策树在计算机视觉中的应用 三、基于决策树的图像分类实例 一、决策树概述 决策树是一种非常流行的机器学习算法&#xff0c;它用树状图的形式来表示决策过程。决策树可…

FastJson2中FastJsonHttpMessageConverter找不到类问题

问题描述 如果你最近也在升级FastJson到FastJson2版本&#xff0c;而跟我一样也遇到了FastJsonHttpMessageConverter找不到类问题以及FastJsonConfig找不到问题&#xff0c;那么恭喜你&#xff0c;看完本文&#xff0c;安装完fastjson2、fastjson2-extension、fastjson2-exte…

舒适护眼模式:苹果手机字体大小怎么设置?

在现代社会&#xff0c;人们对于手机的使用已经不再局限于通讯和娱乐&#xff0c;也逐渐成为了我们生活和工作中不可或缺的一部分。然而&#xff0c;长时间使用手机可能会对我们的视力造成一定程度的影响。 为了更好地保护视力健康&#xff0c;苹果手机提供了舒适护眼的模式&a…

【Linux】认识文件(二):重定向

【Linux】认识文件&#xff08;二&#xff09;&#xff1a;重定向 一.stdout,stderr,stdin二.重定向1.什么是重定向i.输出重定向>ii.追加重定向>>iii.输入重定向< 2.重定向原理3.dup2的使用 三.理解linux中的一切皆文件 上篇文件博客中&#xff0c;讲了进程管理已打…

见鬼了!我家的 WiFi 只有下雨天才能正常使用...

这是作者大学时期在家里遇到的一个非常奇怪的网络问题&#xff0c;作者的父亲是一名经验丰富的网络工程师&#xff0c;他们家里使用了一个复杂的网络设置&#xff0c;通过 Wi-Fi 桥接的方式&#xff0c;将父亲公司的高速商业网络连接到家中。但是有一天&#xff0c;作者发现家里…

互联网技术知识点总览——数据库知识点框架

简介 本文对数据库的知识点整体框架进行梳理和分享如下&#xff1a;

【图说】VMware Ubuntu22.04 详细安装教程

前言 无论是从事 Linux 开发工作&#xff0c;还是希望电脑运行双系统&#xff0c;VMware 虚拟机都是我们日常工作不可或缺的工具。本章将会重点介绍 VMware 安装流程&#xff0c;以及在 VMware 上如何运行、使用 Ubuntu22.04 系统。 一、VMware 下载安装 1.1 VMware 官网下载…