Keep Connect(状压dp)

从HTTP到MQTT:我的ESP8266物联网项目升级记(OneNET平台实战) 本文详细记录了将ESP8266物联网项目从HTTP协议升级到MQTT协议的实战经验,重点分析了MQTT在OneNET平台上的核心优势与实现细节。通过协议对比、AT指令优化和数据格式调整,项目稳定性显著提升,响应延迟降低75.6%,电池续航延长至17.5天,为物联网设备通信提供了可靠解决方案。 阅读详情

Keep Connect

[Link](F - Keep Connect (atcoder.jp))

题意

给你一个 n n n和 p p p,表示有一个长 n − 1 n-1 n−1宽 1 1 1的梯子,请你依次回答删除 1 ∼ n − 1 1\sim n-1 1∼n−1条边后依旧联通的方案数。

思路

  • 状压 d p dp dp

​ 我们按照从前往后枚举每一列来统计方案,考虑删到了第 i i i列,什么样的情况可以继续往后统计呢?1.前 i i i列是联通的 。2.前 i i i列一部分和第 i i i列上面的点连通,另一部分和第 i i i列下面的点连通。只有这样后面才是成立的,否则从第 i i i列开始就将这个梯子分开了,已经不合法了。第 i i i列的删除法会形成第 i + 1 i+1 i+1列的情况,很明显的转移关系。

​ 考虑 f [ i ] [ j ] [ 0 / 1 ] : 前 i 列 删 了 j 个 边 且 是 否 联 通 的 方 案 数 f[i][j][0/1]:前i列删了j个边且是否联通的方案数 f[i][j][0/1]:前i列删了j个边且是否联通的方案数,注意不连通是我们上面所探讨的那种对后续状态可以转移有贡献的不连通的情况。

第 i i i列向第 i + 1 i+1 i+1列转移是一个 ] 三条边的选取,设 p 1 , p 2 , p 3 p1,p2,p3 p1,p2,p3分别为上下和右边的边, 0 0 0为不选, 1 1 1为选

​ 转移分为:

  • f [ i ] [ j ] [ 0 ] f[i][j][0] f[i][j][0] 由于本身不连通,因此 p 1 , p 2 p1,p2 p1,p2必须选,否则就会造成不合法的情况,因此 i + 1 i+1 i+1的联通性取决于 p 3 p3 p3选不选

    f [ i + 1 ] [ j + 1 − p 3 ] [ p 3 ] = f [ i + 1 ] [ j + 1 − p 3 ] [ p 3 ] + f [ i ] [ j ] [ 0 ] f[i+1][j+1-p3][p3]=f[i+1][j+1-p3][p3]+f[i][j][0] f[i+1][j+1−p3][p3]=f[i+1][j+1−p3][p3]+f[i][j][0]

  • f [ i ] [ j ] [ 1 ] f[i][j][1] f[i][j][1] 由于本身连通,因此 p 1 , p 2 p1,p2 p1,p2只需要有一个选即可,否则就会造成不合法情况(即断层),因此 p 1 , p 2 , p 3 p1,p2,p3 p1,p2,p3只要选了 ≥ 2 \ge 2 ≥2 条就一定连通,否则不连通

    f [ i + 1 ] [ j + 3 − p 1 − p 2 − p 3 ] [ p 1 + p 2 + p 3 > = 2 ] = f [ i + 1 ] [ j + 3 − p 1 − p 2 − p 3 ] [ p 1 + p 2 + p 3 > = 2 ] + f [ i ] [ j ] [ 1 ] f[i+1][j+3-p1-p2-p3][p1+p2+p3>=2]=f[i+1][j+3-p1-p2-p3][p1+p2+p3>=2]+f[i][j][1] f[i+1][j+3−p1−p2−p3][p1+p2+p3>=2]=f[i+1][j+3−p1−p2−p3][p1+p2+p3>=2]+f[i][j][1]

设一下边界,即一个的情况,然后每个状态往后转移即可。

Code

#include <bits/stdc++.h>
#define x first
#define y second
#define debug(x) cout<<#x<<":"<<x<<endl;
using namespace std;
typedef long double ld;
typedef long long LL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef unsigned long long ULL;
const int N = 1e5 + 10, M = 2 * N, INF = 0x3f3f3f3f, mod = 1e9 + 7;
const double eps = 1e-8, pi = acos(-1), inf = 1e20;
int n, m, k, p;
int a[N];
int f[3010][3010][2];
int main() {
    ios::sync_with_stdio(false), cin.tie(0);
    cin >> n >> p;
    f[1][1][0] = f[1][0][1] = 1;

    for (int i = 1; i < n; i ++) 
        for (int j = 0; j < n; j ++)
            for (int k = 0; k < 2; k ++)
                if (f[i][j][k]) 
                    for (int p1 = 0; p1 < 2; p1 ++)
                        for (int p2 = 0; p2 < 2; p2 ++)
                            for (int p3 = 0; p3 < 2; p3 ++) {
                                if (!k && (!p1 || !p2)) continue;
                                if (k && !p1 && !p2) continue ;
                                if (!k) f[i + 1][j + 1 - p3][p3] = ((LL)f[i + 1][j + 1 - p3][p3] + f[i][j][k]) % p;
                                if (k) f[i + 1][j + 3 - p1 - p2 - p3][(p1 + p2 + p3) >= 2] = ((LL)f[i + 1][j + 3 - p1 - p2 - p3][(p1 + p2 + p3) >= 2] + f[i][j][k]) % p;
                            } 

    for (int i = 1; i < n; i ++)
        cout << f[n][i][1] << ' ';
    cout << '\n';
    return 0;
}
深入解析PTN3222DUK信号中继器:从信号完整性原理到USB/eUSB2桥接实战 在高速数字系统设计中,信号完整性是确保数据可靠传输的基石。其核心原理在于管理信号在传输过程中因通道损耗、反射和串扰导致的失真,这直接关系到系统的误码率和稳定性。为了应对这一挑战,信号中继器(Redriver)应运而生,它通过内置的均衡器和驱动器对衰减信号进行补偿与重建,从而延长有效传输距离并提升系统鲁棒性。这项技术在各类高速接口中价值显著,尤其是在连接不同电压域和信号标准的场景下,例如桥接新兴的低功耗eUSB2接口与广泛使用的传统USB 2.0接口。本文将以NXP的PTN3222DUK单端口信号中继器为具体 阅读详情

相关推荐

STM32嵌入式MQTT协议栈移植与工程实践

MQTT是一种面向低带宽、弱网络、资源受限设备的轻量级发布-订阅消息协议,其核心机制包括连接保活(Keep Alive)、遗嘱消息(Will Message)和QoS分级传输。协议层心跳与TCP底层保活协同工作,确保NAT/防火墙环境下的会话可靠性;遗嘱消息配合Retain标志可实现设备离线状态的即时同步,广泛应用于物联网终端管理。在STM32等MCU平台移植时,需规避动态内存分配、适配中断上下文、定制transport四接口,并对CONNACK返回码、QoS等级选择及调试日志进行工程化约束。本文聚焦嵌入式

weixin_42602368的博客 50

STM32+ESP8266 MQTT 协议实战:3步连接 OneNet 平台实现远程控制

本文详细介绍了如何使用STM32微控制器搭配ESP8266 WiFi模块,通过MQTT协议快速接入OneNet物联网平台,实现智能家居和工业物联网中的远程控制功能。内容包括硬件连接、AT指令配置、MQTT报文构造、数据上报与命令接收等关键步骤,并提供了系统优化和常见问题排查的实用技巧。

weixin_33874713的博客 404

用友U8接口开发全攻略:从EAI到OpenAPI的5种方式详解(附避坑指南)

本文深度解析了用友U8系统接口开发的五种核心方式:EAI、API、OpenAPI、SQL直连与内部CO组件。文章详细对比了各方式的适用场景、优缺点及实战操作,并提供了清晰的选型决策框架与避坑指南,帮助开发者根据具体业务需求选择最高效、最稳定的集成路径。

weixin_29322855的博客 684

AtCoder Beginner Contest 248-F- Keep Connect(线性dp)

题目链接:F - Keep Connect (atcoder.jp) 题意,给定一个2*n如图所示的图,在去掉某些边后,图依然连通,请输出n-1个数,分别代表去掉1,2,3..., n-1条边后,图依然连通的方案数 题解:使用动态规划,定义f[i, j, k] 表示前i列,删去j条边,k = 1代表上下两行连通,k = 0 代表上下两行不连通。递推式如图所示 #include <bits/stdc++.h> using namespace std; typedef l

m0_51979134的博客 1375

Git Worktree + Claude Code:多终端并发开发完全实战

深入讲解如何使用 Git Worktree 配合多终端 Claude Code 实现并发开发,通过实战案例展示如何在 Android 开发中提升 2-3 倍效率,彻底告别等待 AI 的问题。

Cheson的专栏 1204

图相似度模型(论文篇)

图相似度模型

weixin_43702653的博客 5748

aspera connect使用的问题

aspera connect使用的问题: 为何ascp老是报错? 网络的问题? hadoop@Mcnode1:~/.aspera/connect/etc$ ascp -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh -k 1 -T -l200m anonftp@ftp.ncbi.nlm.nih.gov:1GB ./

Keep Learning 1万+

飞凌OK3588-C Linux R4系统下MIPI YUV摄像头CSI尺寸错误排查与极性适配方案

本文详细介绍了在飞凌OK3588-C平台的Linux R4系统下调试MIPI YUV摄像头时遇到的'csi size err'错误排查与极性适配方案。通过分析信号极性、驱动参数调整及FPGA协同调试,提供了从硬件检测到系统级调试的完整解决方案,帮助开发者快速解决类似问题。

bean的博客 258

吃透 Linux 监控 + systemd:stress 压测、自定义服务全实操手册

本文介绍了Linux系统负载的概念与监控方法。系统负载包含CPU和IO活动请求数,通过指数移动平均算法计算1、5、15分钟负载值。文章详细讲解了stress工具的使用,包括:1)安装方法;2)CPU压力测试,通过-c参数模拟多核负载;3)内存压力测试,使用-m和--vm-bytes指定内存大小;4)磁盘IO测试,结合-d和--hdd-bytes参数,配合sar和iotop工具监控磁盘读写性能。这些方法可有效测试系统在高负载下的表现,帮助进行性能调优和故障排查。

2301_81987367的博客 526

ESP32系列之LVGL(三):Gui-Guider的使用

Gui-Guider的使用

m0_55986987的博客 2万+

Coze工作流实战:Coze一键生成沉浸式历史故事视频

【coze工作流实战】一键生成火爆的沉浸式历史故事视频!短短3分钟,顶替你3天的工作量!

bickys的博客 1004

RMANCatalog和Nocatalog的区别

原 RMAN Catalog 和 Nocatalog 的区别https://blog.youkuaiyun.com/tianlesoftware/article/details/5641763版权声明: https://blog.youkuaiyun.com/tianlesoftware/article/details/5641763 一.Nocatalog Nocatalog方式 就是用control file作为c...

绿杨 262

uniapp - 详细解决 H5 网页报错 Uncaught Error: Async component timed out after ? ms.(移动端h5页面白屏或加载缓慢失败,超时报错处理)

uni-app,vue3,网页,h5,移动端,手机H5页面,浏览器,报错,uniapp报错,Asynccomponenttimedoutafter,如何解决这个问题,vue3Asynccomponenttimedoutafter,异步组件超时了怎么办,async,详细解决方案,AsyncComponents异步组件,导致页面打不开了,白屏什么也不显示,网页载入非常慢卡顿,vue3网站报错,超时,nuxt3,详细解决方案,浏览器控制台报错,爆红并且页面卡住了,依旧报错,找不到异步组件的报错

🏆 前端领域优质创作者 3776

Python协程调用Seedance 2.0接口突然超时?——基于Wireshark+uvloop内核级抓包的5层定位法

Python协程调用Seedance 2.0接口超时?本文提供Python异步调用Seedance 2.0接口方案实战案例分析,基于Wireshark+uvloop实现5层内核级定位,覆盖DNS、TCP、TLS、HTTP/1.1与业务逻辑层,精准识别阻塞点。高并发场景下定位效率提升3倍,值得收藏。

DeepNest的博客 348

BUCK-BOOST升降压电路Multisim电路仿真分析

本文分析了三极管型BUCK-BOOST升降压开关电源的工作原理。该电路结合了BUCK降压和BOOST升压拓扑,通过控制三极管Q1的高频通断,使电感L1周期性储能和释能,实现输出电压可高于或低于输入电压且极性相反。详细阐述了Q1导通和关断阶段的工作过程,推导了输出电压与占空比的关系式Vo=-D/(1-D)*Vi,并分析了不同占空比下的工作模式(降压、升压)。通过Multisim仿真验证了理论分析,当D=25%时输出降压至1.6V,D=60%时输出升压至7.5V。电路具有升降压灵活、极性反转、效率高等特点,适用

XU157303764的博客 1436

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android集成扣子语音识别SDK实战:从接入到性能优化全解析

基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”从0到1构建生产级别应用,脱离Demo,点击打开。

2600_94959856的博客 310

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

NVMe Linux驱动系列二:target端[core.c]<17>

总之,这段代码实现了为 NVMe over Fabrics 子系统分配一个控制器的过程,包括设置控制器的各种参数和配置,以及将控制器添加到子系统的控制器列表中。它首先检查传入的参数,然后在对应的链表中进行遍历,匹配子系统名称,并增加子系统的引用计数。函数的实现应该在合适的上下文中使用,以确保正确的引用计数管理和线程安全性。需要注意的是,函数在执行过程中可能会进行清理操作,并返回一个错误指针以指示出现的错误情况。这个函数的作用是删除子系统中的所有控制器,确保与该子系统相关联的所有资源都被正确清理和释放。

探索未知,成就非凡 465

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ESP8266-01S作为STM32的“上网卡”:MQTT协议栈移植与OneNet连接稳定性优化心得

本文详细介绍了如何将ESP8266-01S作为STM32的“上网卡”,通过MQTT协议栈移植与OneNet连接稳定性优化,实现工业级可靠性的物联网节点。内容涵盖固件选型、AT指令优化、MQTT协议栈设计、OneNet平台参数调优及故障诊断方案,助力开发者提升设备稳定性和数据上传效率。

weixin_30780649的博客 311

STM32F103 基于 MQTT 协议与 OneNET 平台通信

STM32F103 基于 MQTT 协议与 OneNET 平台通信

aini_lovee的博客 269

小白IT:Python的框架,应用最广泛的Web框架 Django~先了解和学习什么是http协议,以及Django 路由系统及框架模式

文章目录Django框架—web本质和http协议一、Django基础之web框架的本质1.什么是web框架2.自定义web框架二、HTTP超文本传输协议1.http协议的简介什么是http协议http发展2.http协议概述HTTP协议概述HTTP实现前提HTTP实现过程3.HTTP协议工作原理HTTP请求/响应的步骤**例如:浏览器中输入url回车后会经历的流程HTTP请求的特点**1.基于请求-响应的模式2.无状态保存3.无连接4.http请求方法GET方法*HEAD方法POST方法*PUT方法DEL

yidianyidei的博客 1192

React前端面试题

总的来说,React中的setState方法是用于更新组件状态的方法,它可以接收一个对象或一个函数作为参数,用于更新组件的状态。具体的实现就是在客户端创建一个script标签,然后把请求后端的接口拼接一个回调函数名称作为参数传给后端,并且赋值给script标签的src属性,然后把script标签添加到body中,当后端接收到客户端的请求时,会解析得到回调函数名称,然后把数据和回调函数名称拼接成函数调用的形式返回,客户端解析后会调用定义好的回调函数,然后在回调函数中就可以获取到后端返回的数据了。

m0_62313902的博客 1932

Python爬虫 1-爬虫简介

1.通信协议 1.1端口 我们想要进行数据通讯分几步? 1.找到对方IP 2.数据要发送到对方指定的应用程序上。为了标识这些应用程序,所以给这些网络应用程序都用数字进行了标识。为了方便称呼这个数字,叫做 端口。这里的端口 我们一般都叫做 ‘逻辑端口’ 3.定义通讯规则。这个通讯规则我们一般称之为协议 1.2 通信协议 国际组织定义了通用的通信协议 TCP/IP协议 所谓协议就是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则 • HTTP又叫做超文本传输协议(是一种通信协议) HTT

大余的技术博客 1073

TPIC7710EVM评估板:汽车电子驻车制动ASIC的硬件与GUI软件实战指南

在汽车电子开发中,评估模块(EVM)是连接芯片数据手册与最终产品之间的关键桥梁,它通过硬件复现和软件抽象,帮助工程师快速验证专用集成电路(ASIC)的功能与性能。其核心原理在于提供一个隔离、可测的沙盒环境,将复杂的寄存器操作转化为直观的图形化控制。这种软硬件结合的技术方案,极大地提升了开发效率,降低了系统集成风险。对于车身控制、电机驱动等关键应用,EVM能够安全地模拟真实工况,如电机电流监测与故障注入,是进行功能安全验证和前期原型设计的必备工具。本文以德州仪器TPIC7710 EPB ASIC的评估板为例,

all00747的博客 410

Datoviz相机控制技巧:2D平移缩放与3D弧球交互实现

Datoviz作为一款高性能GPU科学数据可视化库,提供了强大的相机控制功能,让用户能够轻松实现2D和3D数据的交互式探索。本文将详细介绍Datoviz的相机控制技巧,包括2D平移缩放和3D弧球交互的实现方法,帮助您快速掌握这一强大工具。 ## 📊 为什么相机控制对数据可视化如此重要? 在科学数据可视化中,交互式相机控制是探索复杂数据集的关键。无论是查看大规模点云、分析3D模型还是研究高维数

gitblog_01041的博客 378

Android开发工具链与性能优化实战指南

Android开发工具链是提升开发效率的核心要素,从构建系统到调试工具构成完整技术体系。Gradle作为主流构建工具,通过依赖管理和任务编排实现高效编译,其DSL语法和ProGuard混淆规则需要特别注意。Android Studio深度集成了ADB调试工具和性能分析套件,配合Scrcpy无线调试等技巧能显著提升开发体验。在性能优化层面,内存管理涉及LeakCanary检测和Bitmap加载策略,渲染性能则需关注Choreographer帧率监控。安全加固方面,ProGuard混淆规则与OkHttp安全配置

weixin_33805743的博客 420

【vllm】(v1 Engine)vLLM V1 Engine 深度分析 — Part2: 客户端与异步引擎

vLLM V1 Engine 深度分析 — Part2: 客户端与异步引擎

zhonglinzhang 367
上一篇: Codeforces Round #782 (Div. 2)
下一篇: Codeforces Round #783 (Div. 2)
枉玊
博客等级 码龄6年 73粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值