随笔分类 -  动态规划 - 线性dp

摘要:https://codeforces.com/contest/1330/problem/D 题目大意:给出一个限制 d 与模数 m ,求出可以构造出的满足条件的数组 a 的个数,需要满足以下条件: 1.数组 a 的长度大于等于 1 2.数组 a 严格递增 3.任意的ai <=d且>=1 4.对于数组 阅读全文
posted @ 2020-04-05 00:16 AaronChang 阅读(378) 评论(0) 推荐(1)
摘要:https://codeforces.com/contest/1303/problem/E 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn = 405; 4 int dp[maxn][maxn]; 5 bool ch 阅读全文
posted @ 2020-02-24 17:30 AaronChang 阅读(157) 评论(0) 推荐(0)
摘要:https://codeforces.com/contest/1304/problem/F2 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn = 4e4+5; 4 int dp[55][maxn]; 5 int va 阅读全文
posted @ 2020-02-24 17:26 AaronChang 阅读(164) 评论(0) 推荐(0)
摘要:https://ac.nowcoder.com/acm/contest/3007/C 将木板按照Xi从小到大排序,将这时的Yi数列记为Zi数列,则问题变成将Zi划分为尽可能少的若干组上升子序列。 根据Dilworth定理,最小组数等于Zi的最长下降子序列长度。 要求最长下降子序列的长度,我们有一种经 阅读全文
posted @ 2020-02-17 20:05 AaronChang 阅读(158) 评论(0) 推荐(0)
摘要:链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 题意:给定n种类型的长方体,每个类型长方体无数个,要求长方体叠放在一起,且上面的长方体接触面积要小于下面,长宽也小于下面的长方体,求最高能叠放多高? 思路:首先每个长方体有三种情况可以作为底部,那么一 阅读全文
posted @ 2020-01-21 17:45 AaronChang 阅读(136) 评论(0) 推荐(0)
摘要:链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024 1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 #include<cmath> 5 #include<cstring> 阅读全文
posted @ 2020-01-21 15:17 AaronChang 阅读(122) 评论(0) 推荐(0)
摘要:链接:https://codeforces.com/contest/1288/problem/C C. Two Arrays 题意:给定一个数n和一个数m,让构建两个数组a和b满足条件,1.数组中所有元素的取值在1~n之间,a和b数组长度是m。2. a数组是单调不递减的,b数组是单调不递增 3. 任 阅读全文
posted @ 2020-01-19 01:20 AaronChang 阅读(546) 评论(0) 推荐(0)
摘要:链接 https://codeforces.com/contest/1282/problem/B2 题意: 商店买东西,商店有n个物品,每个物品有自己的价格,商店有个优惠活动,当你买恰好k个东西时可以只为其中最贵的那个付款,求有限的钱中买到的最多的物品数量,你可以多次使用优惠。 思路:把所有商品的价 阅读全文
posted @ 2020-01-01 21:32 AaronChang 阅读(488) 评论(0) 推荐(0)
摘要:题目连接:http://codeforces.com/contest/1263/problem/F 题意:有n个设备,上和下分别连接着一颗树,上下两棵树每棵树的叶子节点连接一个设备,两棵树的根节点都是1,1是源点可以发电供给叶结点连接的设备,现在问最多删除多少条边可以保证从根结点1发电后仍然可以使得 阅读全文
posted @ 2019-12-09 23:54 AaronChang 阅读(119) 评论(0) 推荐(0)
摘要:题目链接:https://codeforces.com/contest/1257/problem/E 题意:给三个序列k1,k2,k3,每个序列有一堆数,k1是前缀,k3是后缀,k2是中间,现可以从任意序列中选择一个数加入到另外的序列中,问最小操作次数还原成1-n的原序列(序列内部操作是任意的,不计 阅读全文
posted @ 2019-11-21 17:33 AaronChang 阅读(168) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/1221/problem/D 题目要求ai ! = ai-1,草纸上推理一下可以发现每一个栅栏可以升高的高度无非就是 +0,+1,+2 用dp【i】【j】表示到第 i 个栅栏升高 j 高度时,所需要的最小花费。 状态转移方程:dp 阅读全文
posted @ 2019-09-21 13:03 AaronChang 阅读(91) 评论(0) 推荐(0)
摘要:链接:https://leetcode-cn.com/problems/edit-distance/submissions/ 设dp[i][j]表示串s1前i个字符变换成串s2前j个字符所需要的最小操作次数。 首先要初始化dp数组的第一行和第一列 。 dp[ i ][ j ]分为四种状态: 1. s 阅读全文
posted @ 2019-08-28 16:07 AaronChang 阅读(104) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/1207/C 题目大意是给一条道路修管道,相隔一个单位的管道有两个柱子支撑,管道柱子高度可以是1可以是2,道路中可能存在十字路口,如果有十字路口,管道高度必须升至2,其中输入数据为01字符串和n,a,b ,0 阅读全文
posted @ 2019-08-25 16:32 AaronChang 阅读(152) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/1204/problem/D2 题目是给定一个01字符串,让你尽可能多地改变1变为0,但是要保证新的字符串,对任意的L,R使得Sl,Sl+1,Sl+2...Sr的最长不递减子序列长度保持不变,求新的串s。 dp思路,从前往后遍历串 阅读全文
posted @ 2019-08-22 19:00 AaronChang 阅读(111) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/1204/C 给定一组序列,P1,P2,P3...Pm,这是一组合法路径的序列,即任意的Pi和Pi+1之间有边相连,求一组新的序列V,V为原序列P的子集(通过删除P中某些元素获得), 且顺序遍历V序列中的各个 阅读全文
posted @ 2019-08-22 02:12 AaronChang 阅读(116) 评论(0) 推荐(0)