省常中集训Day7 2022.8.9

本文介绍了三个算法问题的解题思路:一是利用DP解决回文数与模P的计数问题,时间复杂度为O(N×P);二是涉及字母分类的字典序最小合法字符串的模拟方法;三是通过排序和堆优化解决最早完成K盘菜的用餐策略问题,时间复杂度为O(N log N)。
摘要由CSDN通过智能技术生成

1.数位:

题意:给定正整数 N, P,你需要求出在 10N 以内,有多少回文数P 的倍数。  (n<=200,p<=1e5)

题解:

从回文数的中间向两侧 DP:记录 dp[i][j] 表示位数为 i 的回文数中,模 P 为 j 的
个数作为状态,转移时考虑在当前回文数的两侧填上一个相同的数字即可。
需要注意的细节是:
(1). 所求的回文数不能带有前导零
(2). 回文数的长度可以是奇数或者偶数
时间复杂度 O(N × P) 。

source:纯暴力30分

2.字典:

题意:

给定一个长度为 L 的,仅由 {A, B} 组成的字符串 T,表示一个对于前 L 个小写
字母的分类方法:即,Ti = A 表示第 i 个小写字母被分入了 A 类,否则为 B 类。
我们称一个由小写字母组成的字符串 S 是合法的,当且仅当:
(1). S 的长度为 N、(2). S 仅由前 L 个小写字母组成、(3). S 满足 M 条形如 (p1, t1, p2, t2) 的限制
其中,限制 (p1, t1, p2, t2) 的含义为:如果 Sp1 是 t1 类的,那么 Sp2 是 t2 类的。
给定一个长度为 N 的,仅由前 L 个小写字母组成,但不一定合法的字符串 R。你
需要求出字典序不小于 R 的,字典序最小的合法字符串

题解:看不懂,好像是模拟

3.用餐:

题意:给n盘菜,给出菜品做好的时间,和吃菜品的所需要的时间。求最早可以在什么时候吃下 Kk盘菜k。

题解:

固定一个菜的集合 S,按照 ai 从小到大的顺序可以最快地吃完集合 S。这是因为 ai 从小到大的顺序最小化了等待时间。

允许吃下一盘菜的一部分。在上面的例子中,如果 K = N, 那么我们不会闲置这段时间,而是会开始吃菜 x,从而导致得到的菜 y 开始吃的时间晚于其做好的时间。另一种观察这个过程的视角是,我们先吃了一段时间的菜 x,在菜 y 做好时进行切换,先开始吃菜 y,吃完 y 之后再回头把 x 吃完。

在任何时刻吃菜,都应选择可选的菜中用时最短的一盘。由此,我们可以唯一地确定新问题的最优策略,只需要将所有的菜按照 ai 排序,按照时间顺序模拟整个过程即可。找到可选的菜中用时最短的一盘的过程可以用堆进行加速。单组数据时间复杂度 O(N log N)

4.分配:

题意:题目就看不懂了呜呜。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值