HEOI 苏子佩.
10 2020 档案
摘要:虽然这简拼有点奇怪 T1 对着一个不是很对的式子推了一个小时然后挂了,所以来详细分析一下我推错的那个式子。 对于x∗(k−x)=k∗(k−y)其中k为常数,这个解为正整数的不定方程,可以简单构造几组解,令g=gcd(x,k)\(,那么有\)(k−x)=(k−y),因为
阅读全文
摘要:T1 考场上想了半天没有思路,貌似可以转化为直线上的点对,但是仍然不可做,原因在于,每次询问的c都不一样,不是很好处理,所以好像只能暴力,于是我就打了一个O(nmlogn)的暴力,接着就发现这样遍历太浪费时间了,有些大小一样的堆完全可以合并在一起,所以就开了一个set维护了一下,然后就发
阅读全文
摘要:T1 容易发现选择r一定是很优的,因为两个数没有任何限制,选择r之后只需要尽量去把剩余的二进制位上的0补成1就完了。 T2 想到了折半搜索但是不会拼起来,发现了答案是将某个前缀的概率都减去后恰好小于等于0,然后就不会搞了,实际上可以二分这个前缀的位置,然后看能不能取出合法的解满足二分
阅读全文
摘要:这波直接菜死 T1 考场上对着一个套了两层绝对值的式子求了半天最值,然后推出了一个看起来是但实际上好像有点问题的结论,应该也不算什么结论反正就是没正确性,忘了原始的式子,然而实际上应该是直接考虑原始的式子,它是条直线,并且也没套两层绝对值,然后就可以看出在x或y在0的两侧左右摇摆的时候和最小
阅读全文
摘要:T1 式子拆开之后套龟速乘随便写。 T2 最开始看错题了,以为只要有一组分配方案合法即可,这样就不是很好做因为不能贪心的取,后来看到分配方案必须任意分都满足就可以一眼写了,二分的时候检验的时间复杂度有点高,所以必须要尽量减少不合法的检验,于是最开始倍增出二分的区间即可。 T3 挺不好想的一道题,首先
阅读全文
摘要:T1 打表找规律,emm,说一下当时怎么打的表吧。 样例给了很多,并且把n=3的情况都给出来了,所以试着打一下n=4的表。 不难想到最后答案和标号没有关系,只和当前每个人后边跟的人的个数有关系,所以把每个状态最大表示一下。 初始状态即为1,1,1,1设为S0,不难看出S0
阅读全文
摘要:T1 先画出一个矩阵,(i,j)上的数为ix+jy,发现只要某一行的第一列的数曾经出现过,就说明已经计算完了,证明感觉挺显然的,自己画一下就可以看出来。 T2 这种不太好处理的权值可以转化为联通块问题然后求直径,每次将枚举的gcd的倍数边加到图上。 T3 用线段树维护栈,与维护单调栈类似
阅读全文
摘要:T1 每次钦定至少i个不合法然后奇减偶加即可,容斥还是太差了。 T2 可以斜率优化DP,不过注意到去重之后数会很少所以直接去重暴力做也可以。 T3 定义f[n][v1][v2][v3][v4]为第n次操作时状态的概率,然后模拟转移的过程即可,注意细节。 T4 要写高精度,不过可以压位
阅读全文
摘要:T1 容易发现可以将行和列连边,然后最后答案就是联通块个数减一,因为每个联通块内都能互相到达 T2 考虑每次动态更新答案,只需要加上序列中的数再减去不互质的就行了,然后不互质的一定是这个数约数的倍数,想了会儿容斥系数想不出来,其实很简单,就是莫比乌斯函数,原因就是对于每个质因子,不考虑它出现的次数,
阅读全文
摘要:T1 可以发现有决策包容性,所以每次调最远的跳,因为最大有106,nlogn写好看点应该可以卡过去。 但是有线性的做法,因为对于每次跳跃,瓶颈只在长度为d的一段区间,所以所有不超过d的极大区间的最小值就是答案。 T2 发现操作实际上是将这个数循环左移了一位,这样转化有什么好处呢,将
阅读全文
摘要:T1 考场上想到了正解但是因为暴力一直没有过大样例所以不敢写,后来发现是因为暴力没有清空数组。 大样例如果不过要敢于去调,自信一点。 T2 挺显然的,每个块的答案是互不干扰的,所以算一个块然后乘上方案数就行了,发现组合数不好算所以直接DP就好
阅读全文
摘要:T1 容易发现从左上到右下角依次扫描整个矩阵,如果有x,就必须进行覆盖,不然这个x就不合法了,所以每扫描到一个,就判断,合法就覆盖否则输出不合法。 因为需要判断边界所以我直接将原点平移,然后把其他地方复制成.,写起来很方便不过需要注意scanf之后一行的点都会没了,还需要判掉小卡上没
阅读全文
摘要:第四阶段 第一场考试就整了一个约瑟夫问题,然后考场了推了半天推不动就心态炸了,其实之前就发现过类似问题但是没在意,推式子不是很强,但是心态炸是因为打了一个表却打不开。。。GEDIT,然后心态也就不是很好了,第四题可能有一点考察经验的感觉然后没想到HASH值,积累一下吧。 后来考了一道Catlan数,
阅读全文
摘要:晚测9 T1 考虑每个点贡献多少次然后单调栈计算。 T2 考场上以为Bitset有七十但是最后几分钟才发现不对,然后就挂了。 可以建出一个交树和一个并树,交树上,一个点是另一个点的子集当且仅当这个点是那个点的父亲,并树相反,不过对于k=1的情况需要特判,并且在下边查询的时候需要查询两棵树。 Bi
阅读全文
摘要:模拟18 T1 N2h的Dp十分好想,然后用前缀后缀取min就能做到nh,观察数据可以发现,最后的状态中应该不能有高度,考虑如何去掉高度,如果要拔高某个地方,一定不会拔高1,4,8中4这种类型 的,因为虽然和8的距离减少了但是和另一个的距离增加了,相当于白白耗费,$1,8
阅读全文
摘要:晚测8 T1 方案数直接算肯定有重复的,考虑去除重复的方案,发现没有办法去重,但是再想一想,好像没有必要去重,因为对于一个有i个点的方案数fi,它一共会被算重i次,正好就是要求的,于是直接求就行了。 T2 正着做不太好做,我想了想,大概是因为要求最大值,而正着做答案是在减小的,与要求的
阅读全文
摘要:模拟17 T1 看到题的时候在想,如果我要是知道了最大值那不就好办了吗,于是就有了分治的做法,每次讨论跨过中点的答案贡献。 T2 注意是先约分再取完之后不再约分,考场上没注意这点挂了,然后约分什么的就挺简单了。 T3 可以处理出来对于每个位置,最多可以填到哪一个数,最少可以填到
阅读全文
摘要:晚测7 T1 打怪的顺序一定是顺序的,通过交换邻项可证,所以随便做一下就行。 T2 先转化成喝的次数,发现一定是最小的瓶子先被喝完,于是就可以按照次数排序,每次进行模拟,注意最后一轮需要判断。
阅读全文
摘要:模拟16 T1 感觉好像需要容斥但是发现有点难搞,所以就只算了全是问号的情况,正解的确是DP加容斥。 每一行中黑白块一定是各占一半或者是只有一种的,于是可以将它分为四种情况,黑在(左上,左下,右上,右下),但是好像有点繁琐,可以改成,黑在左侧,且黑白分界线单调不降,或者单调不升,黑在右侧,且黑白
阅读全文
摘要:晚测6 T1 看见109+方案数统计,不得不想到矩阵优化,但是看到n≤1000,发现好像跑不过??原因是因为我不知道循环矩阵。。。。wtcl了。 循环矩阵是矩阵的一种,每一行都是上一行移动一次得到的,也就是说,如果将下标从[0,n),标号,ai,j对应到第一行就是$a_
阅读全文
摘要:模拟15 T1 可以发现,直接建二分图然后跑匹配可以得到正确答案,但是时间复杂度可能有问题,不过鉴于它不是裸的二分图匹配并且远远跑不满,所以也能过。 T2 约瑟夫问题,总结一下约瑟夫问题的两种形式,一种是m特别大,n小一点,只需要从最后一轮开始模拟往回加即可。另一种是n特别大的,然后我们
阅读全文
摘要:T1 发现每条边实际上只被操作一次一定最优,所以dfs一遍,对于每个点,它的子树最多有一条边上传给它的父节点,还取决与这条边能不能传,贪心处理一下。 T2 可以离线下来然后从右往左扫描,左边的答案预处理出来,右边的答案用单调栈维护。 其实还可以用一种叫做线段树维护单调栈的东西,大概就是将up
阅读全文
摘要:T1 不难看出这个排列遍历了整棵树,于是所有边权和一定是答案的一个下界,然后随便构造一下就能发现可以走出所有边权和,真的是想怎么构造就能怎么构造 T2 题目比较神,考场上只会暴力模拟。 发现对原数组修改不大好搞,于是处理出它的逆数组,令pos[a[i]]=i,然后观察性质,得到我们只能在pos数组上
阅读全文
摘要:T1 列个式子然后合并一下就可 T2 贪心,考虑增加的贡献,然后有决策包容性,即删去这个一定不劣。
阅读全文
摘要:T1 很显然的一个卡特兰数 T2 基环树,当时想到了建边但是发现这个有点难搞,因为可能会建出很多个环,想错主要是因为从点考虑了这个问题,这样考虑会很麻烦,应该从边的角度来考虑,因为每一条边都对应了一张卡牌,所以问题转化为翻转一些边使得每个点的入度不大于1,于是环的问题就解决了,如果有环,一定是基
阅读全文
摘要:T1 比较显然的约瑟夫环 考虑当前轮,设为第i轮死的人的编号是多少,应该为(i−1),这样可以O(n2)的从开头到现在更新编号,考虑N2的时间复杂度主要来自更新编号,但其实有用的只有一个,就是最后留下的那个,所以可以倒着推回去,可以倒着推的原因是这是一个环,可以以
阅读全文
摘要:T1 开始发现没有什么思路,模拟了几下发现只需要求一下gcd即可,然后需要特殊判掉几种情况。 T2 考场上没写出来,弄了一个假的单调性还以为它是对的然后就挂了。 一些看起来就比较假的东西还是不要写了吧。。 当时观察到DP式子中的fj+bj是定值,但是后来又感觉它没什么用,不过另一个式
阅读全文
摘要:T1 一道精妙的思维题,遇到这种画画柱状图也许帮助比较大。 首先考虑最优的情况怎么取,每次从最高的选两个然后再从次高的选一个这样一定不劣,所以就有了60分暴力,考虑怎么优化它,可以认为,从最高的拿出两个,将它理解为先从最高的拿出一个,变成最低的,然后从三堆里各取一个,这样变换的话最后结果显然会是$\
阅读全文
摘要:T1 仔细推导打表一发之后发现单个数的约数个数最多不会超过2000左右,于是直接记录每个数的约数然后直接做就行。 TIPS:实际上109以内约数个数最多的是735134400,约数个数为1344个。 T2 询问很多但是天数很少,少到可以用数组记录下来,于是直接预处理每天的然后做就行
阅读全文
摘要:T1 看名字就知道是跟卡特兰数有关系,于是我当时就打了一个dp暴力就跳了?并且我现在看不懂我的N2dp 了。 算卡特兰数的时候是记横坐标为放的左括号数量,纵坐标为放的右括号数量,那么合法的括号序列其实就意味着从(0,0)\(走到\)(n,n)并且不碰y=x+1这条直线的方案数,因为碰到
阅读全文
摘要:T1 一眼看上去不可做的样子,于是考虑暴力一点的写法,先想ai≤300的,可以开个桶,然后每次查询要找的数存不存在,正解可以对这个进行优化,仍旧是检查要找的数存不存在,但是由于值域比较大所以要分开找,那么假设模数为mod,可以将值域分为$[k\ mod,(k+1)mod\ )\(,于
阅读全文
![](https://img2018.cnblogs.com/blog/1646268/201907/1646268-20190701151456277-1502609418.jpg)