07 2021 档案

摘要:传送门 就是求极长上升子序列的方案数,然而写了一下午加一晚上…… 记着什么时候再打一遍这个板子,顺便把这题做了…… 其实和God Knows类似,但之前线段树维护单调栈的板子没选好,可迁移性不高,现在回来填坑了 首先可以发现可以给每个点挂载一个方案数信息,就可以DP了 考虑如何优化,发现能产生贡献的 阅读全文
posted @ 2021-07-29 21:29 Administrator-09 阅读(24) 评论(0) 推荐(0) 编辑
摘要:传送门 名字奇奇怪怪的 容易发现每种颜色产生贡献的最小可接受困难程度就是所有这种颜色的点到源点路径上边权最大值的最小值 所以可以对每种颜色预处理出这个最小值,魔改下spfa就行 然后可以前缀和优化这里的查询,但后一部分l,r1e5的过不去 发现能处理出查询的l,r的su 阅读全文
posted @ 2021-07-29 21:08 Administrator-09 阅读(12) 评论(0) 推荐(0) 编辑
摘要:传送门 找规律真挺晕的……我画了两个图全画错了 但不康题解真想不到解法 发现一棵黑色节点为根的子树中每层白色节点个数为斐波那契数 然后题解很神仙的分出了两种情况 当两个点的lca是白色点时,可以枚举距离,则lca的深度范围可知,就可求了 当lca为黑色点时,可以n3分别枚举根节点深度,左儿子中白 阅读全文
posted @ 2021-07-28 19:42 Administrator-09 阅读(17) 评论(0) 推荐(0) 编辑
摘要:传送门 别人都A了就我部分分系列 经过一通乱试发现可以转化为求满足i+j=nij互质的数对(i,j),则ans+=n(i+j)2 这里有个奇奇怪怪的性质,考场上除了打表之外应该还真没有推出来的可能 对于一个n, 满足i+j=nij互质的数对$( 阅读全文
posted @ 2021-07-28 19:26 Administrator-09 阅读(14) 评论(0) 推荐(0) 编辑
摘要:传送门 第一问用二分栈做的,直接导致第二问思路僵化 其实所有可行方案数在跑DP的时候就可以顺带求出来 直接用个线段树优化一下就行了,注意当len相等的时候cnt的合并 做第二问的时候思路就很僵,总想着单独做第二问 但其实合并到第一问里更好做 于是那么多人都A了就我60pts就很自闭 Code: #i 阅读全文
posted @ 2021-07-28 19:08 Administrator-09 阅读(21) 评论(0) 推荐(0) 编辑
摘要:传送门 博客园突然打不开了,奇奇怪怪的…… 少写个等号没看出来 nm写反了没看出来 考完5min全拍出来了 手残属性加持 不对拍等于爆零 yysy,我连卢卡斯定理的存在都忘了…… 发现要让一大堆皇后能互相攻击,它们貌似只能在同一条直线上 然后发现皇后数量较少的时候好像有特例 所以特判即可 $O(n) 阅读全文
posted @ 2021-07-28 19:02 Administrator-09 阅读(20) 评论(0) 推荐(0) 编辑
摘要:传送门 考试的时候只来得及糊了个n4的暴力,~~结果考完发现n2n4还好写~~ 题意就是就是要求把一堆字符串的前后缀拼起来之后在原串中出现了多少次 然而前后缀可以有很多,再枚举组合就炸没了 先考虑n2 写法: 可以先预处理出所有前后缀,分别扔到map里 枚举原串中的每一个位置作 阅读全文
posted @ 2021-07-27 21:44 Administrator-09 阅读(15) 评论(0) 推荐(0) 编辑
摘要:传送门 多明显的斜率式然而我没有看出来 然而不管是我乱搞的思路还是正解的凸包思路都需要一个可持久化栈 考场上想到可持久化单调栈,但不会实现…… 其实单调栈不管是否可持久化都能倍增弹栈 但普通单调栈本来就O(n)的倍增弹栈也没啥用 可持久化单调栈/队列注意要倍增处理 这里涉及求凸包切线 如果是个普通单 阅读全文
posted @ 2021-07-27 06:36 Administrator-09 阅读(19) 评论(0) 推荐(0) 编辑
摘要:传送门 这篇题解拖得有点久了…… 这个「在经过的所有点上取最小点权」就很讨厌 暴力的话就直接枚举这个最小点权在哪里取到 于是…… 类似这个题,要求树上路径中权值最小/最大的点/边参与计算,可以考虑将点权/边权排序后维护一个集合,按顺序向集合中加点/边,这样后加的点/边权值一定是当前最大/最小的,方便 阅读全文
posted @ 2021-07-27 06:30 Administrator-09 阅读(12) 评论(0) 推荐(0) 编辑
摘要:传送门 第一眼看貌似可以树剖,然而那个绝对值不知怎么维护 求最小连通块我只会k2 主席树貌似可以用来查询区间内与某个数差的绝对值的最小值? 确实,每次查大于等于该数的最小数和小于等于该数的最大数即可 至于具体实现,实际上可以转化为求一个区间内最左/右边的数 很容易写出一个线段树上$O(nlog 阅读全文
posted @ 2021-07-27 06:16 Administrator-09 阅读(13) 评论(0) 推荐(0) 编辑
摘要:传送门 考场上只会O(2nm)的大力状压…… 其实跟状压的例题几乎一模一样…………但还是没看出来 关键特征:每个按钮向上,下只能影响一层 也就是说一个格子只能被它上面一层/本层/下面一层点亮 而且最终每个格子都要被点亮 直接按层状压就好了,几乎就是例题的样子 至于正解复杂度,有个很显然的上 阅读全文
posted @ 2021-07-27 06:06 Administrator-09 阅读(15) 评论(0) 推荐(0) 编辑
摘要:传送门 如果不想让next_permutation()自动忽略重复元素,可以在比较函数里加个rk之类的东西使它们不同(next_permutation()不用等于号) 关于第一问:貌似也是一个挺常见的思路 题目要求满足「在位置i之前比val[i]大的数严格小于k[i]个的序列」的个数 考 阅读全文
posted @ 2021-07-26 21:00 Administrator-09 阅读(15) 评论(0) 推荐(1) 编辑
摘要:传送门 此题高度恶心,极其卡细节,最后研究题解一个多小时才写对,值得什么时候再复做一下以自虐 这题貌似优先队列也可以做, 二元组维护空区间,再维护两个数组记录每个位置所对应的(如果有)向左和向右的两个二元组编号 开个bool数组作为失效标记就好了 先留坑,有空回来写 说下正解写法吧 l,r什么的 阅读全文
posted @ 2021-07-25 21:34 Administrator-09 阅读(15) 评论(0) 推荐(0) 编辑
摘要:传送门 写出来n2就有81pts…… n2的话枚举最后成为限制的是哪两个矩形,利用前缀和和二分n3n2就行了 这题最无脑直接贪心的方法会有后效性 但实际上正解好像就是处理这类问题的一大套路 在两个维度上贪心会有后效性,那选一维枚举,另一维贪心就好了 想了很久也没有想出如何维护$b_ 阅读全文
posted @ 2021-07-23 09:43 Administrator-09 阅读(12) 评论(0) 推荐(0) 编辑
摘要:传送门 感觉和这题很像,但是分的时间少了没来的及细想 而且连n2暴力都写挂了……分配的时间太少了没来得及跑对拍 第一思路是按喜欢的情况分为四类,然后枚举两人都喜欢的选多少个 这样直接写就是n2logn的 这类问题的处理方法就是考虑如何能每次不重新构建情况,而是从上一次的最优情况转移过来, 阅读全文
posted @ 2021-07-23 09:35 Administrator-09 阅读(12) 评论(0) 推荐(0) 编辑
摘要:传送门 这题考场上居然调出来了没炸细节…… 第一思路是链表,然而链表上没法二分所以是n2的 要不是数据范围很大就可以用线段树了 考虑离散化,但离散化完两个不连续的位置可能会被离散得连续了 所以把每个l1,l,r,r+1全扔进去离散化,同时注意把1也扔进去就行了 我打的是全0/1和异 阅读全文
posted @ 2021-07-23 08:46 Administrator-09 阅读(12) 评论(0) 推荐(0) 编辑
摘要:传送门 这题主要的难点在于题意的转化 直接理解是要求是否存在一种方案,使i,j都能存活下来 但这样需要遍历所有可能的方案 发现n很小,我们可以n2的扫一遍所有可能的苹果对 那问题就可以转化为check两个苹果能否共存 如果我已经知道了哪些苹果必须活下来 那check方案的时候就可以判不合法了 阅读全文
posted @ 2021-07-23 08:36 Administrator-09 阅读(19) 评论(0) 推荐(0) 编辑
摘要:传送门 考场上写的记忆化不够快……和暴力一个分 如果题面里有提到类似「从点1出发」的字样,特别注意点1根本就没有连边的情况 这题写记忆化的时候是想搜出所有可能的组合, 那么对于一个点u,剩余深度为d时的可能后缀数是一定的,可以记录下来 那就开个vector记一下,访问完子节点可以sort+uniqu 阅读全文
posted @ 2021-07-20 12:11 Administrator-09 阅读(22) 评论(0) 推荐(0) 编辑
摘要:传送门 考场上把这题恶心的读入写完,把高斯消元的板子打完,觉得未知数大于方程个数没法解就没交…… 事实上直接交上去有75pts,血亏 其实高斯消元有个性质:即使出现不合法情况,其解出的结果也一定是一组合法解。这个性质用在类似这题可以骗到不少分, 因为这题数据保证有解,所以解出来每种元素的焓可能是错的 阅读全文
posted @ 2021-07-19 14:28 Administrator-09 阅读(29) 评论(1) 推荐(0) 编辑
摘要:传送门 一直觉得有点后效性什么的,也不知道怎么写 这题什么时候再康一遍,第一次见这个样子的树形DP,是个树上带不定权边的DP(??? 这里能树形DP的原因好像是在这里所有子节点的状态都能表示出来 还有这里最小翻转数量可以转化为每个点翻转边的度数就挺神奇的,可以直接处理掉那几个麻烦的分类讨论 这题成链 阅读全文
posted @ 2021-07-19 14:12 Administrator-09 阅读(25) 评论(0) 推荐(0) 编辑
摘要:传送门 考场上只会爆搜……觉得重复状态其实有很多但不知道怎么记忆化,结果…… 对于类似这样n不算太小但只有二三十,而重复状态极多的题其实也是可以跑状压/记搜的,状态可以开map存 然后就是爆搜,就没什么了…… 这题k=n1其实有特解……白优化了半天hash 考虑k=n1其实就是有一个点可 阅读全文
posted @ 2021-07-19 13:51 Administrator-09 阅读(23) 评论(0) 推荐(0) 编辑
摘要:传送门 这里AC解法因为手残 tag2[min(r+l, n+1)][min(c+l+1, n+1)]+=s; 写成 tag2[min(r+l, n+1)][c+l+1]+=s; 惨遭RE,以后注意查边界,还有数组能开下的话尽量开两倍 跑对拍一定要跑几组极限数据,看看会不会RE什么的 发现q比较大, 阅读全文
posted @ 2021-07-19 12:03 Administrator-09 阅读(9) 评论(0) 推荐(0) 编辑
摘要:传送门 这整场都不会……这题想二分不会check 其实check很好写,考虑一个mid的实际意义 即为check在不靠近每个star及边界mid距离内的前提下,能不能到达(n,m) 其实可以转化一下,以每个star为圆心,mid为半径画圆 如果两个圆相交就在这两个圆之间连边 并查集维护连通性,如 阅读全文
posted @ 2021-07-16 18:01 Administrator-09 阅读(17) 评论(0) 推荐(0) 编辑
摘要:传送门 留坑:填欧拉函数的坑! 题意杀……题面里除了那个「line」还有哪里暗示要求的是直线了?! 如果是直线的话…… 考虑枚举斜率,则要求斜率式中a,b互质 但是对于一个斜率k=ba,怎么知道它的贡献呢? 我不会,但题解里面给出了求总贡献的柿子: \(\sum\limits_ 阅读全文
posted @ 2021-07-16 17:41 Administrator-09 阅读(13) 评论(0) 推荐(0) 编辑
摘要:传送门 根本就没想到DP,反倒把问题转化复杂了 考场暴力思路是在重复点之间连边,这样就把问题转化到了图上 要求删尽可能少的点使剩下的点之间没有边相连 但这个问题我不会处理……留个坑 其实可以DP 令dp[i][j]为考虑到位置i,已选的a最小值为j时最大能引爆的水晶个数 转移很麻烦,但是可以考虑 阅读全文
posted @ 2021-07-16 17:03 Administrator-09 阅读(13) 评论(0) 推荐(0) 编辑
摘要:传送门 这题真的啥也不会…… @Yubai赛时随手切了,Orz 留个坑,自动机啥也不会…… 这里其实有个很套路的DP柿子 dp[i][j]=dp[i1][j]+dp[i1][j1] 即为分别考虑位置i上的数选或不选所造成的贡献 但是这里还有个重复情况需要考虑 1 2 3 4 5 6 阅读全文
posted @ 2021-07-16 16:50 Administrator-09 阅读(19) 评论(0) 推荐(0) 编辑
摘要:传送门 dsu on tree的板子(以及另一个板子)忘光了,连函数名都忘了 强制在线的做法先留个坑, 这里其实可以离线(考场上并没有想到dsu on tree能搭配离线一起用) 那问题就是如何合并信息 我们需要统计小于给定深度的有多少种颜色 发现深度越小的节点存活时间越久 所以只需要统计对于每种颜 阅读全文
posted @ 2021-07-16 16:43 Administrator-09 阅读(13) 评论(0) 推荐(0) 编辑
摘要:传送门 这里有个线段树维护单调栈的神仙技巧 同机房dalao @Yubai的不同理解方式 yysy,我考场上连n2的暴力都没搞出来 这里实际上求的是最小权极大上升子序列 但这个跟题目几乎没什么直接联系,貌似只是因为极大上升子序列一定是符合题意的一组解 然后题里要求总权值最小,所以是最小权极大上升 阅读全文
posted @ 2021-07-16 16:33 Administrator-09 阅读(44) 评论(0) 推荐(0) 编辑
摘要:传送门 考场上三次迭代搞出一个O(nm)的做法拿了60pts 首先打表可知d(x)在且仅在x为完全平方数时为奇 于是问题被转化为求ij中完全平方数的个数 然而不会求,于是自闭 根据题解发现对于一个 ij=k2 一定有 i=pk12,j=pk22,$ 阅读全文
posted @ 2021-07-13 17:01 Administrator-09 阅读(20) 评论(0) 推荐(0) 编辑
摘要:传送门 不会二分图……于是考场上凭着对二分图残存的一点记忆认定它是个类似二分图最大匹配的dfs,然后不会写 状压有20pts 发现一个小事情,clock()函数巨慢,几乎一半的时间都给它了 所以随机化的while可以写成类似 while (cnt%100 || clock()<=1500000) 这 阅读全文
posted @ 2021-07-13 16:33 Administrator-09 阅读(16) 评论(0) 推荐(0) 编辑
摘要:传送门 感谢这题题面提醒我我工业的高精还不会打,先咕着(逃 看完题解之后发现的确不难但考场上就是想不出正解 总觉得是个矩阵快速幂,虽然明知道光输入的数组放矩阵里跑n3就炸上天了 有想过计算每个fi,0对结果的贡献,但觉得应该没这么麻烦,还觉得那样像计数dp,就没往那边想 其实因为每次都是 阅读全文
posted @ 2021-07-13 16:06 Administrator-09 阅读(12) 评论(0) 推荐(0) 编辑
摘要:传送门 好题 肝完这题感觉头巨痛 首先n1000的部分可以n2单调队列,有30pts 然后考场上魔改了下单调栈,让它能顺便维护出以1 i1为左端点的区间信息,又拿下op=1的30pts 其实这里第11、12个点的答案必定为0,但是没意识到 至于正解: 其实第一问 阅读全文
posted @ 2021-07-13 06:37 Administrator-09 阅读(11) 评论(0) 推荐(0) 编辑
摘要:传送门 考试的时候给这题分配的时间太少了…… 糊的暴力因为忽略了左移和加法优先级的问题爆零了 如果m2n输出1 1 否则答案即为 2nm+12n2nm 连乘取模性质 \(\prod\limits_i 阅读全文
posted @ 2021-07-13 06:28 Administrator-09 阅读(9) 评论(0) 推荐(0) 编辑
摘要:传送门 因为把(tl(p)+tr(p))>>1打成(tl(p)+tl(p))>>1氪了快两个小时都没调对 解法和这题类似,把可持久化01trie换成主席树即可 但是字母一定要打对…… Code: #include <bits/stdc++.h> using namespace std; #defin 阅读全文
posted @ 2021-07-13 05:59 Administrator-09 阅读(13) 评论(0) 推荐(0) 编辑
摘要:传送门 不得不说,真是好题,不管是在题目方面还是在恶心人方面都是 而且我又一次因为打错字母调了巨久 暴力基本没法写,还好puts -1有10pts 考场上我曾试图将序列分段,但边界几乎不会处理 正解极其神仙: 对每个位置构造两个二元组updownup中元素val表示枚举到位置i 阅读全文
posted @ 2021-07-12 21:45 Administrator-09 阅读(11) 评论(0) 推荐(0) 编辑
摘要:树状数组维护区间最值 有空测一下垃圾回收机制的时间开销 高精 https://www.luogu.com.cn/blog/froggy/qian-tan-gao-si-xiao-yuan-ta-zhan-zhi-band-matrix https://zhuanlan.zhihu.com/p/369 阅读全文
posted @ 2021-07-11 19:09 Administrator-09 阅读(2) 评论(0) 推荐(0) 编辑
摘要:传送门 赛时靠spfa求最长路骗了30pts spfa的时间复杂度是O(k|E|),不是O(k|N|)! dijkstra 时间复杂度O((n+m)logn) 特别注意这两个的复杂度都和边数密切相关 spfa的话按a值分层,按层建边即可 正解是个dp,考场上想到dp,但dp思路错了 令$ 阅读全文
posted @ 2021-07-11 18:58 Administrator-09 阅读(12) 评论(0) 推荐(0) 编辑
摘要:传送门 赛时用一个奇怪的方法过掉了 首先bi的有效范围是[0,k1] 发现不同的aibi会有很多重的 考虑把ai,然后由小到大排序 按顺序扫,如果某个ai已经可以被某个aj的倍数表示出来,那这个ai就无效化了 这个可以用埃氏筛实现 最后会剩下一 阅读全文
posted @ 2021-07-11 18:08 Administrator-09 阅读(24) 评论(0) 推荐(0) 编辑
摘要:以后我将Splay称为Dplay!@Yubai Splay: #include <bits/stdc++.h> using namespace std; #define INF 0x7fffffff #define N 100010 #define ll long long #define ld l 阅读全文
posted @ 2021-07-08 08:21 Administrator-09 阅读(16) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示