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

摘要:"传送门" C Minimization 第一次可能有多种选择,我们枚举所有的选择,然后两边贪心取即可。 Code D Snuke Numbers 这个就是打表找规律...但规律也不是很好找,这个规律是变换的规律,可能一次加上$10^i$,也可以加上$10^{i+1}$,两个判断一下即可。 Code 阅读全文
posted @ 2019-09-26 21:37 heyuhhh 阅读(298) 评论(0) 推荐(0) 编辑
摘要:"传送门" C Candles 双指针维护一个区间搞一下就行。 Code cpp include using namespace std; typedef long long ll; const int N = 1e5 + 5; int a[N], b[N]; int n; int c[N]; in 阅读全文
posted @ 2019-09-22 22:28 heyuhhh 阅读(263) 评论(0) 推荐(0) 编辑
摘要:"传送门" A. 2048 Game 乱搞即可。 Code B. Knights 直接按奇偶分类其实就行,但我写了个$dfs$... Code C. Perfect Team 直接输出就行,但我写了个二分... Code D. Make The Fence Great Again 题意: 给出$n$ 阅读全文
posted @ 2019-09-20 20:11 heyuhhh 阅读(378) 评论(0) 推荐(1) 编辑
摘要:"传送门" B. Light bulbs 题意: 起初$n$个位置状态为$0$,$m$次操作,每次操作更换区间状态:$0$到$1$,$1$到$0$。 共有$T,T\leq 1000$组数据,$n\leq 10^6,m\leq 1000$。 最后输出状态为$1$的个数和。 思路: 一开始冲了一发维护差 阅读全文
posted @ 2019-09-18 21:22 heyuhhh 阅读(287) 评论(0) 推荐(0) 编辑
摘要:"传送门" A.There Are Two Types Of Burgers 签到。 B.Square Filling 签到 C.Gas Pipeline 每个位置只有“高、低”两种状态,所以直接根据条件来$dp$即可。 Code cpp include define MP make_pair de 阅读全文
posted @ 2019-08-31 22:28 heyuhhh 阅读(212) 评论(0) 推荐(0) 编辑
摘要:"传送门" 题意: 给出$p,q$,现在要你生成一个字符串$s$。 你可以进行两种操作:一种是花费$p$的代价随意在后面添加一个字符,另一种是花费$q$的代价可以随意赋值前面的一个子串。 现在问最小代价是多少。 思路: 考虑$dp$,那么就有转移方程:$dp[i]=min\{dp[i 1]+p,dp 阅读全文
posted @ 2019-08-31 14:20 heyuhhh 阅读(418) 评论(3) 推荐(1) 编辑
摘要:"传送门" A.度度熊与数字 签到。 Code cpp include using namespace std; typedef long long ll; const int N = 55; int T; int n, m; vector p[N]; char s[N], t[N]; int cn 阅读全文
posted @ 2019-08-22 10:34 heyuhhh 阅读(519) 评论(0) 推荐(0) 编辑
摘要:Codeforces Round 579 (Div. 3) "传送门" A. Circle of Students 这题我是直接把正序、逆序的两种放在数组里面直接判断。 Code cpp include using namespace std; typedef long long ll; const 阅读全文
posted @ 2019-08-15 11:01 heyuhhh 阅读(194) 评论(0) 推荐(0) 编辑
摘要:Comet OJ Contest 8 "传送门" A.杀手皇后 签到。 Code cpp include using namespace std; typedef long long ll; const int N = 1e5 + 5; int n; int w[N]; ll sumv, sum; 阅读全文
posted @ 2019-08-13 21:25 heyuhhh 阅读(210) 评论(0) 推荐(0) 编辑
摘要:2019牛客暑期多校训练营(第八场) "传送门" A.All one Matrices 枚举每一行作为极大矩阵的底部,然后枚举列根据$up[i][j]$来确定矩阵高度,通过单调栈找到其左右最远扩展位置,之后通过预处理出行$1$个数的前缀和,判断一下下一行对应位置是否全为$1$即可。 Code cpp 阅读全文
posted @ 2019-08-13 20:32 heyuhhh 阅读(354) 评论(0) 推荐(0) 编辑
摘要:2019 Multi University Training Contest 6 B.Nonsense Time 首先有这样一个结论:随机生成序列的期望$LIS$长度为$O(\sqrt{n})$。 ~~然后就可以愉快的暴力了。~~ 考虑逆序时间,即每次删去一个数,并回答询问。 因为限制$LIS$的长 阅读全文
posted @ 2019-08-10 19:47 heyuhhh 阅读(223) 评论(0) 推荐(0) 编辑
摘要:Educational Codeforces Round 69 (Rated for Div. 2) E. Culture Code "题目链接" 题意: 给出$n$个俄罗斯套娃,每个套娃都有一个$in_i,out_i$,并满足$out_i in_i$。定义套娃$i$能套在套娃$j$里面,当且仅当$ 阅读全文
posted @ 2019-08-06 12:51 heyuhhh 阅读(300) 评论(0) 推荐(0) 编辑
摘要:Educational Codeforces Round 69 (Rated for Div. 2) D. Yet Another Subarray Problem "题目链接" 题意: 求$\sum_{i=l}^{r} k\lceil\frac{r l+1}{m}\rceil$的最小值,$n\le 阅读全文
posted @ 2019-08-06 08:31 heyuhhh 阅读(164) 评论(0) 推荐(0) 编辑
摘要:2019 Multi University Training Contest 2 "题目链接" Beauty Of Unimodal Sequence 这个题的最长长度好求,主要是考虑如何字典序最小以及字典序最大。 对于字典序最小,最直接的想法就是一个一个取,然后看剩下的能不能满足条件;而字典序最大 阅读全文
posted @ 2019-08-01 21:09 heyuhhh 阅读(194) 评论(0) 推荐(0) 编辑
摘要:2019 Multi University Training Contest 1 "题目链接" Blank 题目要求只能放四个数,并且对于每个区间而言,统计个数时会发现只有最后一个位置有贡献,所以考虑$dp(i,j,k,t,p)$表示前$i$个字符,四个数的最后一个位置从小到大为$j,k,t,p$, 阅读全文
posted @ 2019-08-01 19:56 heyuhhh 阅读(358) 评论(0) 推荐(0) 编辑
摘要:2019牛客多校第三场题解 "题目链接" B.Crazy Binary String 子序列维护前缀和即可,子串答案$2 min(0,1)$的个数。 Code cpp include using namespace std; typedef long long ll; const int N = 1 阅读全文
posted @ 2019-07-28 18:36 heyuhhh 阅读(418) 评论(0) 推荐(0) 编辑
摘要:2019牛客多校训练第一场题解 题目链接 A.Equivalent Prefixes 考虑位置$i$为区间最小值的下标,那么只需要找到左边第一个值比它小的位置就行了。单调栈搞一搞就行。 Code ```cpp #include using namespace std; const int N = 5 阅读全文
posted @ 2019-07-19 20:57 heyuhhh 阅读(567) 评论(0) 推荐(0) 编辑
摘要:Codeforces Round 558 (Div. 2)题解 A. Eating Soup 水题,直接给出代码。 Code cpp include using namespace std; typedef long long ll; const int N = 1e5 + 5; int n; in 阅读全文
posted @ 2019-05-16 19:12 heyuhhh 阅读(371) 评论(0) 推荐(0) 编辑
摘要:Educational Codeforces Round 63 (Rated for Div. 2)题解 "题目链接" A. Reverse a Substring 给出一个字符串,现在可以对这个字符串进行一次翻转,问是否存在一种方案,可以使得翻转后字符串的字典序可以变小。   这个很简单 阅读全文
posted @ 2019-04-23 23:43 heyuhhh 阅读(255) 评论(0) 推荐(0) 编辑
摘要:南昌邀请赛网络赛 D.Match Stick Game "题目传送门" 题目就会给你一个长度为n的字符串,其中$1现在在不改变每个数的位数,数的总数以及运算符的个数的前提下,可以对火柴棒重新拼接。询问最后可以拼接出来的最大值是多少。 这个自己看下题目可能要清楚一些= =   每一个字符都是 阅读全文
posted @ 2019-04-22 22:10 heyuhhh 阅读(272) 评论(0) 推荐(0) 编辑