DP模式

DP也练了一部分,找感觉。

说一下VIJOS上的。

◆线性连接性的问题(包括分配问题,转换问题,连接问题,及宏观扩展),这样的例子比较多,方程就是由一维来记录处理到的线性位置作为阶段,然后用额外的未来记录分配的情况,之前临近的连接情况等,这样一个一个把状态连接起来得最优

例子:

P1323化工厂装箱员 P1386矿工配餐 P1417魔法塔防 P1421更换轮胎 P1456最小总代价 P1470教主的后花园 P1002过河

◆线性的选择问题

这种就是类似最长不上升子序列之类的那种,当处理到i时,在前面选择一个可能的情况跟他连起来,例子比如说:

P1098合唱队形 P1331看球的巴士

◆开放的划分推进

这种一般就是一个二维的方程,表示把这一段分在一起,可以开额外的维来表示一些特殊的情况,这样可以已分段为阶段向后推进,这种一般可以用于一种按照某种规则划分,使划分的段数最优的问题,也就是划分的段数未知时,并且这个不适于环形的,记忆化的话会出问题。。。

例子:

P1306 递增序列 P1322解题

◆封闭的划分或者选择

一般就是二维的方程表示把这一段已经划分完毕后的情况,以划分的的长度为阶段,比较适合于给定划分段数的划分问题,可以处理环,用记忆化会比较好些。。。转移时可以枚举划分的中心或者这一部分中划分为独立的一段的位置

例子:

P1100加分二叉树 P1118统计单词个数 P1218数字游戏 P1312能量项链

◆树形DP

很好很强大的Dp,一般依托树上的关系进行转移,并且因为依托关系比较严重,所以会开几维来记录情况,将每种情况分开处理。一般,如果不愿意多叉转二叉,可以用哪种求和以后进行枚举儿子进行替换

例子

P1144小胖守皇宫 P1395HYH的逻辑电路

◆背包问题

背包是个很好很强大的东西,各种例子,应用太多了。。。包括分组背包,判定性背包,将诡异的东西作为物品什么的。。。例子:

P1025小飞侠游园方案 P1104采药 P1117数的划分 P1133装箱问题 P1198最佳课题选择 P1313今明的预算方案 P1317开心的今明 P1334NASA的食物计划 P1407古韵之刺绣

 

◆图上的DP

图上的DP一般都会有某种限制来形成阶段和无后效性,比如阶段图,方向限制,权值(编号)限制,时间线限制,找到这个阶段就好搞了,最好进行记忆化搜索

例子:P1011清帝疑惑之顺治 P1364吃吃吃 P1370采果子 P1474雷曼兔

 

◆多进程DP 多方向Dp

这些都是比较奇怪的类型,比如旅行商简化版,HILL,三取方格数。。。不具体说了

 

◆双位选择问题:

类似最长公共子序列那种的,有两种两种位置共同构成状态,然后根据限制条件,选择两边,或者放弃某一边

一些例子:

P1327回文词 P1378矩阵取数游戏

 

◆包含性的可行性DP

V囧上比较少,但是如果想不到最优性的DP,可以想这种可行性的。。。

 

◆◆注意的问题

多个小Dp组成,比如矩阵取数游戏,统计单词个数,合唱队形之类的,就是不同次的DP没有关系,但是总起来就解决问题了。

空间问题:考虑可不可以使用滚动数组,但那时滚动数组如果正推要考虑每次都进行初始化

数据范围:看清楚是否需要高精,另外如果用int64那么中间的变量也需要用int64

赋初始值:有时注意赋值为maxlongint时,注意是不是会不够大,中间过程会不会两个相加爆掉。。。

环形DP--处理环:处理环有好几种情况,比如依赖于划分的,主要问题就是划分点可能正好位于环的两端相连的的地方,所以一般的做法是拷贝环,然后枚举每个起始点,记忆化搜索,比如数字游戏,能量项链。另一种就是可能就是相邻的决策有限制条件,这样可以单独处理一下边界位置就行了,比如说1470后花园。

输出方案:状态转移的时候顺便记录,至于字典序的问题,不一定在每次DP的时候选择一个字典序比较靠前的,要想清楚,最好都记下来然后深搜或者用字符串排

在Linux系统下配置蓝牙耳机以使用A2DP(Advanced Audio Distribution Profile)模式,通常需要确保蓝牙服务正常运行,并且正确加载了相关的音频模块。以下是配置蓝牙耳机A2DP模式的步骤和注意事项: 1. **安装必要的软件包** 确保系统中已经安装了`bluez`(蓝牙协议栈)和`pulseaudio`(声音服务器)。如果没有安装,可以通过以下命令安装: ```bash sudo apt-get install bluez pulseaudio pavucontrol ``` 2. **启动蓝牙服务** 确保蓝牙服务已经启动。可以使用以下命令检查蓝牙服务状态并启动: ```bash sudo systemctl start bluetooth sudo systemctl enable bluetooth ``` 3. **启动蓝牙音频守护进程** 使用`bluealsa`作为蓝牙音频的中间件,可以通过以下命令启动`bluealsad`守护进程,并指定蓝牙适配器和启用A2DP模式: ```bash bluealsad -i hci0 -p a2dp-source -S --all-codecs --loglevel=info & ``` 其中,`-i hci0`表示使用`hci0`蓝牙适配器,`-p a2dp-source`表示启用A2DP模式,`-S`表示以系统模式运行,`--all-codecs`表示启用所有编解码器,`--loglevel=info`设置日志级别为信息模式[^1]。 4. **配对蓝牙耳机** 使用`bluetoothctl`工具进行蓝牙设备的扫描和配对。首先启动`bluetoothctl`,然后执行以下命令: ```bash bluetoothctl power on agent on default-agent scan on ``` 找到目标蓝牙耳机的MAC地址后,执行配对命令: ```bash pair XX:XX:XX:XX:XX:XX trust XX:XX:XX:XX:XX:XX connect XX:XX:XX:XX:XX:XX ``` 其中`XX:XX:XX:XX:XX:XX`是蓝牙耳机的MAC地址。 5. **加载PulseAudio模块** 在成功连接蓝牙耳机后,需要加载PulseAudio的蓝牙音频模块,以便系统能够通过蓝牙耳机播放音频。执行以下命令: ```bash pactl load-module module-alsa-sink device=bluetooth pactl load-module module-alsa-source device=bluetooth ``` 6. **使用PulseAudio控制音频输出** 安装`pavucontrol`工具后,可以通过图形界面调整音频输出设备。运行`pavucontrol`,在"Output Devices"选项卡中选择蓝牙耳机作为默认音频输出设备[^2]。 7. **验证A2DP模式是否生效** 播放音频文件或使用音频应用程序,检查是否能够通过蓝牙耳机播放音频。如果一切正常,蓝牙耳机应该能够以A2DP模式传输高质量音频。 ### 相关问题 1. 如何在Linux系统下解决蓝牙耳机连接失败的问题? 2. 蓝牙耳机在Linux系统中如何切换A2DP和HSP/HFP模式? 3. 如何在Ubuntu系统中调试蓝牙音频传输问题? 4. Linux系统中蓝牙音频延迟问题的解决方案有哪些? 5. 如何在Linux系统中使用`bluez`和`pulseaudio`配置蓝牙音箱?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值