02 2021 档案
摘要:记录每一次操作的玩家为操作序列(去掉第一次),需要满足:的个数为且以为结尾,和的个数分别不超过和 其所对应的概率:每一个字符恰好确定一张卡牌,因此即 暴力枚举和的个数,即$\sum_{i=0}^{m}\sum_{j=
阅读全文
摘要:毒瘤分类讨论题 (注:以下情况都有“之前的情况都不满足的”前提条件,并用斜体表示一些说明) Case0:若,直接输出即可,因此假设 首先,我们最希望在不对操作的前提下(不减小的数量)使得所有都在最前面,此时即最大化后缀的数量,由于每一次操作减
阅读全文
摘要:1和2操作是独立的,换言之一定可以先执行1操作选择包裹,再执行2操作使得 对于,将其看作一个进制转换,并以为从低到高的第位,系数即为 将其乘权累加,即令$c_{0}=\sum_{i=1}^{n}2^{i-1
阅读全文
摘要:不难证明合法当且仅当满足一下两个条件: 1.每一个位置最多被覆盖两次(无环) 2.将选择的区间按左端点从小到大排序,对于每一个左端点,其之前的区间的最大右端点不小于其(连通) (关于第一个的充分性证明可以考虑一个极小环,将环上区间排序即矛盾) 就将所有区间按照左端点从小到大排序,然后依次选择 更具体
阅读全文
摘要:以1为根建树,先将所有路径挂在lca上,再分两类讨论: 1.lca相同,此时我们仅关心于lca上不经过第和个儿子路径数,容斥一下,即所有路径-经过的-经过的+经过和的,前三个很容易统计,最后一个用map即可 (这样分类主要是避免lca相同时重复计数) 2.lca不
阅读全文
摘要:由于没有删边操作,可以先建出整棵森林,之后再用并查集判断是否连通,若连通必然与最后的森林相同 但如果用树链剖分+线段树的形式来优化建图,更具体如下: 建立两颗线段树,左边从儿子连向父亲,右边从父亲连向儿子,再将右边线段树上的连向左边对应的点,那么复杂度为(前两个$\lo
阅读全文
摘要:以下考虑直接对所有求和,并给出两种做法—— 做法1: 枚举答案,对应方案数为,即答案为$\sum_{i=0}^{n-1}({n-i\choose m}^{2}-{n-i-1\choose m}^{2}
阅读全文
摘要:最简单的是利用Min25筛求的过程,即 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define N 1000005 4 #define ll long long 5 int K,vis[N],P[N],h[N<<1]; 6 l
阅读全文
摘要:首先,来构造这棵树的形态 称位数相同的点为一类点,从每一类点中任选一个点,具有以下性质: 1.每一类中选出的点的导出子图连通(是一颗树) 2.每一条边必然有一个端点属于某一类中选出的点 (关于“若有解,一定存在上述这种形式的解”的证明可能比较困难,大概感性理解一下?) 由于类别很少(记为$m=\lf
阅读全文
摘要:先线段树分治,但事实上与普通的动态连通性/二分图的判定有很大的区别: 1.对每一个修改(建议将初始的边也作为无色修改),在其第一次修改时进行判定,若发现不合法则将其颜色改为对该边最后一次可行的修改,之后再执行即可; 2.操作顺序会影响,有可能左子树中的操作先于父亲的操作 对于此类操作,必然要求父亲之
阅读全文
摘要:类似cf582E,先建出表达式树,然后树形dp+离散+min和max卷积的优化,复杂度为,无法通过 考虑我们仅关心于这个数的大小关系,具体来说,假设给出的数组是(其中),对于某一个,将从小
阅读全文
摘要:称0到的方向为左,同时为了方便,可以假设 当我们确定是进入店中的方向,根据这个店的位置以及购物时间,不难确定出来时火车经过0或的次数,由于,因此总共至少有一次且分别不超过1次,即分以下三类讨论: 1.经过0未经过,在该位置
阅读全文
摘要:由于每一个运算都有括号,因此添加的运算不会改变运算顺序 先将其建出一棵表达式树,也就是维护两个栈,是节点和运算符优先级单调递增的栈(设置左括号优先级最低,右括号弹出直至左括号) 每一次运算,也就是新建一个节点(节点上记录操作符),并将栈顶的两个节点作为其儿子即可 关于?是操作符还是变量的判定,只需要
阅读全文
摘要:构造一张二分图,左边是个点,右边是个集合,按照点属于集合连边 定义一组匹配的意义,即说明该点的父亲在该集合中选择 利用dinic求出二分图的最大匹配,若不为则无解,否则考虑如何去构造一组解: 考虑左边剩下的未参与匹配的点,将其作为根,并将所有含有的集合所匹配的点
阅读全文
摘要:令表示字符串的答案(所有子集的方案数之和),考虑转移: 1.最后是一个字符串,不妨仅考虑最后一个字符,即(字符串下标从1开始),特别的,若,还有一个2倍的系数 2.是一个乘法,考虑是,记,则$T
阅读全文
摘要:先考虑枚举最后的点,并以其为根 首先,操作祖先-后代关系是没有意义的,因为以后必然有一次操作会操作祖先使其返回原来的位置,那么必然不如操作后代和那一个点(少一次操作) 考虑某一次操作,总深度和恰好减2,因此若有解,操作次数为深度和的一半 考虑dp,令表示以为根的子树经过若干次操作
阅读全文
摘要:特判,以下有 考虑两个节点的交集,分类讨论: 1.距离大于4,则交集为空 2.距离等于4,则交集大小恰好为1,即路径上中间的点 3.距离等于3,则交集大小恰好为2,即路径上的两个点(不包括端点) 4.距离等于2,则交集大小至少为3,至少包含两者路径上包括端点的3个点 5.距
阅读全文
摘要:考虑这样一个问题—— 有若干个序列,将这些序列以任意顺序连接,最小化逆序对数 记其中第个序列有个和个,序列内部的逆序对数可以直接统计 此时,仅需统计序列间的逆序对数,进而即按照从小到大排序(调整法易证)
阅读全文
摘要:考虑对于第层与第层所对应的点,点在前层中当且仅当到比到距离小 由此,考虑枚举第一层的一个点以及对应到第二层的边,通过bfs就可以确定第一层的点 接下来,标记第一层的点后,第一层的点剩下到未标记的点即为第二层的点,以此类推,就可以$o(m
阅读全文
摘要:考虑每一个圆即对应于区间,可以看作对于每一个区间,要求所有右端点严格比其小的区间不严格包含左端点 用表示仅考虑右端点不超过的区间的方案数,分为两类: 1.第个节点不作为右端点,即; 2.第个节点作
阅读全文
摘要:考虑当时,构造两种方案,满足诚实的人不交,接下来要求对于任意询问,这两种方案的答案都有可能相同 考虑询问,若在两种方案中有一种不诚实,那么总可以让答案相同,又因为诚实的人不交,因此一定可行 当,我们只需要找到一个诚实的人就可以做了,考虑如何找到这个诚实的
阅读全文