随笔分类 -  动态规划

Codeforces Round #658 (Div. 2) - D. Unmerge(dp)
摘要:题目链接:Unmerge 题意:定义两个数组的合并merge(a,b),每次将数组a第一个元素和数组b第一个元素中最小的那个放到数组c中,同时删除那个最小的元素,现在给你一个长度为2*n的排列,问是否能由两个长度为n的数组合并而成 思路:对于长度为2*n的排列,显然是通过一段一段合并得到的,例如(3 阅读全文

posted @ 2020-07-22 09:50 啊啊鄂 阅读(431) 评论(1) 推荐(2)

2020牛客暑期多校训练营(第三场)E - Two Matchings(dp)
摘要:题目链接:Two Matchings 题意:给你一个序列a,你要找到两种完全不同的整个序列的两两匹配,使得所有两两匹配差的绝对值的和最小,输出这个和 思路:对序列a排序后,显然最小的匹配相邻两两匹配,即$(a_2-a_1)+(a_4-a_3)+\dots+(a_n - a_{n-1})$,关键在如何 阅读全文

posted @ 2020-07-19 22:58 啊啊鄂 阅读(152) 评论(0) 推荐(0)

Educational Codeforces Round 76 (Rated for Div. 2) - E. The Contest(dp)
摘要:题意:有三个人去写编号从$1$到$n$的$n$个题目,现在这三个人分别有$k_1$,$k_2$,$k_3$个题目($k_1+k_2+k_3=n$),每次操作你可以将一个人的某一个题目给另一个人,问你最少经过多少次操作使得第一个人写这$n$个题目的前缀,第三个人写这$n$个题目的后缀,第二个人写其他部 阅读全文

posted @ 2019-11-21 14:04 啊啊鄂 阅读(110) 评论(0) 推荐(0)

动态规划(线性,区间,树形,数据结构优化,四边形不等式)
摘要:A - To The Max,hdu1081 求最大子矩阵和,把二维转换到一维,把每一行的某些列的和看作一个元素,这样就成了一维下的最大子段和,预处理每行的前缀和,暴力枚举每行的的列数情况即可 #include <iostream> #include <algorithm> #include <cs 阅读全文

posted @ 2019-08-01 21:44 啊啊鄂 阅读(348) 评论(0) 推荐(0)

导航