
dp
陆小萌
这个作者很懒,什么都没留下…
展开
-
ABC178 D - Redistribution
ABC178 D - Redistribution求将S(1≤N≤2000)S(1 \le N \le 2000)S(1≤N≤2000)拆分为一个序列,且序列中所有值均≥3\ge 3≥3的方案数。( mod 1e9+7)(~mod~1e9+7)( mod 1e9+7)Solution计数DP?状态:设f[i]f[i]f[i]表示第iii个数的方案数。转移:f[i]=∑j=0i−3f[j]f[i]=\sum _{j=0} ^{i-3} f[j]f[i]=∑j=原创 2020-09-15 12:42:48 · 253 阅读 · 0 评论 -
HDU6787
HDU6787题意可转换为,nnn个格子排成一列,恰好填入mmm个传送器的方案数量。要求:放置的传送器最大的连续数量≤11\leq 11≤11个111号和nnn号格子不能放传送器传送器传送到的位置j<j<j<传送器所在的位置iiiSolution首先要发现这是一个DP。DP的条件:无后效性最优子结构这道题满足DP的基本条件。(mod1e9+7 大概率计数dp )(然后我是猜了一下复杂度来确定大概是个三维的DP)DP解题步骤:确定状态:dp[i][j]原创 2020-09-12 00:24:15 · 184 阅读 · 0 评论 -
CF1341 D. Nastya and Scoreboard
Question一个n个数码位的分数板,每一个数码位都是一个七段数码管,现在给出每个数码位的显示情况,问再点亮k段数码管的话能显示的最大的数是多少,如果不能构成一串数字,就输出-1.Solution贪心+DFS+剪枝我们要构造的数最大,那就是高位尽可能大。直接爆搜TLE,考虑优化加入数组v[i][j]v[i][j]v[i][j]表示到第iii个点,还剩jjj次操作的时候是否能找到可行解,...原创 2020-04-26 14:12:28 · 257 阅读 · 0 评论 -
ABC163 E - Active Infants
ABC163 E - Active InfantsQuestion将一个数组重新排序,每个元素的收益为 a[i]×lenmovea[i]\times len_{move}a[i]×lenmove,求排序后的最大收益。Solution容易想到一个大的值无非放到左边和右边,哪边增加的多放到哪边,但是可能一样Code#include<bits/stdc++.h>using n...原创 2020-04-23 17:47:44 · 375 阅读 · 0 评论 -
POJ3585
POJ3585题意给定一棵nnn个节点的无向带权树,要你找出一个节点作为根,向叶子节点流水,使流水量最大。思路换根DP这种题往往都是先从某个点出发DFS1DFS_1DFS1,求出以这个节点ttt为根的答案,并记录与答案相关的数据到数组中。然后DFS2DFS_2DFS2从ttt节点出发,记录换根的答案,其中所有根的最大值就为所求值。难点在于该如何去找寻其中的递推关系式。ddd数组...原创 2020-04-17 01:30:15 · 350 阅读 · 0 评论 -
ABC162 F - Select Half
F - Select Half题意nnn个数里选⌊n2⌋\lfloor\frac{n}{2}\rfloor⌊2n⌋个数,求最大值为多少?思路我想不到下面的DP是因为我菜,我刷的DP题太少了,那就多刷一点就能想到了。DP令f[i]f[i]f[i]表示iii个数里选⌊i2⌋\lfloor\frac{i}{2}\rfloor⌊2i⌋里最大的数为多少。预处理sum[i]sum[i]sum...原创 2020-04-13 15:19:51 · 536 阅读 · 0 评论 -
P1020 导弹拦截
题目链接:https://www.luogu.com.cn/problem/P1020参考:http://www.cnblogs.com/GodA/p/5180560.htmlhttps://www.luogu.com.cn/blog/w1049/solution-p1020题解:第一行:为从1到n的最长非升子序列的个数。第二行:Dilworth定理:偏序集能划分成的最少的全序集...原创 2020-01-31 17:47:18 · 197 阅读 · 0 评论 -
NC13611
NC13611题意一棵有n个结点的树,我们有k种不同颜色的染料给树染色。当且仅当对于所有相同颜色的点对(x,y),x到y的路径上的所有点的颜色都要与x和y相同时,染色方案是合法的。请统计方案数。思路把题目转化为给你一颗n结点的树,将其分成i (1≤i≤k)i ~ (1\leq i \leq k)i (1≤i≤k)个连通块涂上不同的颜色,此时发现染色方案的数量与这棵树的形...原创 2020-04-10 00:12:31 · 246 阅读 · 0 评论 -
CF1331F
CF1331F Elementary!题意给你字符串s(1≤s≤10)s(1\leq s \leq 10)s(1≤s≤10),判断是否为元素周期表里的大写元素。思路由Elementary结合题目中样例HOMELES DOCTOR WASTON先把题意得出。然后再打一张化学元素的表。(dbqwsdd)这篇博客主要是让自己知道这样的匹配有两种做法,一个是DP,一个是DFS。初始化f[...原创 2020-04-02 16:31:46 · 377 阅读 · 0 评论 -
NC22598
NC22598题意(题目数据范围M=N-1可知这是一棵树,一个边数为结点数-1的连通图一定为一棵树)给你一颗N个结点的树和对应边的权值,求以S结点为根节点去掉一些边使得不与叶子结点直接相连的最小代价为多少?思路树形DP树形DP树形DPf[i]=∑min(f[son],costi→son)f[i]=\sum min(f[son],cost_{i→son})f[i]=∑min(f[son]...原创 2020-04-02 14:09:27 · 164 阅读 · 0 评论 -
牛客练习赛60 C 操作集锦
C 操作集锦题意由小写英文字母组成的长度为n的一个字符串,求不相同的长度为k的子串的数量对1e9+7取模。1≤n≤1e30≤k≤n1≤n≤1e3 \quad 0 \leq k \leq n1≤n≤1e30≤k≤n思路DPDPDP 正难则反正难则反,我们求所有不同的子串,不如把所有子串的数量求出来再减掉所以相同的子串数量。若不去重求所有长度为k的子串的数量,则可由f[i][j]=f[i...原创 2020-03-28 02:56:04 · 207 阅读 · 0 评论 -
NC15553及其变形
NC15553题意给你n个数,选2个长度为k的连续区间,求他们加起来的和最大为多少?思路前缀和预处理,然后利用前缀和计算k个数的最大数为多少,然后预处理从左边遍历到i为止最大的区间长度为k的和为多少,从右边遍历到i为止最大的区间长度为k的和为多少。扫一遍要选的第一个区间,扫的过程如果左右还有可以选的区间,则取他们的最大值和选的区间相加,记录最大值即可。#include<bits/...原创 2020-03-27 01:26:54 · 241 阅读 · 0 评论 -
NC13230
NC13230题意输入两个字符串A和B,合并成一个串C,属于A和B的字符在C中顺序保持不变。如"abc"和"xyz"可以被组合成"axbycz"或"abxcyz"等。我们定义字符串的价值为其最长回文子串的长度(回文串表示从正反两边看完全一致的字符串,如"aba"和"xyyx")。需要求出所有可能的C中价值最大的字符串,输出这个最大价值即可。T(T ≤ 50)A,B(|A|,|B| ≤ ...原创 2020-03-26 16:44:43 · 516 阅读 · 0 评论 -
ABC159F
F - Knapsack for All Segments题意给你一个长度为n的数组,求任意[ L,R ]区间和为S的总数。思路01背包DP变形01背包DP变形01背包DP变形求一个范围内的值域为某个数。首先我们想到01背包求能恰好能装满背包时和这个的区别在于,这个求和还要包括[2,i]、[3,i]、[4,i]、…、[i,i][2,i]、[3,i]、[4,i]、…、[i,i][2,i]...原创 2020-03-23 22:19:18 · 260 阅读 · 0 评论 -
AtCoder Grand Contest 043
A - Range Flip Find Route题意从(1,1)到(n,m)(只能走’.’)最小翻转次数。翻转:可以翻转任意矩形块思路棋盘dp 答案为连续的’#个数#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int,int>P;const d...原创 2020-03-22 18:57:15 · 342 阅读 · 0 评论 -
Codeforces Round #627 (Div. 3)
Vova有一个奇怪的睡眠习惯,Vova会睡上刚好N次。第i次他会在他上一次醒来的a[i]个小时后睡觉。你可以假设Vova是在开头醒来的(初始时间是第0小时)。每次Vova刚好睡一天(换言之,h小时,这个h小时不是平时的24小时,题中会给出)。当他的第i次睡眠在l点和r点之间进行时被称之为好睡眠。它可以控制自己在第i次睡眠预定的a[i]小时后睡觉,也可以是在a[i]-1小时后。求这n次睡眠他的好睡眠最多可以有多少次?原创 2020-03-14 03:12:22 · 285 阅读 · 0 评论 -
1312E Array Shrinking
1312E Array Shrinking题意:给你 n(1≤n≤500)n(1\leq n\leq 500)n(1≤n≤500) 长的数组,你可以任意次操作使得满足 a[n]=a[n+1]a[n]=a[n+1]a[n]=a[n+1] 的两个数被替换为 a[n]+1a[n]+1a[n]+1 ,求数组最小长为多少。思路:区间 dpdpdp观察 nnn 的范围,可知这道题可以采用 O(n3)...原创 2020-03-12 20:51:53 · 240 阅读 · 0 评论 -
2020牛客寒假算法基础集训营5 F-碎碎念
2020牛客寒假算法基础集训营5 F-碎碎念思路:数位dp + 前缀和#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <algorithm>#include <...原创 2020-03-01 20:54:17 · 239 阅读 · 0 评论 -
牛客练习赛58 D-迷宫
牛客练习赛58 D-迷宫思路:棋盘dp#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <algorithm>#include <queue>#incl...原创 2020-03-01 01:47:38 · 283 阅读 · 0 评论 -
Codeforces Round #623 (Div. 2, based on VK Cup 2019-2020 - Elimination Round, Engine)
B. Homecoming题意:A->B 花费a元B->A 花费b元有p元求要走到点i,从i上车能在p内到终点。思路:1.二分答案2.倒着模拟比赛的时候我两种都想到了,问题在于代码实现能力过弱,有必要加强模拟的训练了。二分答案做法:#include<bits/stdc++.h>using namespace std;typedef long lo...原创 2020-02-24 18:08:58 · 236 阅读 · 0 评论