AT_abc379_g

news/2024/11/15 6:13:08/文章来源:https://www.cnblogs.com/KinNa-Sky/p/18537353

过于一眼的轮廓线 dp。
兼纪念 abc 首场无伤 AK。

首先我们可以经过缜密的计算的得到矩形的宽不超过 \(14\)

然后现在你有 \(4\) 个数(边界视作 \(0\))。
不难想到 \(4\) 进制状压轮廓线 dp。

轮廓线 dp

状压 dp 的一种,轮廓线是分隔已处理部分与未处理部分的线。

在本题中,轮廓线应形如这样:

将轮廓线上的点从左到右压在二进制位从低到高位上。
转移时枚举交界(那个黑色的拐点)的状态判断转移的合法性进行转移。

由于显然有很多无用状态直接用 map 存 dp 状态和值。

那么在 \((i, j)\) 格子处我们要考虑上面和左面(若 \(j = 1\) 则不需)的格子判断转移是否合法。
提取上面的值:up = (sta >> ((j - 1) * 2)) & 3;
提取左面的值:lf = (sta >> ((j - 2) * 2)) & 3;

枚举填什么数(\(k\)),注意还有题目要求的限制。
mp[i][j] == '?' || mp[i][j] == '0' + k

在转移合法情况下,我们从当前状态 \(sta\) 得到下一个状态 \(nxt\)
提取出无关状态,然后把我们枚举的数塞进去:

int Base = (1 << m) - 1;
// ...int tmp = Base ^ (3 << ((j - 1) * 2));
int nxt = (sta & tmp) | (k << ((j - 1) * 2));

然后计数 dp 正常转移,由于转移只与上一轮廓线有关可以滚动数组。

Code

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

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

相关文章

【Stata 18软件下载与安装教程 含密钥】

1、安装包Stata 18: 链接:https://pan.quark.cn/s/a34fb60dbe77 提取码:av8q 2、安装教程 1) 双击解压包内Setup.exe安装,弹窗安装对话框2) 点击下一步3) 选择I accept ,点击下一步4) 输入用户名,任意输入,点击Next5) 选择StataMP,点…

2024-2025-1 20241403 《计算机基础与程序设计》第七周学习总结

学期(如2024-2025-1) 学号(如:20241403) 《计算机基础与程序设计》第7周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个…

chapter17

malloc.py参数中文版第一题问题1.首先运行 flag -n 10 -H 0 -p BEST -s 0 来产生一些随机分配和释放。你能预测malloc()/free()会返回什么吗?你可以在每次请求后猜测空闲列表的状态吗?随着时间的推移,你对空闲列表有什么发现?空闲列表不会合并,导致外部碎片越来越多 第二…

29. 多线程编程

一、什么是线程线程(thread)它们是同一个进程下执行的,并共享相同的下上文。线程包括开始、执行顺序和结束三部分。它有一个指令指针,用于记录当前运行的上下文。当其它线程运行时,它可以被抢占(中断)和临时挂起(也称为睡眠)—— 这种做法叫做让步(yielding)。当一个…

2024-2025-1 学号 20241301 《计算机基础与程序设计》第七周学习总结

|这个作业属于哪个课程|2024-2025-1-计算机基础与程序设计 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP| |这个作业要求在哪里|2024-2025-1计算机基础与程序设计第一周作业 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13276| |这个作业的目标…

go: ubuntu安装go 1.23.3

一,下载 官网: https://go.dev/ 从首页进入到下载页面: 如图:选择适合自己系统的版本 复制下载地址,从命令行下载 $ wget https://go.dev/dl/go1.23.3.linux-amd64.tar.gz 二,安装 1,解压: $ tar -zxvf go1.23.3.linux-amd64.tar.gz 移动到安装目录: $ mv go /usr/local/so…

为何选择Spring AI Alibaba开发智能客服平台?

0 前言 本文来看如何使用Spring AI Alibaba构建Agent应用。 1 需求 智能客服平台,可帮助用户完成机票预定、问题解答、机票改签、取消等动作,具体要求:基于 AI 大模型与用户对话,理解用户自然语言表达的需求 支持多轮连续对话,能在上下文中理解用户意图 理解机票操作相关的…

2024-2025-1 20241307《计算机基础与程序设计》第七周学习总结

作业信息这个作业属于哪个课程 (2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 (2024-2025-1计算机基础与程序设计第七周作业)这个作业的目标作业正文 (2024-2025-1 学号20241307《计算机基础与程序设计》第七周学习总结)教材学习内容总结 《计算机科学概论》第七版…

思通数科AI平台在智慧城市地面垃圾分类中的项目案例分享

一、系统概述 在当今的城市环境管理中,垃圾分类与识别已成为推动环保与资源回收的重要手段。然而,传统的人工垃圾分类方法耗时、效率低,且容易出错,严重制约了垃圾处理的精细化与可持续发展。思通数科的AI平台专注于解决这一行业痛点。我们的系统通过深度学习和计算机视觉技…

用溯流仪见证伏特台风

用溯流仪见证伏特台风 新知识:wayback machine(网站时光机)题目是一个视频链接,需要找到视频中的报告,但是那个时候的报告已经被篡改了有报告的名字,去搜索因为信息已经被改了,所以需要找到以前的版本 使用网站时光机找到这个报告在4月15号的版本下载文件,并把封底的图…

51单片机实现数码管显示

51单片机实现数码管显示 本次的实现效果方式采用模拟进行,芯片为AT89C51,开发软件为keil5,proteus 上代码 代码如下: #include <reg51.h>void delay(unsigned int i);//延时函数unsigned int i=0;void main() {unsigned char button=0,flag=0;unsigned char digitCodes[…

Linux系统下Makefile,出现make: Nothing to be done for ex19.c.的解决办法

如图所示,在做练习19时出现“make: Nothing to be done for ex19.c.”的错误解决方法:如图所示,先make clean,再make 原因:若文件没有改动,.o文件也没有改动,则Linux认为,我不需要对所有的文件做任何事情。 参考资料:https://blog.csdn.net/gwzz1228/article/details/…