
dp
文章平均质量分 85
何乐乐和何了了
冲冲冲!
展开
-
百度2022秋招 -研发B卷(9月7日) 后两题解答
第二题A,B是两个自然数,已知A和B的最大公约数可以表示为GCD(A,B),最小公倍数可以表示为LCM(A,B),现给出以下限制:GCD(A,B)=1LCM(A,B)=A*B假设一个自然数N是两个自然数A和B的最小公倍数,给出N的值,满足上述条件的数对A和B有多少对?例如,如果N=30,则有四对可能的自然数:(1, 30), (2, 15), (3, 10), (5, 6)。(注意:此处(2,15)和(15,2)视为同一对情况。)编写一个程序,给定一个自然数N,输出满足上述条件的情况数有多少。输原创 2021-09-07 21:08:56 · 2321 阅读 · 3 评论 -
动态规划【9】之单调栈优化
单调栈例题例题:luogu5788 【模板】单调栈给出项数为 nnn的整数数列 $a_{1…n}。定义函数 f(i)f(i)f(i) 代表数列中第iii个元素之后第一个大于aia_iai的元素的下标,即f(i)=mini<j≤n,aj>aijf(i)=\min_{i<j\leq n,a_{j}>a_{i}}{j}f(i)=mini<j≤n,aj>a...原创 2020-03-10 15:43:51 · 569 阅读 · 0 评论 -
动态规划【10】之单调队列优化
单调队列例题例题:luogu1886 滑动窗口 /【模板】单调队列有一个长为nnn的序列aaa,以及一个大小为kkk的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。对于100%100\%100%的数据,1≤k≤n≤106,ai∈[−231,231).1\leq k\leq n\leq 10^6, a_i\in[-2^{31},2^{31}).1≤...原创 2020-03-10 14:38:52 · 309 阅读 · 0 评论 -
动态规划【8】之状态压缩DP(2)
例题:luogu1896 [SCOI2005]互不侵犯在N×NN×NN×N的棋盘里面放KKK个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共888个格子。限制条件:N≤9,K≤N×NN\leq9, K\leq N×NN≤9,K≤N×N。暴力万事都从暴力的方法说起, 考虑深度优先搜索,将在N×NN×NN×N拿出KKK个...原创 2020-03-06 16:01:44 · 283 阅读 · 0 评论 -
动态规划【8】之状态压缩DP
状态压缩DP将状态作为数组的一维,进行动态规划。例题:luogu1433 吃奶酪房间里放着 nnn 块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在 (0,0)(0,0)(0,0) 点处。输出要跑的最少距离。其中n≤15n \leq 15n≤15。因为要把所有的奶酪吃完,所以我们要考虑吃的顺序,不同的顺序对结果有很大的影响。从暴力的角度看,共有n!n!n!个顺序,当...原创 2020-03-04 16:15:10 · 344 阅读 · 0 评论 -
动态规划【7】之区间动态规划
区间类动态规划是线性动态规划的扩展,它在分阶段地划分问题时,与阶段中元素出现的顺序和由前一阶段的哪些元素合并而来由很大的关系。令状态f[i,j]f[i,j]f[i,j]表示将下标位置iii到jjj的所有元素合并能获得的价值的最大值,那么f[i,j]=max{f[i,k]+f[k+1,j]+cost}f[i,j]=\max\{f[i,k]+f[k+1,j]+cost\}f[i,j]=max{f[i...原创 2020-03-02 15:03:55 · 329 阅读 · 1 评论 -
动态规划【6】之分组背包
例题:luogu1757 通天之分组背包.所谓分组背包,就是将物品分组,每组的物品相互冲突,最多只能选一个物品放进去1。相对于0/1背包增加了分组。本文将介绍类似0/1背包的方式。回顾0/1背包的方式,dp[i][j]dp[i][j]dp[i][j]表示前iii个物品中总重量不大于jjj的最大价值,转移式是dp[i][j]=max(dp[i−1][j],dp[i−1][j−w[i]]+v[i...原创 2020-02-29 19:26:20 · 527 阅读 · 0 评论 -
动态规划【5】之二维费用背包
例题:luogu1855 榨取kkksc03这道题是很明显的 0-1 背包问题,可是不同的是选一个物品会消耗两种价值(经费、时间)。这种问题其实很简单:方程基本不用变,只需再开一维,同时转移两个价值就行了!(完全、多重背包同理)1代码如下:/* ***********************************************Author : VFVrPQCre...原创 2020-02-29 15:59:49 · 324 阅读 · 0 评论 -
动态规划【4】之混合背包
混合背包就是将前面三种的背包问题混合起来,有的只能取一次,有的能取无限次,有的只能取kkk次。1例题:luogu1833 樱花事实上,我们直接对不同的物品按情况讨论即可。关于混合背包,0/1背包可以看成是多重背包的特例(k=1k=1k=1),因此,仅考虑两种情况即可。luogu1833 樱花对应的代码如下:/* **************************************...原创 2020-02-28 16:08:15 · 1354 阅读 · 1 评论 -
BestCoder Round #92-1003 Girls Love 233
#include using namespace std;const int N=100+10;int dp[N][N][N/2];char str[N];int n,m,num,p[N];int main(){ int Case;scanf("%d",&Case); while (Case--){ scanf("%d%d",&n,&m);m/=原创 2017-02-28 19:38:01 · 428 阅读 · 0 评论