首页 > 其他分享 >DP做题记录

DP做题记录

时间:2023-11-11 20:55:21浏览次数:29  
标签:方案 ch 匹配 记录 times le 做题 DP

蒟蒻DP太菜了QAQ。
一点体会:DP就是如何通过最少的信息确定最优解。

P5664 [CSP-S2019] Emiya 家今天的饭

思考了一下,发现第3个要求很难直接搞,于是考虑正难则反,用总方案数减去不符合要求的方案数。求总方案数:

\(g_{i,j}\) 表示在前 \(i\) 行中选 \(j\) 个点的方案数,则

\[g_{i,j}=g_{i-1,j}+g_{i-1,j-1}\times s_i \]

其中 \(s_i = \sum_{1 \le j \le m} a_{i, j}\) 。最后 \(\sum_{1\le i \le n}g_{n, j}\) 就是总方案数。

求不满足要求的方案数:

枚举超额的列 \(k\) ,\(f_{i, j}\) 表示在前 \(i\) 行且当前列比其余列多 \(j\) 个的方案数,有:

\[f_{i,j} = \begin{cases} f_{i - 1, j} \\ +\\ f_{i - 1,j - 1} \times a_{i,k} \\ +\\ f_{i - 1,j + 1} \times (s_i-a_{i,k}) \end{cases} \]

P2167 [SDOI2009] Bill的挑战

首先我们可以发现求出跟其中一个字符串匹配的 \(T\) 的个数,但题目中要求刚好和 \(K\) 串匹配的方案数。之后又可以注意到一个串和 \(A\) 匹配和 \(B\) 不匹配只由 \(A, B\) 中字母位和串的长度决定。考虑状压:

\(f_{i, j}\) 表示 \(T\) 与 \(n\) 个字符串中的 状态 \(j\) 前 \(i\) 位匹配的方案数。我们考虑枚举第 \(i + 1\) 的字符 ch,提前求出 \(g[i][ch]\) 表示n个字符串中第 \(i\) 位为ch的状态,那么有:

\[f_{i+1, j \cap g[i+1][ch]} += f_{i,j} \]

另外,我们可以把? 看作一个字符,只不过26种都算而已。

标签:方案,ch,匹配,记录,times,le,做题,DP
From: https://www.cnblogs.com/yduck/p/17826346.html

相关文章

  • 记录C语言实现的单向链表
    利用C语言实现的单向链表接口函数。#include<stdio.h>#include<stdlib.h>#include<stdbool.h>typedefvoid*OSMutex_t;//duration:-1forever;0nowait;nmillionseconds.//return0ifsuccess.staticintOSMutex_lock(OSMutex_tmutex,intdurat......
  • 记录--啊?Vue是有三种路由模式的?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助众所周知,vue路由模式常见的有history和hash模式,但其实还有一种方式-abstract模式(了解一哈~)别急,本文我们将重点逐步了解:路由+几种路由模式+使用场景+思考+freestyle路由概念路由的本质就是一种对......
  • P3842-DP【黄】
    想搜索到最后一层,就必得先完成前面层的搜索任务,这构成了对状态转移的启示,即当前层的DP值应该是此前层转移过来后得到的最佳值。但这道题看数据范围应该不能用二维数组,抱着侥幸的心理我使用了动态二维数组,dpij表示以第i层第j个为终点时的答案,结果MLE了,喜提42分,详见CODE-1。后来意......
  • Util应用框架基础(六) - 日志记录(一) - 正文
    本文介绍Util应用框架如何记录日志.日志记录共分4篇,本文是正文,后续还有3篇分别介绍写入不同日志接收器的安装和配置方法.概述日志记录对于了解系统执行情况非常重要.Asp.NetCore抽象了日志基础架构,支持使用日志提供程序进行扩展,提供控制台日志等简单实现.Serilog是.N......
  • 状态机模型DP
    //http://ybt.ssoier.cn:8088/problem_show.php?pid=1302#include<bits/stdc++.h>usingnamespacestd;constintN=2e5+10;intdp[N][3][3],n,w[N],t;intmain(){cin>>t;while(t--){cin>>n;intres=0;memset(......
  • Linux卡死的解决方法记录
    本人在使用Linux时突然卡死,检索解决方法及相关知识后总结进行记录。解决方法1.尝试进入tty若Linux在桌面中卡死,可以尝试按下快捷键组合ctrl+alt+F3进入tty3(类似的可以按下快捷键组合ctrl+alt+F4进入tty4,可扩展到tty6),在tty中先通过top命令获取高cpu占用进程,再通过pk......
  • [题解] AT_dp_w Intervals
    Intervals有\(m\)条形如\((l,r,a)\)的限制,表示如果\(s_{[l,r]}\)中有1就会有\(a\)的价值。你要求长度为\(n\)的01串的价值的最大值。\(n,m\le2\times10^5\)。将每个限制挂到右端点上,在右端点处计算贡献。然后我们就只关心最后一个1出现的位置了。......
  • 转 问题解决:记录一次Linux服务器根目录突然爆满
    一般跟目录满了,可以重点关注/var这个目录 一、出问题了过了个双休来到公司,同时发现Linux终端的服务器状态中根目录空间直接爆满100%,周五走之前根目录仅仅使用了59%,同时项目服务的后台不停的有日志打印,而且测试的小伙伴说系统登录不上去了。下面记录一下个人排查并解决这个问题......
  • 导弹拦截做题报告2023
    导弹拦截被19年薄纱了。嗯造两个小时,44pts。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;constintN=1e5+10;inta[N],cnt=0,sum=0,ans=0;intF[N],tag[N];boolvis[N],is_first=......
  • 【小沐学前端】Windows下搭建WordPress(一、相关工具下载)
    1、简介WordPress是基于PHP和MySQL的免费开源内容管理系统(CMS)。它是全球使用最广泛的CMS软件,截至2019年5月,它为排名前1000万个网站中提供了超过30%的支持,并拥有在使用CMS构建的所有网站中,估计有60%的市场份额。1.1Nginxnginx[enginex]是一个HTTP和反向代理服务器,邮件代理......