PTA L2-052 吉利矩阵

题目

在这里插入图片描述

解析

这题考的是搜索剪枝

可行性剪枝:
即判断当前行(列)是否已经超过L和剩下的格子都填最大值是否小于L,若是则剪枝。
当前行数大于1时,判断上一个填完的行是否等于L,若否,则剪枝。
当前行为最后一行,且当前列大于1时,判断上一个填完的列是否等于L,若否,则剪枝。
当前列大于1时,判断上一个列填的数是否大于L,若是则剪枝。
优化顺序剪枝:
从大到小枚举当前填的数
当前格子能填的最大数为min(L-当前行已经填的数,L-当前列已经填的数)

代码

#include <bits/stdc++.h>using i64 = long long;
using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int L, n;cin >> L >> n;vector<int> row(n), col(n);	int down = 0, up = L;function<i64(int, int)> dfs = [&] (int x, int y) -> i64 {if (x == n) {return int(row[n - 1] == L && col[n - 1] == L);}if (row[x] > L || row[x] + (n - y) * up < L || col[y] > L || col[y] + (n - x) * up < L) return 0;if (x > 0 && row[x - 1] != L) return 0;if (x == n - 1 && y > 0 && col[y - 1] != L) return 0;if (y > 0 && col[y - 1] > L) return 0;i64 r = 0;for (int i = min(L - col[y], L - row[x]); i >= 0; i--) {row[x] += i;col[y] += i;r += dfs(x + ((y + 1) / n), (y + 1) % n);row[x] -= i;col[y] -= i;}return r;};cout << dfs(0, 0) << '\n';return 0;
}

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

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

相关文章

浏览器数据找回

网站上分享的文章应该都是个人的心血&#xff0c;对于一些操作问题导致心血丢失真的很奔溃&#xff0c;终于找到一个弥补的办法&#xff0c;csdn的文章谷歌浏览器亲测有效&#xff0c;理论上其他浏览器的其他网站应该也可以&#xff0c;适用以下场景 把博客编辑当成了编写新博…

MATLAB中gurobi 运行报错与调试

问题背景如下&#xff1a;刚拿到一份MATLAB的代码&#xff0c;但是电脑第一次安装gurobi&#xff0c;在运行过程中发生了报错&#xff0c;使用断点进行调试和步进调试方法&#xff0c;最终发现&#xff0c;这个问题出在了哪一步&#xff0c;然后向了人工智能和CSDN、百度寻求答…

ELK 日志分析(二)

一、ELK Kibana 部署 1.1 安装Kibana软件包 #上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录 cd /opt rpm -ivh kibana-5.5.1-x86_64.rpm 1.2 设置 Kibana 的主配置文件 vim /etc/kibana/kibana.yml --2--取消注释&#xff0c;Kiabana 服务的默认监听端口为5601 server.po…

李宏毅2022机器学习/深度学习 个人笔记(2)

本系列用于推导、记录该系列视频中本人不熟悉、或认为有价值的知识点 本篇记录第一讲&#xff08;选修&#xff09;&#xff1a;神奇宝贝分类&#xff08;续&#xff09; 讲解如何用高斯概率分布假设来推导类似于逻辑斯蒂分布的表达式 如图&#xff0c;boundary变为直线&…

JavaSE——常用API进阶二(7/8)-DateTimeFormatter、Period、Duration(常见方法、用法示例)

目录 DateTimeFormatter 主要方法 用法示例 Period 常见方法 用法示例 Duration 常见方法 用法示例 接下来继续要学习的是JDK 8之后新增的代替SimpleDateFormat的一个API——DateTimeFormatter 同样是用来格式化和解析时间的&#xff0c;与SimpleDateFormat相比较来说…

kettle从入门到精通 第五十三课 ETL之kettle MQTT/RabbitMQ consumer实战

1、上一节课我们学习了MQTT producer 生产者步骤&#xff0c;MQTT consumer消费者步骤。该步骤可以从支持MRQTT协议的中间件获取数据&#xff0c;该步骤和kafka consumer 一样可以处理实时数据交互&#xff0c;如下图所示&#xff1a; 2、双击步骤打开MQTT consumer 配置窗口&a…

ROS下机器人系统仿真及部分SLAM建图

文章目录 一、 Launch文件使用二、 参考资料三、 遇到的问题四、 效果演示五、相关代码5.1 一些简介5.2 机器人模型5.2.1 机器人底盘5.2.2 摄像头5.2.3 雷达 5.3 惯性矩阵 六、代码传送门实验结果及分析 温馨提示&#xff1a;如果有幸看到这个文章&#xff0c;不要看里面的内容…

java-单列集合List详解

一、List概述 ​​​​​​​List 接口继承自 Collection 接口。这意味着所有 List 类型的对象都是 Collection 类型的对象&#xff0c;它们共享 Collection 接口中定义的所有方法。 List集合的特点&#xff1a; 1、有序&#xff1a;存和取得元素顺序一致 2、有索引&#xf…

使用FPGA实现比较器

介绍 比较器就是通过比较输入的大小&#xff0c;然后输出给出判断。 在这个比较器中&#xff0c;有两个输入&#xff0c;三个输出。根据输出就可以判断出哪个输入值大了。 设计文件 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity compa…

【大语言模型LLM】-使用大语言模型搭建点餐机器人

关于作者 行业&#xff1a;人工智能训练师/LLM 学者/LLM微调乙方PM发展&#xff1a;大模型微调/增强检索RAG分享国内大模型前沿动态&#xff0c;共同成长&#xff0c;欢迎关注交流… 大语言模型LLM基础-系列文章 【大语言模型LLM】-大语言模型如何编写Prompt?【大语言模型LL…

zabbix监控华为网络设备路由器eNSP(3)

如果有没搭建zabbix的网友可以先看我上一个搭建文档&#xff0c;把监控系统搭建上https://blog.csdn.net/weixin_72819498/article/details/137751059 拓扑图&#xff1a; 绑定和服务器同地址的网卡 1.监控端配置 (1)SNMP服务安装 [rootzbx-server ~]# yum -y install net-…

编译一个基于debian/ubuntu,centos,arhlinux第三方系统的问题解答

如果是开机卡boot注意看前面几行会有错误提示&#xff0c;一般会比较好找&#xff0c;下面是过了kernel内核加载后出现的问题 目录 上一篇文章 第一个问题 错误原因 解决办法 第二个问题 注意 第三个问题 上一篇文章 编译一个基于debian/ubuntu,centos,arhlinux第三方系…

什么是0-day漏洞,怎么防护0-day漏洞攻击

随着信息技术的快速发展&#xff0c;网络安全问题日益凸显&#xff0c;其中0day漏洞攻击作为一种高级威胁手段&#xff0c;给企业和个人用户带来了极大的风险。下面德迅云安全就对0day漏洞攻击进行简单讲解下&#xff0c;并分享相应的一些安全措施&#xff0c;以期提高网络安全…

第15届蓝桥杯题解

A题 结果&#xff1a;2429042904288 思路很简单 前20个数分别是 20 24 40 48 60 72 80 96 100 120 140 144 160 168 180 192 200 216 220 240 第2 4 6 8 12 ...n个数分别是24的 1倍 2倍 3倍 4倍 6倍 n/2倍 所以第202420242024 个数就是 24的 101210121012倍 B题 答案&am…

二维前缀和与差分

前言 延续前面所讲的一维前缀和以及差分&#xff0c;现在来写写二维前缀和与差分 主要这个画图就比前面的一维前缀和与差分复杂一点&#xff0c;不过大体思路是一样的 一维和二维的主要思路在于一维是只针对对一行一列&#xff0c;而二维是针对与一个矩阵的 好吧&#xff0…

ACE框架学习2

目录 ACE Service Configurator框架 ACE_Server_Object类 ACE_Server_Repository类 ACE_Server_Config类 ACE Task框架 ACE_Message_Queue类 ACE_TASK类 在开始之前&#xff0c;首先介绍一下模板类的实例化和使用。给出以下代码 //ACCEPTOR代表模板的方法 template <…

VSCode插件开发学习

一、环境准备 0、参考文档&#xff1a;VS Code插件创作中文开发文档 1、大于18版本的nodejs 2、安装Yeoman和VS Code Extension Generator&#xff1a; npm install -g yo generator-code 3、生成脚手架 yo code 选择内容&#xff1a; ? What type of extension do yo…

DASCTF X GFCTF 2024|四月开启第一局

前言 题目都比较简单&#xff0c;&#xff0c;&#xff0c;没啥好说的&#xff0c;很久没做题了&#xff0c;简单记录一下 dynamic_but_static 仅仅开了 NX 保护栈溢出 先泄漏 libc 地址&#xff0c;然后栈溢出打 ret2libc&#xff0c;开了沙箱得 orw from pwn import * c…

Vue3+TS版本Uniapp:项目前置操作

作者&#xff1a;前端小王hs 阿里云社区博客专家/清华大学出版社签约作者✍/CSDN百万访问博主/B站千粉前端up主 环境&#xff1a;使用vscode进行开发 如果一开始是使用的HbuilderX&#xff0c;请看hbuilderX创建的uniapp项目转移到vscode 为什么选择vscode&#xff1f;有更好…

Windows进入黑屏,操作CMD提示命令提示符已被系统管理员停用

背景 由于安装或者卸载某些服务导致主机无法正常显示桌面&#xff0c;从控制台进入打开操作执行命令提示禁用。 操作步骤 注意务必做好快照备份后再操作。 打开注册表中将其重新启用&#xff1a; 依次打开“运行”命令&#xff0c;然后在打开的“运行”对话框中输入 “regedit…