首页 > 其他分享 >专项训练dp总结

专项训练dp总结

时间:2024-10-16 21:20:59浏览次数:7  
标签:总结 专项 若下 合法 deski 序列 一位 dp

作者在做题的时候深感自己dp水平的低下(几近为零),于是尝试逼迫自己搞懂每道题并写一点做题记录,本质上是为了避免自己成为只会抄题解的机器。。

1.[PA2021] Od deski do deski

首先,对于一个合法的序列f,若f+x为合法序列,那么f+x+x必然也为合法序列。

其次状态设计,设 \(f_{i,j,0/1}\) 表示序列的前 \(i\) 个,在后面放 \(j\) 种数可以变成合法的(注意这一位的设计会比较诡异,但是为了方便转移),0/1表示当前这个序列是否合法。

考虑转移,对于第 \(i+1\) 位进行分讨,如果当前序列是合法的,则有

\[若下一位合法:f_{i+1,j,1}+=f_{i+1,j,1}+f_{i,j,1}*j \]

\[若下一位不合法:f_{i+1,j+1,0}+=f_{i,j,1}*(m-j) \]

标签:总结,专项,若下,合法,deski,序列,一位,dp
From: https://www.cnblogs.com/wann-042013/p/18470956

相关文章

  • 在线匿名浏览的4个有效方法总结
    在现如今的网络世界,在线隐私已不复存在。你总是被跟踪,即使你使用隐身模式也无济于事。隐身模式会阻止浏览器保存你的浏览历史记录。但它并不能阻止你的互联网服务提供商(ISP)、雇主、学校、图书馆或你访问的网站看到你在网上做什么。更有不法分子在未经同意的情况下出售您......
  • 内核空间总结
    内核空间是内存中专门为内核代码保留的区域,负责执行操作系统的核心功能。Linux内核的所有代码都在内核空间中运行,并且这些代码在内核态下执行。内核态是系统的高权限运行模式,允许对系统资源(如内存、硬件设备和I/O操作)进行直接访问和管理。运行在内核空间中的关键组件,如内核......
  • 标准C库总结
    C标准库(或称libc)是C编程语言的标准库,根据ISOC标准进行规范。从最初的ANSIC标准开始,C标准库与POSIX规范的C库几乎同时开发,POSIX规范是其超集。自ANSIC被国际标准化组织(ISO)采纳后,C标准库也被称为ISOC库。标准C库的功能标准C库在用户空间中扮演了重要的中介角色。它不仅......
  • 2024/10/16 模拟赛总结
    \(30+0+40+40=100\),T4没看到输入不按顺序痛失\(35\)pts#A.最终测试很少见到不要dp的期望了直接枚举每一个人的四种情况,二分查找有多少种情况有多少人分比他高,最后除以\(16\)即可\(16\)是两个人的所有情况,即\(4\times4\)//BLuemoon_#include<bits/stdc++.h>......
  • 20241016 模拟赛总结
    期望得分:100+100+55(?)+0=255实际得分:100+100+0+0=200迷迷糊糊睡了好一会才起来打……感觉打的还行,除了T3时间太紧了,有的错误没检查出来挂分了。。T1简单线性DP。\(f_i\)表示前i个数的答案,\(g_i\)有点抽象,先假设当前在\(p\),\(a_p=i\),\(g_i\)表示的是如果\(p\)......
  • mpls(动态) ldp 原理与配置(抓包分析)
     静态mpls配置繁琐,如果想要加一条mpls隧道,需要再整条LSP上进行配置,因此在实际配置中一般采用动态mpls。动态mpls原理静态mpls通过配置标签的出入设备,使LSR对标签达成共识。而动态mpls可以在LSR(直连或非直连)之间运行LDP(路由分发协议),使LSR自动生成标签。LDP的基本概念L......
  • 前缀和和差分归纳总结
    前缀和数组可以在O(1)的时间内求得某一区间中的所有数据的和差分数组可以在O(1)的时间内对某一区间中的所有数据进行加减操作原数组求差分及为差分数组,差分数组再求前缀和即为原数组一维前缀和:设原数组为a[N],前缀和数组为s[N],数组下标都从1开始存储每个s[i]等于a[1]......
  • python-基础-常见字符串格式化方法总结
    1.f-string方法案例:点击查看代码#计算圆的面积importmathdefcalculate_circle_area(radius):"""计算圆的面积"""returnmath.pi*(radius**2)radius=5#圆的半径area=calculate_circle_area(radius)print(f"圆的面积为:{area:.2f}"......
  • 数据合并和dplyr包的介绍
    数据合并选取数据newdata<-leadship[,c(1:6)]选取了q1到q5或者vars<-c("q1","q2","q3","q4","q5")Newdata<-leadship[,vars]>print(newdata)  q1q2q3q4q51 5 4 5 5 52 3 5 2 5 53 3 5 5......
  • 2024.10.16总结
    本文于github博客同步更新。A:打表发现有决策单调性,考虑人类智慧,每次向后跳\(rand\%200\)个点,若更优则继续跳,然后就过了。正解是这样写的:设\(p[i\)]为当前层的最优决策点,把决策按顺序加入,同时更新\(p[i]\)把相同的\(p[i]\)合并成一个点,对这些点维护栈,每加入一个决策......