上一页 1 2 3 4 5 6 ··· 11 下一页
摘要: 题目链接: "戳我" 可以知道,我们相当于是把有宝藏在的地方围了一个圈,求这个圈最小是多大。 显然按照dfs序来遍历是最小的。 那么我们就先来一遍dfs序列,并且预处理出来每个点到根的距离(这样我们就可用$dis[u]+dis[v] 2 dis[lca(u,v)]$来表示u,v之间的距离) 怎么动态 阅读全文
posted @ 2019-06-15 12:11 风浔凌 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 蒟蒻的第一道子序列自动机! 给定两个01串A,B,求一个最短的01串,要求C不是A,B的子序列。要求如果同样短,输出字典序最小的。 那么我们先构建A,B两个串的子序列自动机。然后我们设$f[i][j]$表示现在已经匹配到A的第i位,B的第j位,现在还需要f[i][j]长度,才不 阅读全文
posted @ 2019-06-15 12:02 风浔凌 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 注:因为博主是个每次考试都爆零垫底的菜鸡,所以此篇博客很有可能咕咕咕 ~~(指只贴AC代码不写题解的......如果我真的不会做的话,就不能怪我了qwqwq)~~ Day1 "T1 swap" 23pts 从一个状态开始爆搜,然后我们哈希一下状态,保证一个状态只被访问一次。时间复杂度$O(n!n)$ 阅读全文
posted @ 2019-06-05 16:54 风浔凌 阅读(207) 评论(1) 推荐(0) 编辑
摘要: 题目链接: "戳我" SAM经典应用,求字典序第K小的子串 阅读全文
posted @ 2019-06-04 19:10 风浔凌 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" BSGS水题 cpp include include include include include include define int long long using namespace std; int n,g,p; mapex; inline int fpow(int 阅读全文
posted @ 2019-05-30 08:04 风浔凌 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" $$f[n][m]=a f[n][m 1]+b$$ $$=a^{m 1} f[n][1]+b+ab+...+a^{m 2}b$$ $$=a^{m 1} (c f[i 1][m]+d)+b+ab+...+a^{m 2}b$$ $$=a^{m 1} c f[i 1][m]+a^{m 阅读全文
posted @ 2019-05-30 08:00 风浔凌 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 首先看出来这是一个哈夫曼树! 然后就按照 "这里面哈夫曼树那一点说的" ,就可以A掉这个题啦 cpp include include include include include include define MAXN 100010 using namespace std; 阅读全文
posted @ 2019-05-30 07:47 风浔凌 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 30pts还是很好写的,因为30以内的质因数就没有几个,直接状压就可以了. 但是如果范围扩大到500呢?我们考虑后面的数怎么处理. 首先观察到19之后的数最多只能出现一次,那么我们直接状压这前八个质数就行了.后面的我们可以手动添加一下(为了方便,对于当前遍历的值,下面我们称前八 阅读全文
posted @ 2019-05-30 07:45 风浔凌 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 变元矩阵树定理,具体可以去看蒟蒻学习笔记中[树上问题]这一篇的整理QAQ 原式子为$\sum_T\prod_{(u,v)\in T}p_{u,v}\prod_{(u,v)\notin T}(1 p_{u,v})$ $=\prod_{(u,v)\in G}(1 p_{u,v})\ 阅读全文
posted @ 2019-05-30 07:25 风浔凌 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 剪枝的搜索题 我们考虑从大到小枚举每一层 如果当前的体积大于总体积 return 枚举下一层的时候是[还剩下的层数,上一层的 1] 如果当前的面积加上后面有可能的最大面积还是比ans大,return 如果当前的体积加上后面有可能的最小体积还是比n小,return 面积计算直接带 阅读全文
posted @ 2019-05-30 07:21 风浔凌 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 就是并查集水题. cpp include include include include include include define MAXN 1000010 using namespace std; int n,T,cnt; int fa[MAXN]; inline int 阅读全文
posted @ 2019-05-30 07:16 风浔凌 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" ~~看来我是要退役了,贪心都不会写了QAQ~~ 开始以为以小博大就行了,只要让较弱的尽可能去牺牲就行。但是明显如果弱的可以战胜对方弱的,让他去跟强的打这一场就白输了(而且那个它本来可以对付的对方弱的,还有胜利的可能)。 之后又想尽量用小的去战胜它能胜利的小的,但是这样也不行,一 阅读全文
posted @ 2019-05-22 23:54 风浔凌 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 开始以为是按照修建时间短的排序,先把修建时间短的修了。 但是这样显然有问题,因为可能前面的倒塌时间靠后,你先修了,后面塌的就不能修了。 所以要按倒塌时间排序开始修。 然后如果当前的建筑物来得及修,当然是要修的。 这时候我们维护一个已经修过的建筑物的大根堆(优先队列)。 如果不能 阅读全文
posted @ 2019-05-22 23:42 风浔凌 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 有向生成树计数。 那么在这里补充一下矩阵树定理吧! 度数矩阵 邻接矩阵(双向计数),去掉任意一行一列,剩下的式子高斯消元之后,对角线乘积是无向图的生成树个数。 入度矩阵 邻接矩阵(单向边),去掉根相关的一行一列,剩下的式子高斯消元之后,对角线乘积是外向树的生成树个数。 出度矩阵 阅读全文
posted @ 2019-05-22 23:38 风浔凌 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 首先,你要知道这道题是一棵树! 然后,就是从树上选择K个点,让他们的权值和最大,其中如果选择了一个点,那么它的父亲一定要选。 有依赖的背包问题。 设$dp[i][j]$表示在以i为根的子树中,选择j个点的最大权值。 但是直接在树上做应该是$O(n^2k)$的,所以我们考虑优化— 阅读全文
posted @ 2019-05-22 23:33 风浔凌 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" ~~非常抱歉,菜鸡风浔凌又来水蓝题了qwq~~ 看到题解上写双向搜索???什么鬼....... 看到数据范围特别小,直接划分二分图,两个点之间连接容量为1,费用为曼哈顿距离的边,跑费用流即可。 什么?你问我那个不能移动到有玩具的格子的限制? 不用管了啦,因为费用流会给你跑费用最 阅读全文
posted @ 2019-05-22 23:27 风浔凌 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" ~~我竟然还有脸发出这样一篇题解.......~~ 其实我是暴力水过去的,,就从一个点开始,找它两边的数和它异或,不断更新答案。如果一侧找到第二个比它大的数,就break掉...... 正解是可持久化01trie,~~但是我写出锅了,正在咕咕咕,写出来了之后一定update~~ 阅读全文
posted @ 2019-05-22 23:24 风浔凌 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 其实只有开了O2才能A....... 就是我们看到n的范围这么小,就想到状压DP。然后我们设状态dp[i]表示状态为i的(二进制表示该点选或者不选),方案数有多少个。 但是我们发现因为还要枚举转移下一个点,所以我们还要记录一下最后的那个点是什么。 于是我们修改状态为$dp[i] 阅读全文
posted @ 2019-05-22 23:20 风浔凌 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 很显然能看出来是分数规划,然后我们跑一个二分图上的费用流就行了。 二分出来答案mid之后,每条边的流量转换成a[i] b[i] mid即可。 代码如下: cpp include include include include include include define S 0 阅读全文
posted @ 2019-05-22 23:16 风浔凌 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 就是大力推式子,然后上BSGS就行了。 $$x_n\equiv a^{n 1}x_1+b(a^{n 2}+a^{n 3}+...+a)\pmod p$$ $$t\equiv a^{n 1}x_1+b\sum_{i=0}^{n 2}a^i\pmod p$$ $$t\equiv a 阅读全文
posted @ 2019-05-22 23:14 风浔凌 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 生成函数的入门题吧。 我们可以把条件限制转化为生成函数,然后用第i项的系数来表示一共使用n块石头的方案个数。 (你问我为什么?你可以自己演算一下,或者去看 "大佬的博客" 这里面讲的是生成函数基础) 这些约束条件的生成函数分别为 $1+x^6+x^{12}+...=\frac{ 阅读全文
posted @ 2019-05-21 13:42 风浔凌 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 发现了判断负环的真 写法~~喂所以说原先那个不是标准判断方法吗!!~~ 就是一个简单的01分数规划,然后我们知道$\sum w \ge k mid$ 然后这就相当于把所有的边都减去二分出来的mid值,如果有负环就说明这个二分值大于等于答案了。 代码如下: cpp include 阅读全文
posted @ 2019-05-21 08:48 风浔凌 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 看到k,p的范围这么小,显然要状压DP啊! 但是要怎么状压DP呢。 我们先注意到每p个公交站,这k辆公交车都要至少出现一次。因为答案是按集合算的,所以公交车之间不做区别,换句话说就是我们可以讲题目简化一下—— 1 n的n个元素,k个集合,保证一个元素只出现在一个集合中(不能多余 阅读全文
posted @ 2019-05-19 11:15 风浔凌 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 怎么说呢,看到棋盘(应该想到二分图染色) 设白色格子数量为$cnt0$,现在的值的和为$sum0$。黑色格子的数量为$cnt1$,现在的值的和为$sum1$,最后的答案为x。 $sum0+cnt0 x=sum1+cnt1 x$ $sum0 sum1=x (cnt1 cnt0)$ 阅读全文
posted @ 2019-05-19 10:32 风浔凌 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 不想说了......就树上的线性基合并....... ~~但是讲道理O(nlogn^3)为什么能过去呢.......但是就是能过去啊,因为博主是菜鸡不怎么会淀粉质啊,所以本篇题解只能提供这个复杂度的算法了QAQ$$~~ 求选出来一些数使得异或和最大?线性基啊!那怎么求路径上的呢 阅读全文
posted @ 2019-05-19 10:19 风浔凌 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 看到这个题目,我们有一个朴素的DP想法(~~但是为什么我会先想到网络流啊喂,果然是菜鸡~~) 设$dp[i][j][0/1/2]$表示第i天不进行交易/买入/卖出,现在手上有j张票,前i天能够获得的最大收益。转移什么的随便弄弄就行了吧。 然后发现自己智障了,0/1/2根本不用划 阅读全文
posted @ 2019-05-19 10:10 风浔凌 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" APIO2019 practice round E题的弱化版 考虑如何构造。 对于一个字符串a: (未构造好的)+a[pos]+(已构造好的) 1、将已经构造好的按照题目意思翻转,接到前面 (反着的已构造好的)+(未构造好的)+a[pos] 2、将a[pos]按照题目意思翻转( 阅读全文
posted @ 2019-05-18 07:26 风浔凌 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 非常不好意思,因为想要排版,所以今天先只把代码贴出来,题解明天补。 cpp include include include include include include define MAXN 6010 define mod 10007 using namespace std 阅读全文
posted @ 2019-05-17 23:52 风浔凌 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 非常不好意思,因为想要排版,所以今天先只把代码贴出来,明天补题解。 40pts暴力:直接暴力匹配 阅读全文
posted @ 2019-05-17 23:50 风浔凌 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 非常不好意思,因为想要排版,所以今天先只把代码贴出来,明天补题解。 cpp include include include include include define MAXN 2000010 using namespace std; int tot=1,n,m,tt; in 阅读全文
posted @ 2019-05-17 23:50 风浔凌 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 非常不好意思,因为想要排版,所以今天先只把代码贴出来,明天补题解。QAQ cpp include include include include include define eps 1e 7 define MAXN 500010 int n,m,t; int head[MAX 阅读全文
posted @ 2019-05-17 23:49 风浔凌 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 看到期望,想着不要从前转移。 一次后能买到不同种类的概率为$\frac{n i}{n}$ 两次后能买到不同种类的概率为$\frac{i}{n}\times \frac{n i}{n}$ n次后能买到不同种类的概率为$(\frac{i}{n})^n\times \frac{n i 阅读全文
posted @ 2019-05-17 23:41 风浔凌 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 我怎么知道平面图有这个性质?? 对于一个平面图,它的边数不超过点数的$3n 6$ 所以可以直接把边数多的特判掉,剩下的图中边数和点数就是一个数量级的了。 因为这个图存在欧拉回路,所以我们先把那些构成欧拉回路的边拉出来,将边上的两个端点的标号替换成在这个序列上的位置。然后判断这些 阅读全文
posted @ 2019-05-17 23:26 风浔凌 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 显然,如果$n==m$的时候,我们求的是$\phi(m)$ 而现在$n =m$,那么$n!$一定是$m!$的整数倍,每个$m!$对答案的贡献为$\phi(m!)$ 所以题目转化成求 $\frac{n!}{m!}\phi(m!)$ $=\frac{n!}{m!}\frac{\pr 阅读全文
posted @ 2019-05-16 20:57 风浔凌 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 刚看到题的时候以为就是一个AC自动机模板,直接往后面匹配就行了。 但是再读读题,发现并不是这样子的,匹配上的字符串不能相交,而且必须相接。直接在AC自动机上匹配,只能保证匹配上。 但是我们可以用DP,以$dp[i]$表示前i个数都能够被理解。 这样子$dp[i]|=dp[i l 阅读全文
posted @ 2019-05-16 18:42 风浔凌 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 区间DP,设$dp[i][j][0/1]$表示收集完$[i,j]$这个区间的小球之后,现在在左端点(0)或者右端点(1),损失掉的最小收益是多少。 然后初始化只更新离初始点最近的两个点就行了qwq. cpp include include include include inc 阅读全文
posted @ 2019-05-16 13:16 风浔凌 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 对于异或,有一个套路是要把每一位拆开算贡献 ,这个题就是这样子的。 对于当前位,我们设$dp[i]$表示从i到n的路径上该位为1的概率。 (为什么不设$dp[i]$表示从1到i的路径上的概率呢,因为有可能当前点到达不了n) $$dp[u]=\sum_{w(u,v)=1}\fra 阅读全文
posted @ 2019-05-16 12:55 风浔凌 阅读(215) 评论(0) 推荐(1) 编辑
摘要: 题目链接: "戳我" 如何保证选出来一些数,他们任意一个子集的异或和不为0? 显然可以用线性基维护一下。 那么如何求选出来的数的元素值最大呢?我们排序一下子就好啦!将元素按照从大到小排序。至于原因,和上一道题一样。 不过请注意,这个题的id值在long long范围内,线性基中的左移操作记得开1ll 阅读全文
posted @ 2019-05-15 11:19 风浔凌 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 首先我们可以转化一下题面—— 找一个最大的子集,使得这个子集中的子集异或和均不为0. 或者 删除尽可能少的数,使得剩下的数的子集异或和不为0. 所以就是一个数一个数看,看如果加入进去之后会和一部分数构成异或和为0的情况,就把这个数作为删去的堆。 用线性基维护就行了。 但是我们要 阅读全文
posted @ 2019-05-15 11:15 风浔凌 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 我们可以先用最短路BFS预处理出来每个空地到门的距离,然后建图。 因为每个单位时间每个门只能通过1个人,所以我们还要给门按时间拆点。 但是我们不知道这个时间.....所以还要二分时间。 显然时间越长,方案越容易是合法的,时间越短,越不容易存在全部疏散的方案。 然后思路就清晰了。 阅读全文
posted @ 2019-05-15 10:48 风浔凌 阅读(116) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 11 下一页