当前位置: 移动技术网 >

dP

  (共找到 302 条与 dP 相关的信息)

洛谷P2062 分队问题(dp)

2018-09-12 21:16 | 评论:0 次 | 浏览: 0

题意 题目链接 给定n个选手,将他们分成若干只队伍。其中第i个选手要求自己所属的队伍的人数大等于a[i]人。 在满足所有选手的要求的前提下,最大化队伍的总数。 注:每个选手属于且仅属于一支队伍。 Sol 直接dp,$f[i]$表示到第$i$个人最多分成几组 很显然,一定是从上一个能放的位置转移而来 ...

BZOJ2216: [Poi2011]Lightning Conductor(DP 决策单调性)

2018-09-21 13:04 | 评论:0 次 | 浏览: 0

题意 题目链接 Sol 很nice的决策单调性题目 首先把给出的式子移项,我们要求的$P_i = max(a_j + \sqrt{|i - j|}) - a_i$。 按套路把绝对值拆掉,$p_i = max(max_{j = 1}^i (a_j = \sqrt{i - j}), max_{j = i ...

agc015E - Mr.Aoki Incubator(dp)

2018-09-27 13:41 | 评论:0 次 | 浏览: 0

题意 题目链接 平面上有$n$个点,每个点都有一个位置$x_i$,和向右的速度$v_i$现在要求你对其中的一些点进行染色,当一个点被染色后,在无限距离内与它相遇的点也会被染色问在可能的$2^n$种染色方案中,有多少种染色方案可以使得最后的点全部被染色 Sol 非常好的dp题。 首先考虑若点$i$被染 ...

BZOJ3329: Xorequ(二进制数位dp 矩阵快速幂)

2018-10-07 12:30 | 评论:0 次 | 浏览: 0

题意 "题目链接" Sol 挺套路的一道题 首先把式子移一下项 $x \oplus 2x = 3x$ 有一件显然的事情:$a \oplus b \leqslant c$ 又因为$a \oplus b + 2(a \& b) = c$ 那么$x \& 2x = 0$ 也就是说,$x$的二进制表示下不能 ...

BZOJ1044: [HAOI2008]木棍分割(dp 单调队列)

2018-10-09 15:50 | 评论:0 次 | 浏览: 0

题意 "题目链接" Sol 比较套路的一个题。 第一问二分答案check一下 第二问设$f[i][j]$表示前$i$个数,切了$j$段的方案数,单调队列优化一下。 转移的时候只需要保证当前段的长度小于最大限度即可。 cpp include using namespace std; const int ...

cf868F. Yet Another Minimization Problem(决策单调性 分治dp)

2018-10-11 13:07 | 评论:0 次 | 浏览: 0

题意 "题目链接" 给定一个长度为$n$的序列。你需要将它分为$m$段,每一段的代价为这一段内相同的数的对数,最小化代价总和。 $n define LL long long using namespace std; const int MAXN = 1e5 + 10; inline int read ...

洛谷P1970 花匠(dp)

2018-10-26 15:12 | 评论:0 次 | 浏览: 0

题意 "题目链接" Sol 直接用$f[i][0/1]$表示到第$i$个位置,该位置是以上升结尾还是以下降结尾 转移的时候只需枚举前一个即可 cpp include include using namespace std; const int MAXN = 1e6 + 10; inline int ...

dp算法之平安果路径问题c++

2018-10-31 13:20 | 评论:0 次 | 浏览: 0

前文:https://www.cnblogs.com/ljy1227476113/p/9563101.html 在此基础上更新了可以看到行走路径的代码。 代码: 结果: 输入: 2 4 1 2 3 40 6 7 8 90 输出: 1 2 3 40 90 136 ...

[luogu1552][派遣]

2018-11-28 13:22 | 评论:0 次 | 浏览: 0

思路 首先肯定要树形dp,一直没想到怎么用左偏树。如果不断弹出又不断地合并复杂度不就太高了。瞄了眼题解才知道可以直接用大根树。然后记录出当前这棵左偏树的大小(树里面所有点的薪水之和)以及点的个数。然后不断的删点。直到薪水满足条件为止。 ...

BZOJ1925: [Sdoi2010]地精部落(dp)

2018-12-07 12:27 | 评论:0 次 | 浏览: 0

题意 "题目链接" Sol 不会做Orzzzz 想到了和题解一样的方程,但是根本不会转移 具体题解看 "这里" 吧 大致思路就是先推一波性质,然后对于最后一个位置上的数$i$,分两种情况讨论一下:与$i 1$相邻 / 不相邻, cpp include define chmin(x, y) (x = ...

[分层图最短路][学习笔记]

2018-12-19 16:18 | 评论:0 次 | 浏览: 0

昨天考试分层图最短路用个dp暴力水了90分。今天只有10分。。。还是好好来学分层图吧。~~(实际是不想学数据结构2333)~~ 一类问题 分层图最短路得经典模板题就是这样 ...

cf348D. Turtles(LGV定理 dp)

2018-12-29 14:28 | 评论:0 次 | 浏览: 0

题意 "题目链接" 在$n \times m$有坏点的矩形中找出两条从起点到终点的不相交路径的方案数 Sol "Lindström–Gessel–Viennot lemma" 的裸题? 这个定理是说点集$A = \{a_1, a_2, \dots a_n \}$到$B = \{b_1, b_2, \ ...

洛谷P4360 [CEOI2004]锯木厂选址(dp 斜率优化)

2019-01-01 14:49 | 评论:0 次 | 浏览: 0

题意 "题目链接" Sol 枚举第二个球放的位置,用前缀和推一波之后发现可以斜率优化 cpp // luogu judger enable o2 include define Pair pair define MP(x, y) make_pair(x, y) define fi first defi ...

BZOJ1911: [Apio2010]特别行动队(dp 斜率优化)

2019-01-01 14:49 | 评论:0 次 | 浏览: 0

题意 "题目链接" Sol 裸的斜率优化,注意推导过程中的符号问题。 cpp include define Pair pair define MP(x, y) make_pair(x, y) define fi first define se second define int long long ...

cf232E. Quick Tortoise(分治 bitset dp)

2019-01-16 09:22 | 评论:0 次 | 浏览: 0

题意 "题目链接" Sol 感觉这个思路还是不错的 cpp include using namespace std; const int MAXN = 501, SS = 5e6 + 10; inline int read() { char c = getchar(); int x = 0, f = ...

【树形DP】洛谷1122_最大子树和

2019-01-21 07:17 | 评论:0 次 | 浏览: 0

又是一道树形DP的入门题,思想非常简单 然而我最开始还是存了两个状态[传送门] 题目描述 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题。一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题。于是当日课后,小明就向老师提出了这个问 ...

【树形DP】洛谷P1352_没有上司的舞会

2019-01-21 07:19 | 评论:0 次 | 浏览: 0

本人第一篇Blog,初学树形DP,心情别样鸡冻... 好了废话不多说,我们来看看题目[传送门] 某大学有N个职员,编号为1~N。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但是呢,如果某 ...

洛谷P4577 [FJOI2018]领导集团问题(dp 线段树合并)

2019-03-01 07:15 | 评论:0 次 | 浏览: 0

题意 "题目链接" Sol 首先不难想到一个dp,设$f[i][j]$表示$i$的子树内选择的最小值至少为$j$的最大个数 转移的时候维护一个后缀$mx$然后直接加 因为后缀max是单调不升的,那么我们可以维护他的差分数组(两个差分数组相加再求和 与 对两个原数组直接求和是一样的) 向上合并的过程中 ...

[AH2017/HNOI2017] 大佬

2019-06-01 07:15 | 评论:0 次 | 浏览: 0

大佬每天给出的伤害是固有的,设dp[i,j]表述使得前i天结束时我的自信为j最少做水题的天数。D=max(i dp[i,j])就是总共拿来给伤害的最大天数。打伤害一类是固定的伤害1,一类是积累伤害打出(最多用两次)。不妨暴力搜索积累伤害的情形c(d,f),即我们用了d天积累了f的伤害。 若D =hp ...

有关同时进行两条线路的四维dp

2019-08-24 17:03 | 评论:0 次 | 浏览: 0

今天发现自己完全对这种dp没有思路……我果然太蒻了。/落泪.jpg 对于一个N*N的方格图中选择两条线路从左上角到右下角,其实只要用一个数组f[i][j][p][q]记录一个人走到(i,j)另一个人走到(p,q)的最优解就好啦。 由于行进的方向是固定的,即只可以向右或向下,所以只可能有四种情况:f[ ...

中国财经峰会现场采访联合通商科技DP事业群高级总监许涵云先生

2018-07-30 16:59 | 评论:0 次 | 浏览: 0

“开启新时代中国经济新征程——第七届中国财经峰会“于2018年7月19-20日,在北京举行。联合通商科技(天津)有限公司作为国内供应链预测和计划服务领域的领导厂商,喜获“2018(行业)影响力品牌”。联合通商科技DP事业群高级总监许涵云先生接受了峰会记者的采访,透露了联合通商科技的获奖理由,以及在供

HDU - 5532 A - Almost Sorted Array

2020-07-17 16:38 | 评论:0 次 | 浏览: 0

题目戳我害,这个题目想到是最长上升子序列但是不会写,因为我唯一会的dp还被卡了,我太难了,果然学算法还是得多学点,不然凉凉啊,n^2的算法太难了。题解:用贪心加二分优化dp,结果时间复杂度是O(nlogn)优化详解强烈推荐#include<iostream>#include<stdio.h>#include<math.h>#include<string.h>#include<string>#include<vector&

2020牛客多校 3E.Two Matchings(dp)

2020-07-20 15:04 | 评论:0 次 | 浏览: 0

题意:解法:对a(i)从小到大排序一组肯定是(1,2),(2,3),(3,4)这种两两匹配的,这样最小,另外一组肯定大一点,分组只有4个一组或者6个一组两种情况,要么是{(1,4),(2,3)},要么是{(1,3),(2,5),(3,6)}。一开始我以为只有一次6个一组的,枚举了一下6个一组的位置,然后wa裂了,如果不确定有多少个6个一组的,就得用dp做了。code:#include<bits/stdc++.h>using namespace std;#define int

Codeforces Round #658 (Div. 2) D. Unmerge(dp,01背包)

2020-07-24 17:01 | 评论:0 次 | 浏览: 0

题目链接思路:将每个数和他之后的比他小的数都分为一组,对分好的组进行01背包,看能否将组的总和变为n。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;const double eps=1e-8;const int mod=1e9+7

2020牛客暑期多校训练营(第六场)H Harmony Pairs —— 记忆化搜索,有丶东西

2020-07-28 14:20 | 评论:0 次 | 浏览: 0

This way题意:定义S(x)=十进制下x所有位的和。问你有多少对A,B使得S(A)>S(B)&&A<=B题解:我一开始题目看错了,没注意到A和B的大小关系,所以一开始的数位DP就写错了,看对题目之后我往生成树那方面去想,想找子树大小什么的关系,但是最后找不出来…赛后看了别人的代码,真的太强了,或许这才是记忆化搜索吧…dp[i][j][k][l]表示到了第i个位置,当前数的和为j,k表示较大数是否到达上界,l表示较小数是否到达上界。后面这两维真的精髓,这样就可以

Hdu 6769 In Search of Gold —— 上下界优化,树形DP

2020-07-28 14:45 | 评论:0 次 | 浏览: 0

This way题意:现在有一颗大小为n的树,每条边都有两个权值:a,b现在让你最多选k个边的权值为a,其它边的权值为b,使得最终这棵树的直径最短。问你最短是多少。题解:最大值最小的问题考虑二分。dp[i][j]表示到第i个点,它的子树中用了j个a的最长长度最短是多少。然后枚举当前点的选了多少个a的同时枚举子树选了多少个a来进行转移。但是可以发现这个的时间复杂度是O(T∗N∗K2∗log2e13)O(T*N*K^2*log^{2e13})O(T∗N∗K2∗log2e13)的,那么很明显就超过了

[NOIP2007] 矩阵取数游戏——区间dp+高精

2020-08-10 12:41 | 评论:0 次 | 浏览: 0

[NOIP2007] 矩阵取数游戏题目链接思路:区间dp+高精发现每行答案分别独立,于是考虑分行做区间dp,最终把每行的答案相加。状态转移方程(对每一行,l为区间长度):f[i][j]=max⁡(f[i+1][j]+a[i+1]∗2m−l−1,f[i][j−1]+a[j−1]∗2m−l−1)f[i][j]=\max(f[i+1][j]+a[i+1]*2^{m-l-1},~f[i][j-1]+a[j-1]*2^{m-l-1})f[i][j]=max(f[i+1][j]+a[i+1]∗2

CodeForces - 1118F1 Tree Cutting (Easy Version) (树形dp/dfs+思维)

2020-08-10 12:55 | 评论:0 次 | 浏览: 0

Tree Cutting (Easy Version) 题目大意:有一颗树,每个节点有三种颜色,红蓝或者无色,问你怎样分割可以把树分成两半并且红色还有蓝色分别位于两边。解题思路:首先我们先记录一下红蓝节点分别有多少个,然后跑一遍dfs记录每个节点的子树上的红蓝节点的个数,最后遍历一下,如果红色节点=x蓝色 =0,或者红色=0蓝色=y,ans++即可Code:#include <iostream>#include <cstdio>#include<cmath>

Wireless Password HDU - 2825(AC自动机+状压dp 卡常)

2020-08-01 00:00 | 评论:0 次 | 浏览: 0

题目链接题意:给你M个word串,问你能构造多少种长度为N的字符串,满足至少包含K个不同的word串。 1<=N<=25 1<=M<=10 1<=K<=10思路:首先想到,建AC自动机,并且给每个插入的word串一个状态,1<<x x为插入的序号,即:isstr[1<<x] 就是第x个word串对应的二进制状态。(1 10 100 1000… )建好AC自动机后就是一个状态压缩dp的题,dp[i][j][k]表示目前走了i步,到

HDU 1400 插头DP,状压DP

2020-08-01 00:00 | 评论:0 次 | 浏览: 0

HDU 1400状态压缩DP逐行进行。详细看注释。跑出4s。Q_Q#include<bits/stdc++.h>#define debug(_x) cout<<#_x<<":"<<_x<<endl#define endl '\n'using namespace std;using ll = long long;ll f[2][1<<12],*f1,*f0;int n,m;bool judge(int s,int t)

移动技术网