08 2019 档案

摘要:"传送门" 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) 编辑
摘要:"传送门" 题意: 对给定字符串$s$,求其第$k$小子串,重复串被计入以及不被计入这两种情况都需考虑。 思路: 首先构建后缀自动机,之后就考虑在后缀自动机上$dp$。 我们知道如果要考虑重复串,那么就会与一个结点的$endpos$集合的大小有关,对于一条边$(u,v)$,如果结点$u$的$endp 阅读全文
posted @ 2019-08-31 14:10 heyuhhh 阅读(181) 评论(0) 推荐(0) 编辑
摘要:"传送门" 1445 : 后缀自动机二·重复旋律5 题意: 给出字符串$s$,询问字符串$s$中有多少不同的子串。 思路: 考虑对$s$建后缀自动机,那么$\sum (len[i] len[fa[i]])$即为答案。 还可以考虑$dp$,设$dp[i]$为从$i$出发不同子串的个数,那么$dp[i] 阅读全文
posted @ 2019-08-30 20:12 heyuhhh 阅读(378) 评论(0) 推荐(1) 编辑
摘要:前言 杜教筛学了,顺便把min25筛也学了吧= =刚好多校也有一道题需要补。 下面推荐几篇博客,我之后写一点自己的理解就是了。 "传送门1" "传送门2" "传送门3" 这几篇写得都还是挺好的,接下来我就写下自己对min25筛的理解吧 。 正文 简介: min25筛同杜教筛类似,是用来解决一类积性函 阅读全文
posted @ 2019-08-27 22:23 heyuhhh 阅读(1079) 评论(2) 推荐(0) 编辑
摘要:"传送门" 思路: 直接上主席树,对于每个询问$(l,r)$,我们在第$r$个版本的主席树中查询最晚出现的小于$l$最小的数就行了。 因为答案可能为$a_i+1$,所以我们在离散化的时候考虑将$a_i+1$加进去。 一开始主席树部分没有思考清楚,还是对主席树的理解不够深入吧。。。其实就是一个维护前缀 阅读全文
posted @ 2019-08-26 22:20 heyuhhh 阅读(200) 评论(0) 推荐(0) 编辑
摘要:"传送门" 思路: 最朴素的dp式子很好考虑:设$dp(i,j)$表示前$i$个任务,共$j$批的最小代价。 那么转移方程就有: $$ dp(i,j)=min\{dp(k,j 1)+(sumT_i+S j) (sumC_i sumC_k)\} $$ 为什么有个$S j$呢,因为前面的批次启动会对后面 阅读全文
posted @ 2019-08-26 22:18 heyuhhh 阅读(272) 评论(0) 推荐(0) 编辑
摘要:"传送门" 题意: 给出$n$个数,然后求$\sum_{i=1}^n\sum_{j=i}^nmex(i,j)$。$mex(i,j)$表示区间$[i,j]$的$mex$。 思路: 考虑枚举左右端点的其中一个,然后快速统计答案。 观察发现对于一个$a_i$,如果区间左端点从包含它到了不包含的状态,那么其 阅读全文
posted @ 2019-08-26 22:08 heyuhhh 阅读(318) 评论(0) 推荐(0) 编辑
摘要:"传送门" 题意: 现有$n$个数,每个数的值为$a_i$,现在可以把数划分为多段,每一段的代价为$(\sum_{k=i}^{j}c_i)^2+M$。 问怎么划分,代价最小。 思路: 考虑dp,那么dp式子很简单: $$ dp(i)=min\{dp(j)+(S_i S_j)^2+M\} $$ 注意这 阅读全文
posted @ 2019-08-26 21:59 heyuhhh 阅读(203) 评论(0) 推荐(0) 编辑
摘要:杜教筛学习总结 前言 一直听说杜教筛非常nb,但关于它的学习一直被鸽= =但最近遇到太多数学题辣,所以不得不把这个坑填上了。 推荐博客: "传送门1" "传送门2" "传送门3" 另外杜教筛可能需要一些前置知识,之前写过一篇关于莫比乌斯函数的,就顺便贴上来吧: "传送门" 正文 数论函数 :我们平时 阅读全文
posted @ 2019-08-25 21:43 heyuhhh 阅读(246) 评论(0) 推荐(0) 编辑
摘要:题意: 求$\sum_{i=1}^n\sum_{j=1}^m \mu({lcm(i,j)})$。 思路: 首先$lcm(i,j)=\frac{ij}{gcd(i,j)}$,不妨有$lcm(i,j)$无平方因子,那么就有$gcd(\frac{i}{gcd(i,j)},j)$互质,所以$\mu(lcm( 阅读全文
posted @ 2019-08-25 18:15 heyuhhh 阅读(343) 评论(0) 推荐(1) 编辑
摘要:"传送门" A.\^&^ 题意: 找到最小的正数$C$,满足$(A\ xor\ C)\&(B\ xor \ C)$最小。 思路: 输出$A\&B$即可,特判答案为0的情况。 Code cpp include typedef long long ll; typedef unsigned long lo 阅读全文
posted @ 2019-08-24 16:05 heyuhhh 阅读(1007) 评论(0) 推荐(0) 编辑
摘要:"传送门" 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) 编辑
摘要:"传送门" P.S:这场不想补啦。 F.Final Exam 题意: 有$n$门课即将进行考试,现在有$m$分用于分配,如果一门课程的分值为$x$,那么那就需要$x+1$个小时来复习。 现在你的目标是过$k$门课,问怎么分配复习时间可以保证过$k$门课并且复习时间最少。 P.S:老师可以根据你的复习 阅读全文
posted @ 2019-08-21 20:19 heyuhhh 阅读(194) 评论(0) 推荐(0) 编辑
摘要:记录一下打的比赛 阅读全文
posted @ 2019-08-21 18:20 heyuhhh 阅读(922) 评论(0) 推荐(0) 编辑
摘要:"传送门" A.Rikka with Quicksort 前来填坑= = 题解不想再码一遍了, "戳这看题解" )。 思路挺清晰的,推式子需要用到高中数列的技巧,还是有点巧妙。之后分段打表来搞就行。 注意一点就是最终推出来的式子中: $$ f(n)=\frac{n 1}{(n + 1)(n + 2) 阅读全文
posted @ 2019-08-20 19:30 heyuhhh 阅读(409) 评论(0) 推荐(1) 编辑
摘要:"传送门" A.Blackjack 题意: 现在有$n$张卡片,每张都有一个数值$x_i$。 给定$a,b$,现在有一个人每次随机抽出一张卡片出来,并且加上其数值,如果数值和在$(a,b]$的范围内他就胜利;如果超过了$b$,他就输了。 他会一直抽下去,直到胜利或者失败。 现在问他获胜的概率为多少? 阅读全文
posted @ 2019-08-19 19:57 heyuhhh 阅读(422) 评论(0) 推荐(0) 编辑
摘要:传送门 D.Acesrc and Hunting 将最上面两排作为中转站; 自底向下往上,之后又从上往下; 第三排开始每步长度为$2$或者$\sqrt{2}\(,上面两排步长可能为\)\sqrt{5}$。 E.Acesrc and String Theory 题意: 询问$k$循环的子串个数,$1\ 阅读全文
posted @ 2019-08-19 19:29 heyuhhh 阅读(234) 评论(0) 推荐(0) 编辑
摘要:2019牛客暑期多校训练营(第九场) "题目链接" A.The power of Fibonacci 注意到模数为合数,并且可以拆为$2^9,5^9$,这样就相当于将原问题拆解成了规模比较小的情况。 通过$2^9,5^9$分别求出循环节,找到问题的解,之后$CRT$合并即可。 Code cpp in 阅读全文
posted @ 2019-08-17 09:51 heyuhhh 阅读(314) 评论(0) 推荐(0) 编辑
摘要:记录平时遇到的一些知识点。 原根 阶:设$a,p$是整数且互质,那么满足$a^n=1\mod p$的最小整数$n$就称为$a$模$p$的阶。 原根:当$a$模$m$的阶为$\varphi(m)$时,就称$a$为模$m$的一个原根。 性质:假设$g$为模$m$的一个原根,那么满足$g1,g2,\cdo 阅读全文
posted @ 2019-08-16 21:24 heyuhhh 阅读(390) 评论(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) 编辑
摘要:Codeforces Round 578 (Div. 2) "传送门" A. Hotelier 暴力即可。 Code cpp include using namespace std; typedef long long ll; const int N = 2e5 + 5; int t, n, m, 阅读全文
posted @ 2019-08-13 20:48 heyuhhh 阅读(260) 评论(2) 推荐(0) 编辑
摘要:2019牛客暑期多校训练营(第八场) "传送门" A.All one Matrices 枚举每一行作为极大矩阵的底部,然后枚举列根据$up[i][j]$来确定矩阵高度,通过单调栈找到其左右最远扩展位置,之后通过预处理出行$1$个数的前缀和,判断一下下一行对应位置是否全为$1$即可。 Code cpp 阅读全文
posted @ 2019-08-13 20:32 heyuhhh 阅读(354) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-08-13 09:45 heyuhhh 阅读(30) 评论(0) 推荐(0) 编辑
摘要:洛谷P3810 陌上花开 "传送门" 题解: CDQ分治模板题。 一维排序,二维归并,三维树状数组。 核心思想是分治,即计算左边区间对右边区间的影响。 代码如下: cpp include using namespace std; typedef long long ll; const int N = 阅读全文
posted @ 2019-08-11 17:20 heyuhhh 阅读(189) 评论(0) 推荐(0) 编辑
摘要:AtCoder Beginner Contest 136 "题目链接" A + x 直接取$max$即可。 Code cpp include using namespace std; typedef long long ll; const int N = 2e5 + 5; int main() { 阅读全文
posted @ 2019-08-11 15:12 heyuhhh 阅读(345) 评论(0) 推荐(0) 编辑
摘要:2019牛客暑期多校训练营(第七场) "题目链接" A.String 暴力$dp$即可。 Code cpp include using namespace std; typedef long long ll; const int MAXN = 10 + 5, INF = 0x3f3f3f3f, MO 阅读全文
posted @ 2019-08-10 20:02 heyuhhh 阅读(262) 评论(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 70 (Rated for Div. 2) "题目链接" A. You Are Given Two Binary Strings... 注意到乘以一个$2^k$就相当于将二进制左移$k$位,然后贪心匹配就行了:找到$t$串最后一个$1$的位置 阅读全文
posted @ 2019-08-10 19:01 heyuhhh 阅读(292) 评论(0) 推荐(0) 编辑
摘要:Educational Codeforces Round 67 D. Subarray Sorting "传送门" 题意; 给出两个数组$a,b$,现在可以对$a$数组进行任意次排序,问最后能否得到$b$数组。 $n\leq 3 10^5,a\leq n.$ 思路: 首先注意到任意次排序可以等价于任 阅读全文
posted @ 2019-08-07 10:37 heyuhhh 阅读(114) 评论(0) 推荐(0) 编辑
摘要:2019 Multi University Training Contest 5 "Problem 6624~6633" A.fraction 先解决这样一个问题:找到最小的$x,y$,求解$\frac{a}{b}\leq \frac{x}{y}\leq \frac{c}{d}$。 这个问题可以递归 阅读全文
posted @ 2019-08-06 17:12 heyuhhh 阅读(339) 评论(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牛客暑期多校训练第六场 "题目传送门" A.Garbage Classification 垃圾分类题,模拟即可。 Code cpp include using namespace std; typedef long long ll; const int MAXN = 1e3 + 5; con 阅读全文
posted @ 2019-08-05 09:13 heyuhhh 阅读(283) 评论(0) 推荐(0) 编辑
摘要:Educational Codeforces Round 68 E. Count The Rectangles "传送门" 题意: 给出不超过$n,n\leq 5000$条直线,问共形成多少个矩形。 思路: 考虑到$n$的范围不大,所以可以暴力枚举两条平行的直线,接下来处理的就是与其垂直的直线的数量 阅读全文
posted @ 2019-08-04 19:49 heyuhhh 阅读(218) 评论(0) 推荐(0) 编辑
摘要:2019牛客多校第五场题解 "题目链接" A.digits 2 输出$n$个$n$即可。 Code B.generator 1 十进制快速幂,$a^n=(a^2)^{\frac{n}{2}}$改造为$a^n=(a^{10})^(\frac{n}{10})$即可,余数就单独乘一下。 详见代码: Cod 阅读全文
posted @ 2019-08-04 12:05 heyuhhh 阅读(530) 评论(2) 推荐(0) 编辑
摘要:2019 Multi University Training Contest 3 "题目链接" Blow up the city 首先考虑建立一个虚根,与所有反图中入度为$0$的点连边形成一颗树,然后考虑建出其支配树。对于$DAG$来说比较简单,反图中按着拓扑序来搞,这样就可以保证处理一个点时,其父 阅读全文
posted @ 2019-08-02 08:57 heyuhhh 阅读(296) 评论(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 Multi University Training Contest 4 "题目链接" A.AND Minimum Spanning Tree 贪心连边即可,对于一个数$x$,如果其二进制位在低位存在$0$,那么就连向最小的$0$的位置;否则就说明$x$为$11111$这种形式,如果最高位再 阅读全文
posted @ 2019-08-01 11:57 heyuhhh 阅读(318) 评论(0) 推荐(0) 编辑