![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
RSHS
为什么总做一些知道是错的
展开
-
OI12A dp
牛客OI12 A题意:求<=n<=n<=n的数字里,有几个数满足:二进制反码(s[i]=s[i] xor 1s[i]=s[i]\ xor\ 1s[i]=s[i] xor 1)倒过来和原二进制相同。思路:发现二进制串s,s[i]=s[len−i] xor 1s[i]=s[len-i]\ xor\ 1s[i]=s[l...原创 2019-09-27 22:18:59 · 147 阅读 · 0 评论 -
19 hdu多校 Blank //dp
19 hdu多校 Blank //dphttp://acm.hdu.edu.cn/showproblem.php?pid=6578题意:每次从[1,4]挑选一个数,构造一个长度为n的数组,满足m个条件,每个条件包括li,ri,xi,表示[li,ri]的区间里有xi个不相同的数,问可以构造多少种不一样的数组满足题意。思路:我是全hdu最蠢的把....一开始在写区间dp+ha...原创 2019-07-26 01:07:57 · 153 阅读 · 0 评论 -
CF E51 F. The Shortest Statement//lca(倍增)+dijkstra+dsu ※
https://codeforc.es/contest/1051/problem/F题意:给一个联通simply图,n(1e5)个点,m条边,m-n<=20,给q(1e5)个询问,每个询问给ui和vi,求ui和vi之间的最短路。思路:发现边少,那么我们在它的树形图上思考(并查集处理出来任意树形图,不考虑多的m-n+1条边),那么任意两点距离就是dis[u]+dis[v]-2*...原创 2019-07-20 20:47:29 · 148 阅读 · 0 评论 -
hdu 6558 The Moon (18ccpc吉林D)//记忆化概率dp
http://acm.hdu.edu.cn/showproblem.php?pid=6558题意:拿到beta pack的期望游戏次数思路:概率dp,定义dp[i][j],p为i,q为j的时候的期望次数。dp[i][j]=赢的概率 *(拿到包的概率*1+拿不到包的概率*dp[i][j+2])+输的概率 * (dp[i][j+1.5])注意1.5的时候需要hash处理。注...原创 2019-07-17 15:45:20 · 424 阅读 · 0 评论 -
19hdu多校 String //dp+后缀+模拟
http://acm.hdu.edu.cn/showproblem.php?pid=6586题意:给一个字符串s,求一个子串,满足限制条件:字母i出现次数在区间[li,ri]中,要求字典序最小。思路:维护pos,表示从左往右扫描s串下标到了pos。维护suf[i][j],第i位或第i位之后有几个字母(char)j+'a'维护nx[i][j],第i位或第i位之后的第一个字母(c...原创 2019-07-23 16:07:50 · 141 阅读 · 0 评论 -
CF #563 Div. 2 E. Ehab and the Expected GCD Problem //背包+滚动数组+数学
题意:定义f(p)是一个数列p不一样的前缀gcd的个数,给一个数n,求n的全排列中最大的f(p)的个数。思路:从最大的数开始,每次少一个质因子。可以发现这个数只能是2组成或者一个3其他都是2组成。大概就是从第一位开始向后递推每次少一个2或者一个3或者一个因子都不少。且3种可以直接计算出相应的可能种数且互斥。dp过程注意细节啊。比赛怕写蹦,还是分类清楚,不要融合精简.........原创 2019-07-08 21:27:50 · 182 阅读 · 0 评论 -
CF E66 DIV2 E. Minimal Segment Cover //倍增
CF 66 EDIV2 E. Minimal Segment Cover //倍增题意:给n条线段,给q个询问,每次询问给一个区间,求覆盖区间至少需要几条线段。思路:倍增,定义dp[i][j],j条线段,从<=i的位置出发,能到的最右的下标。其中dp[i][0]=max(dp[i-1][0],从i出发的线段能到的最大位置)。询问的时候,先找到<r最远可以到的位置,然后再...原创 2019-06-06 17:48:31 · 137 阅读 · 0 评论 -
蓝桥杯第十届决赛F
题意:给两个串S和T,要使得S包含T(subsequence),最少修改S几次。(lenS>lenT)相同时贪心的不改即可,不相同时,选择改或者不改,改即dp[i][j]=dp[i-1][j-1]+1,不改即dp[i][j]=dp[i-1][j],注意边界:j=0,以及j>i.#include<bits/stdc++.h>using namespace st...原创 2019-05-27 09:16:49 · 308 阅读 · 0 评论 -
牛客 简单瞎搞题 //bitset 01dp
牛客 简单瞎搞题 //bitsert 01dp题目描述一共有 n个数,第 i 个数是 xixi可以取 [li , ri] 中任意的一个值。设 S=∑xi2S=∑xi2,求 S 种类数。输入描述:第一行一个数 n。然后 n 行,每行两个数表示 li,ri。输出描述:输出一行一个数表示答案。如果是dp,定义dp[i][j] 第n行,s为j是否有这个状态...原创 2019-05-22 16:29:02 · 242 阅读 · 0 评论 -
hdu 5890 Eighty seven//bitset优化dp 滚动数组
hdu 5890 Eighty seven//bitset优化dp题意:给一个数组,和q次询问,每次询问删除数组三个数(询问结束后补上),问能不能挑出十个数和为87首先这题的坑是数据存在N小但是Q大的情况,打表比直接求快= = 卡直接求的做法....(duliu定义dp[i][j][k]:前i个数,选了j个,和为k是否有这个状态。dp[i][j][k]=dp[i-1][j][k]+...原创 2019-05-22 15:27:01 · 154 阅读 · 0 评论 -
AtCoder C - Median Sum //bitset 01背包优化
AtCoder C - Median Sum //bitset 01背包优化C - Median SumTime limit: 2sec /Memory limit: 512MBScore :700pointsProblem StatementYou are givenNintegersA1,A2, ...,AN.Consider the sums ...原创 2019-05-21 21:45:55 · 279 阅读 · 0 评论 -
CF div2 D. Neko and Aki's Prank //dp+greedy
CF div2 D. Neko and Aki's Prank //dp+greedy题意: 给你一颗字典树,包括所有的括号组合(左括号多余或等于右括号),求最多的连边数(任意两条边没有公共定点)。先知道什么是字典树(trie),很直观的一个东西这是一颗字典树,能够表示abc,abd,acb这三个单词。因为左右括号可以匹配,所以可以记录很多相同的状态,所以维护dp[高度][...原创 2019-04-30 13:02:29 · 210 阅读 · 0 评论 -
Xuzhou Summer Camp 2 DP
目录A - Brackets SequenceB - DollarsC - Longest MatchD - Charm BraceletE - Dollar DayzF - Piggy-BankG - Space ElevatorH - CoinsI - The Fewest CoinsJ - Tug of WarK - BalanceL - Di...原创 2019-08-04 14:12:43 · 254 阅读 · 0 评论 -
CF #540 Div. 3 F2. Tree Cutting (Hard Version) //暴力lca染色缩点+树形dp
https://codeforc.es/contest/1118/problem/F2题意:n个顶点的树,有k种颜色染在顶点上(顶点也可以不染色),求切割成k块,使得每一块都只有一种颜色的方案数。思路:对于同一颜色,暴力找lca,并对路径上的顶点染色。如果染色冲突,方案数为0。将染成一种颜色的联通块缩成一个点。然后问题转换成,染色方法数。dp[i][0]i还没染色的方案数...原创 2019-07-26 19:14:48 · 200 阅读 · 0 评论 -
CF #576 Div. 2 F. Rectangle Painting 1 // 二维区域dp
https://codeforc.es/contest/1199/problem/F题意:思路:定义dp[x1][y1][x2][y2],为处理完(x1,y1):(x2,y2)这一片区域的最小代价。可以不切开,或者横着切开,或者纵着切开。记忆化搜索,复杂度O(n^5)#include<bits/stdc++.h>using namespace std;#d...原创 2019-08-02 11:32:56 · 319 阅读 · 0 评论 -
19 icpc沈阳网络赛 Fish eating fruit //树形换根dp
这题最后一小时绝杀,一发过,爽啊Fish eating fruit题意给一个树,nnn个顶点,边上有权值,然后两两之间路径有n∗(n−1)/2n*(n-1)/2n∗(n−1)/2种,假如其中一条长度为sss,如果s mod 3==0s\ mod\ 3==0s mod 3==0,c1=c1+sc_1=c_1+sc1=c1+s,如果s mod...原创 2019-09-19 21:53:17 · 126 阅读 · 0 评论 -
19 icpc徐州网络赛 Random Access Iterator //树上概率dp
Random Access Iterator题意给一颗树,从111号树根出发,每次如上述伪代码行动,问走到最深的叶子节点的概率。思路定义pby[i]:ipby[i]:ipby[i]:i号节点走到最深的叶子概率pby[i]=1−(∑)pby[i]=1-(\sum_)pby[i]=1−()∑...原创 2019-09-19 15:57:49 · 136 阅读 · 0 评论 -
19 icpc徐州网络赛 M. Longest subsequence//序列自动机
M. Longest subsequence场上本来想准备绝杀一发这个的,结果才过500????(G也500,难写很多好fa?细节处理好就可以切题意给两个串SSS和TTT,找SSS的最长subsequence AAA,使得AAA字典序比TTT大。思路暴力枚举切割点(枚举从哪个位置开始使得AAA的前缀和TTT的前缀不一样然后预处理一个ne[i][j]:i位置开始下一个(char)(′a...原创 2019-09-18 16:19:56 · 129 阅读 · 0 评论 -
CF #585 Div.2 E. Marbles //状压dp
E. Marbles题意给数组aaa(值域为[1,20][1,20][1,20]),每次可以交换相邻两个元素,问最少需要交换几次,使得相同的数字都是相邻的。思路值域较小,考虑状压,定义dp[i]dp[i]dp[i],当前前缀已经排好的数字对应的数位对应为111,所对应的二进制的最小花费,如 111122343411112234341111223434,111和222已经排好了 333和44...原创 2019-09-18 11:16:52 · 180 阅读 · 0 评论 -
CF#584 Div.1+2 E2. Rotate Columns (hard version) //状压dp+子集的子集
题目题意:给一矩阵,对于每一列,可以循环的滚动任意次,定义rir_iri为第iii行的最大值,求∑ri\sum r_i∑ri的最大值。思路:定义dp[i][j]dp[i][j]dp[i][j],遍历到第iii列,二进制状态为jjj的最大值。像E1这样暴力肯定不行,这里有两个优化。发现每次转移当前二进制不能和前一列的二进制有重合的1,那么如果当前二进制状态是jjj,可以遍历jjj的...原创 2019-09-16 14:33:54 · 208 阅读 · 0 评论 -
概率dp
spoj favorite dice题意:一个骰子,n面,求每一面都被扔到至少一次的期望扔的次数。dp[i]dp[i]dp[i]:已经扔到i面的期望次数dp[i]=dp[i−1]∗n−i+1n+dp[i]∗in+1dp[i]=dp[i-1]*\frac{n-i+1}{n}+dp[i]*\frac{i}{n}+1dp[i]=dp[i−1]∗nn−i+1+dp[i]∗ni+1移向得:dp...原创 2019-09-11 22:32:47 · 178 阅读 · 0 评论 -
Good Bye 2016 E. New Year and Old Subsequence//线段树+区间dp
题意:给字符串,q个询问[l,r],每次询问至少删除多少个字符使得[l,r]只含子串“2017”不含“2016” ,不要求连续。思路:每一个线段树节点维护dp[i][j],表示经过线段前已经有"2017"子串的i位,经过线段后有“2017”的j位,要删除的最少字符个数。然后区间dp转移。注意细节。/* Author : Rshs * Data : 2019-09-10-...原创 2019-09-10 16:14:57 · 140 阅读 · 0 评论 -
19 南京icpc网络赛 Robots //有向无环图上概率dp
题意:给一个有向无环图,且0无入边,1无出边,有一个机器人,从1号点走到n点,每次有等概率原地不动或者向任意一条出边走,每次走的花费是已经过了的天数。求走到n时的期望花费。思路:先求期望时间,再求期望花费。定义t[i]为i到n所需要的时间,定义dp[i]为i到n所需要的花费,j为i的出边的终点。逆向拓扑。这样做似乎是合理的....因为每次t和dp都是平均值然后相...原创 2019-09-03 17:07:29 · 170 阅读 · 0 评论 -
19 hdu多校 Acesrc and Travel // 树形dp+换根
http://acm.hdu.edu.cn/showproblem.php?pid=6662题意:A和B博弈,给一个树,对于一个节点,其中一个人选了之后,A或者贡献,B获得贡献,A先选一个点,之后BA轮流选一个点(和前一个点相邻),直到无路可走为止,每个人都希望自己的贡献减去别人的贡献尽量大,求A减去B的贡献最多是多少。思路:先选一个点,然后把整个树拎起来,在这个状态下考虑,A如果...原创 2019-08-30 17:07:12 · 124 阅读 · 0 评论 -
19 hdu多校 Kejin Player // 概率dp+公式推导
http://acm.hdu.edu.cn/showproblem.php?pid=6656题意:有一个闯关,从第i关到第i+1关,需要花费a[i]钱做一次尝试,成功的概率为p[i],成功就到i+1关,否则就退回到x[i]关。给q个询问,每次给L和R,求关L到关R的期望花费的钱。思路:肯定是一关关依次走,假设dp[i]为从第一关到第i关需要花费的期望,那么满足(L到R的期望)=dp[R...原创 2019-08-28 19:26:47 · 175 阅读 · 0 评论 -
19 hdu多校 Distribution of books //线段树+dp+二分
http://acm.hdu.edu.cn/showproblem.php?pid=6606题意:n本书,每本书有一个愉悦值ai,可以删去[x,n]的书,将剩下的书连续的分成k份,给k个人,求最小的愉悦最大值。思路:二分最小的愉悦值,dp的话,定义dp[i]为i结束的可以最多分成的份数,转移显然是n^2的复杂度。先离散化前缀和,再用线段树维护以每一个离散后的值结束的最大分成的份数。...原创 2019-08-16 14:51:59 · 111 阅读 · 0 评论 -
CF D. Beautiful Array
题意:给一个数组,有一次可以让一段连续区间乘以x的机会,求最大字段和。dp[i][0]:以a[i]结尾没有乘过x的最大值dp[i][1]:以a[i]结尾已经乘过x的最大值dp[i][2]:以a[i]结尾正在乘x的最大值转移直接看代码。#include<bits/stdc++.h>using namespace std;#define LL long ...原创 2019-04-24 22:06:48 · 255 阅读 · 0 评论 -
poj 3728 The merchant// lca(倍增实现) + dp || tarjan+并查集路径上dp
poj 3728 The merchant// lca(倍增实现) + dpTime Limit: 3000MS Memory Limit: 65536K Total Submissions: 6437 Accepted: 2251 DescriptionThere are N cities in a country, and there is o...原创 2019-04-20 14:28:16 · 182 阅读 · 0 评论 -
第十五届华中科技大学邀请赛 I Matrix Again//二维RMQ极值(模板)
链接:https://ac.nowcoder.com/acm/contest/700/I来源:牛客网Matrix Again时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述KK is the engineer responsible for sensor sensing...原创 2019-04-22 20:43:29 · 161 阅读 · 0 评论 -
Codeforces Round #538 (Div. 2) D. Flood Fill /*区间dp*/
先选一个点,再向左右延展 !英语差理解错题目真致命。 可以发现,对于一个已经满足题意的区间[l,r],这个区间里一定全是c[l]或c[r],那么可以可以定义dp[l][r][含左or含右]枚举每一个区间,转移方程分两种:全部变成c[l],全部变成c[r],这钟情况又可以进一步由子区间分类讨论转移而来。 /* Date: 13/02/19 13:36*/#...原创 2019-02-13 14:15:13 · 149 阅读 · 0 评论 -
矩阵快速幂(模板+构造)
矩阵快速幂(模板+构造)#include<bits/stdc++.h>using namespace std;#define LL long long#define mod 1000000007/* ( x x x x x )^n ( x x x x x ) (x x x x x) * ( x x x x x ...原创 2019-02-27 22:56:30 · 259 阅读 · 0 评论 -
蓝桥 历届试题 填字母游戏 //博弈论,记忆化dfs
http://lx.lanqiao.cn/problem.page?gpid=T450蓝桥 历届试题 填字母游戏 //博弈论,记忆化dfs问题描述 小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: “我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了”。 K大师在纸上画了一行n个格子,要小明和他交替往其中填入字母。 并且: 1. 轮到...原创 2019-02-27 15:19:54 · 575 阅读 · 0 评论 -
牛客寒假算法基础集训营3 处女座和小姐姐(三)/*最最最简单的数位dp*/
链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 处女座和小姐姐(三)时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述经过了选号和漫长的等待,处女座终于拿到了给小姐姐定制的手环,小姐姐看到以后直呼666!处女座其实...原创 2019-01-31 11:24:14 · 139 阅读 · 0 评论 -
CF Codeforces Global Round 1 D. Jongmah /*dp*/
CF Codeforces Global Round 1 D. Jongmah /*三元对dp*/dp,有难度。。。发现,如果同样的数字很多,一定先取那些一样的配对,所以先计算出每个数有几个,所以可以减少dp的范围。因为3个[i,i+1,i+2]可以转换为[i,i,i],[i+1,i+1,i+1],[i+2,i+2,i+2]。dp的时候对于一个三元对[i,i+1,i+2]只...原创 2019-02-10 18:01:37 · 297 阅读 · 0 评论 -
牛客练习赛36 Rabbit的工作(2)
链接:https://ac.nowcoder.com/acm/contest/328/C来源:牛客网Rabbit的工作(2)时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述Rabbit通过了上次boss的考核,现在她又遇到了一个问题。Rabbit接到了K个任务,每个任务她可以自...原创 2019-01-23 17:42:43 · 274 阅读 · 0 评论 -
蓝桥 历届试题 格子刷油漆
历届试题 格子刷油漆 时间限制:1.0s 内存限制:256.0MB 问题描述 X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如下图所示),现需要把这些格子刷上保护漆。 你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但不能移动到较远的格子(因为油漆未干不能踩!) 比如:a d b c e f 就是合格的刷漆顺序。 ...原创 2019-02-04 00:00:26 · 201 阅读 · 0 评论 -
牛客寒假算法基础集训营2 处女座与复读机//dp
链接:https://ac.nowcoder.com/acm/contest/327/G来源:牛客网处女座与复读机时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述一天,处女座在牛客算法群里发了一句“我好强啊”,引起无数的复读,可是处女座发现复读之后变成了“处女座好强啊”。处...原创 2019-03-09 15:01:05 · 412 阅读 · 0 评论 -
POJ 2411 Mondriaan's Dream // 状压dp
POJ 2411 Mondriaan's Dream // 状压dphttp://poj.org/problem?id=2411突然觉得这题有丶意思,拿来写写看。(是个典型例题,用2*1砖头铺满矩形的方案数)将一列压缩成一个二进制,就是一个状态,总共2^w*h个状态,直接dp+dfs。时间复杂度O(2^w*h)。转移的时候,已知前一行满,将当前列填满,这样转移就行了。...原创 2019-03-04 22:02:47 · 195 阅读 · 0 评论 -
蓝桥 历届试题 地宫取宝
4维迷宫dphttp://lx.lanqiao.cn/problem.page?gpid=T120 历届试题 地宫取宝 时间限制:1.0s 内存限制:256.0MB 问题描述 X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右...原创 2019-02-26 19:02:12 · 102 阅读 · 0 评论 -
nyoj 1275-导弹发射 //lis
1275-导弹发射内存限制:64MB 时间限制:1000ms 特判: No 通过数:22 提交数:116 难度:4题目描述:Alpha 机构研发出一种新型智能导弹,它能够在雷达检测到的区域内,选择一条前进的路径, 击破路径上所有的目标物。 雷达位于(0,0)处,它能够检测到两条射线之间的区域(不妨设在第一象限)。 导弹一开始置放在(0,0)处,它可以在雷达能检测到的区...原创 2019-04-17 21:41:02 · 146 阅读 · 0 评论