dp
wangqianqianya
这个作者很懒,什么都没留下…
展开
-
leetcode:通配符匹配
theme:给定仅由a~z组成的串S,由a~z或 *或 ?组成的串 P ,其中 ?可代表任意单个字符,*可代表0或多个连续字符,问P能否匹配出S?solution:3种做法。贪心: 动态规划dp: 回溯dfs:动态规划dp#include <bits/stdc++.h>using namespace std;typedef long long ll;co...原创 2020-03-18 11:00:47 · 175 阅读 · 0 评论 -
Educational Codeforces Round 73 (Rated for Div. 2)
D. Make The Fence Great Againtheme:给定n个元素,每个元素有两个属性,高度ai与加高单位1的费用b[i],现要增加若干个元素的高度,使得任意相邻两元素的高度不同,每个元素可增高多次,问最少花费多少钱?1<=q<=3e5,1<=n<=3e5,sum(n)<=3e5,1<=ai<=bi<=1e9,答案<=1e1...原创 2019-10-29 20:29:00 · 116 阅读 · 0 评论 -
牛客练习赛53
A、超越学姐爱字符串theme:构造一个长度为n的串,只能由c,y构成,且不能有连续的c,问有多少种构造方法?1<=n<=1e5solution:手算几个就发现是斐波那契数了。这题还可以用dp做,dp[i][0]表示长度为i,最后一个为c的个数,dp[i][1]表示长度为i,最后一个为y的个数。所以dp[i][0]=dp[i-1][1],dp[i][1]=dp[i-1][0]+...原创 2019-10-13 08:58:23 · 139 阅读 · 0 评论 -
Codeforces Round #551 (Div. 2)
D. Serval and Rooted Treesolution:给定一棵树(无环),除叶子节点外,给定每个节点的一个操作为max或min,表示该节点的值等于其所有子节点的值的最大或最小值。现要你给树的k个叶子节点赋予1~k的值(每个数字用一次),是的根节点1的值最大。1<=n<=3e^5solution:DP思想,dfs实现DP。用dp[i]表示节点i的值是它所有子叶子节点...原创 2019-08-27 21:09:01 · 107 阅读 · 0 评论 -
Codeforces Round #538 (Div. 2)
C. Trailing Loves (or L'oeufs?)theme:求n! 转化为b进制后后缀0的个数。n<=1e18,b<=1e12solution:由十进制转化为b进制操作为依次将n%b的值作为后位,再将n/b,所以此题转化为求n!能分解成b的多少次幂。所以先将b分解质因数,再对每一个b的质因数求解n!能分解的次数,取最小值即为答案。n! 下 p 的幂 = [ n...原创 2019-08-27 13:56:32 · 102 阅读 · 0 评论 -
2019 Multi-University Training Contest 6
hdu6639:Farawaytheme:给定n与m,n代表方程个数,给定n个方程的xi,yi,ki,ti,求满足一下式子的xe,ye数目。1<=n<=10,1<=m<=1e9,0≤xi,yi≤m,2≤ki≤5,0≤ti<kisolution:首先取绝对值,对xi,yi分别排序后有10*10个区域,每个确定的区域可以去掉绝对值(xi-xe+yi-ye)。...原创 2019-08-09 11:05:27 · 143 阅读 · 0 评论 -
Codeforces Round #568 (Div. 2)
G1. Playlist for Polycarp (easy version)theme:n首歌,给定每首歌的时长t1与分类gi,问共有几种不同的选歌方式,使得每首歌最多被选1次,总的时长为T且相邻两首歌的类别不同。1≤n≤15,1≤T≤225,1<=gi<=3solution:像这种n很小的选择问题考虑状态压缩dp。用dp[s][i]表示状态为s,最后一首歌的类别为i时的选...原创 2019-07-28 19:22:42 · 112 阅读 · 0 评论 -
Codeforces Beta Round #9 (Div. 2 Only)
*C. Hexadecimal's Numberstheme:给定数字n,求[1,n]中只由字符0或1构成的数字个数。1<=n<=1e9solution:只由01组成的数为:110 11100 101 110 1111000 1001 1010 1011 1100 1101 1110 1111...可以看出下一行为上一行每个数*10或*10+1的结果。所以...原创 2019-08-06 23:17:50 · 118 阅读 · 0 评论 -
“华为杯”中国矿业大学程序设计学科竞赛
G、毕业生的纪念礼物theme:输入n表示纪念品数目,接下来n个数代表第i个数的类别,给每个人发3个不同类别的纪念品,问最多能给几个人发?1≤n≤100000,1≤r[i]≤1e9solution:首先由贪心,每次应该选择数量最多的三个类别,这样就可以保证没一状态下都是总种类最多状态。注意选出三个后要重排,所以我们用优先队列存,每次取出三个-1,若值不为0,则再存入优先队列。#inc...原创 2019-07-08 13:10:08 · 513 阅读 · 0 评论 -
概率&期望
概率DPf[i]=∑p[i→j]*f[j]+w[i→j]其中p[]表示转移的概率,w[]表示转移对答案的贡献。一般来说,初始状态确定时可用顺推,终止状态确定时可用逆推。如:涂格子1n个格子,每次随机涂一个,求涂满m个格子的期望次数。如概述所说,因为最终状态确定,使用逆推。设计状态f[i]表示涂了i 个格子,到涂满m 个格子还要涂的期望次数。初始状态是f[m]=0 。转移时...原创 2019-07-13 22:52:15 · 421 阅读 · 0 评论 -
状态压缩DP
用二进制值表示状态如5=101表示第1和第3处种植,第2处不种的状态,则可以用dp[5]来表示该状态的值。玉米田Corn Fieldstheme:给定一个n*m的玉米田,1<=n,m<=12。值为0表示不能在该块种草,为1表示可以。现在要在其上中若干草地,要求任意草地间不相邻(没有公共边),问不考虑草地个数的情况下,有多少种种植的方案?solution:用dp。又范围很小,所...原创 2019-07-12 17:06:38 · 82 阅读 · 0 评论 -
hdu2159:fate二维完全背包
theme:用忍耐度m,为升级需要经验值n,有k种怪兽,给出杀死每只怪兽需要的忍耐度和可以获得的经验值。还要求最多杀死s只怪兽,问若能升级最多还能剩下多少忍耐值,若不能升级输出-1,。solution:首先确定是背包问题。虽然规定了最多杀死s只怪兽,但是每种怪兽还是无数只,所以是完全背包。由于不一定杀死一只怪兽后经验值刚好就为n,比n多也是可以的,所以我们考虑将经验值当做要求的最值,将忍耐度当...原创 2019-06-04 19:13:48 · 121 阅读 · 0 评论 -
最长非降子序列dp与贪心+二分做法与树状数组
dp:o(n^2)设dp[i]为以i结尾的最长非降子序列,则dp[i]=max(dp[i],dp[j]+1),其中a[i]>=a[j]贪心+二分o(nlogn)用一个新的数组f记录选出的非降子序列,若a[i]>=f[top],则将a[i]插入f,更新top,否则由贪心策略,考虑用a[i]来替换f中第一个>=a[i]的数,使得f更具作为最长非降子序列的潜力。(注意这样得...原创 2019-06-05 23:11:01 · 252 阅读 · 0 评论 -
背包dp:0-1背包&&完全背包&&第k优值
背包问题如果要求最终正好填满背包,则不初始化dp[i][j]=dp[i-1][j],若结果还为inf表示不能恰好填满。 所以若不要求恰好装满则初始全为0,而要求恰好装满,则开始dp[i][0]=0,而其他状态都是非法的,所以初始为-inf0-1背包一个容量为V的背包,有N种物品(每种物品一个),每个物品对应一个重量和价值。求最大能装多少价值物品。状态转移方程:dp[i][j]=max(...原创 2019-05-26 22:33:07 · 240 阅读 · 0 评论 -
2019湖南多校第三场
K、sisth sencetheme:future与peter两人玩纸牌游戏,游戏规则为给两人发相同数目的牌,每轮每人拿出一张牌比大小,future的牌>Peter则future赢,否则peter赢。而future可以提前知道peter出牌顺序,问future应怎么安排出牌顺序能使赢的次数最大?若有多种出牌方案,则输出字典序最大的序列。G、what goes up must co...原创 2019-03-25 13:05:52 · 162 阅读 · 0 评论 -
算法:DP动态规划典例
HDU2059theme:龟兔赛跑,跑道长度为L,兔子速度为VR,乌龟骑一辆电动车,电动车速度为V1,充满电情况下,电动车能以V1速度骑行C米,没电时乌龟推车速度为V2,开始时为充满电状态,途中有n个充电站a[i](不在起终点),每次充电需要等t秒,乌龟可以选择充还是不充。问乌龟有没有可能赢兔子。solution:将起点与终点也看做充电站,令dp[i]表示从起点出发到第i个充电站所需的最...原创 2018-09-22 13:46:11 · 213 阅读 · 0 评论 -
牛客寒假算法基础集训营(全6次)
目录目录牛客寒假算法基础集训营4E、Applese 涂颜色牛客寒假算法基础集训营1C、小a与星际探索D、小a与黄金街道牛客寒假算法基础集训营5J、迷宫G、酷炫数字牛客寒假算法基础集训营6B、煤气灶D、美食G、区间或和E、海啸牛客寒假算法基础集训营3D、处女座的训练I、处女座的约会牛客寒假算法基础集训营2G、处女...原创 2019-01-26 19:02:32 · 1026 阅读 · 0 评论 -
LeetCode等字符串专题
读入一行 getline(cin,s,'\n') //s为string类型,第三个参数默认为\n无重复字符的最长子串theme:给定一个字符串,求无重复字符的最长子串长度,注意子串是连续的(子序列可以不连续)。solution:提供两种做法(本质是一样的)(1)dp:用dp[i]表示以第i个字符结尾的无重复字符的最长子串长度,则最终结果遍历找最大值即可。转移方程:当s[i...原创 2019-03-25 22:44:01 · 190 阅读 · 0 评论