随笔分类 - OJ -- Loj
摘要:【LOJ 2162】【POI2011】Garbage(欧拉回路) 题面 "LOJ" 题解 首先有一个比较显然的结论,对于不需要修改颜色的边可以直接删掉,对于需要修改的边保留。说白点就是每条边要被访问的次数可以直接模二。证明的话就是如果一条边被经过了两次,证明其连通了两侧的两个块,那么把这两次删掉,可
阅读全文
摘要:【LOJ 2507】[CEOI2011]Matching(KMP,树状数组) 题面 "LOJ" 题解 发现要做的是排名串的匹配。 然后我们考虑把它转成这个位置之前有多少个数小于当前这个数,这样子只要每个位置都对应相等那么一定是合法的。 然后就可以类似的预处理出一个数组,然后再类似
阅读全文
摘要:【LOJ 575】【LNR 2】不等关系(容斥,动态规划,分治FFT) 题面 "LOJ" 题解 一个暴力,设表示考虑完了前个位置,其中最后一个数在前面所有数中排名是第大,那么转移的时候枚举一下当前数是第几大,并且满足不等式的限制就可以了,然后拿前缀和优化一下就可
阅读全文
摘要:【LOJ 573】【LNR 2】单枪匹马(线段树) 题面 "LOJ" 题解 考虑拿线段树维护这个值,现在的问题就是左右怎么合并,那么就假设最右侧进来的那个分数是的形式,那么就可以维护一下每一个值的系数,就可以直接合并了。 ~~我代码又臭又长,还写得贼复杂~~ cpp inc
阅读全文
摘要:【LOJ 2687】Vim(动态规划) 题面 "LOJ" 题解 发现移动的路径一定是每次往后跳到下一个某个字符的位置,然后往回走若干步,删掉路径上的所有,然后继续执行这个操作。 这里稍微介绍一下线头,大概是把转移的路径画出来,最终要求能形成一个环,而每一个需要的位置代表一个点,
阅读全文
摘要:【LOJ 3146】[APIO2019]路灯(树套树) 题面 "LOJ" 题解 考场上因为某个没有判的情况导致我卡了左右,然后这题就只能匆匆了一个分暴力...... 考虑维护出每一个时刻的亮的灯的
阅读全文
摘要:【LOJ 3145】[APIO2019]桥梁(分块,并查集) 题面 "LOJ" 题解 因为某个没判的情况导致我自闭了很久的题目。。。 如果没有修改操作,可以克鲁斯卡尔重构树在线处理。或者按照边权排序离线并查集处理。 现在有修改操作,于是我们来分块。 我们对于
阅读全文
摘要:【LOJ 3144】[APIO2019]奇怪装置(数论) 题面 "LOJ" 题解 突然发现上有的题啦,赶快来做一做。 这题是窝考场上切了的题嗷。写完暴力之后再推了推就推出正解了。。。 考虑两个时刻,如果两个时刻的相等的话,考虑是一种什么样的情况。 $
阅读全文
摘要:【CTS2019】氪金手游(动态规划) 题面 "LOJ" "洛谷" 题解 首先不难发现整个图构成的结构是一棵树,如果这个东西是一个外向树的话,那么我们在意的只有这棵子树内的顺序关系,子树外的关系与这棵子树之间的限制无关。所以我们只需要强制根节点在其他儿子之前的就行了(你可以认为如果这次随机抽到了子树
阅读全文
摘要:【CTS2019】珍珠(生成函数) 题面 "LOJ" "洛谷" 题解 lun题可海星。 首先一个大暴力的是设表示当前考虑完了前个珍珠,集合中这些颜色的珍珠当前还有一个没有匹配。这个随便转移就行了。 然后发现并没有任何需要记录下确切的哪些颜色是奇数个,只需
阅读全文
摘要:【LOJ 6485】LJJ 学二项式定理(单位根反演) 题面 "LOJ" 题解 显然对于分开算答案。 这里以为例 $$\begin{aligned} Ans&=\frac{1}{4}a_0\sum_{i=0}^n [4|i]{n\choose i}s^i\\ &=\
阅读全文
摘要:【LOJ 3097】[SNOI2019]通信(费用流) 题面 "LOJ" 题解 暴力就直接连条边。 然后分治/主席树优化连边就行了。 ~~抄zsy代码,zsy代码是真的短~~ cpp include include include using namespace std; defin
阅读全文
摘要:【LOJ 3096】[SNOI2019]数论 题面 "LOJ" 题解 考虑枚举一个,然后考虑有多少个合法的。 首先这个数可以写成的形式,那么它模的值成环。 所以我们预处理每个环内有多少个合法的,再把按照访问顺序记录一下,那么对于每一个就可以直接算答
阅读全文
摘要:【LOJ 3095】[SNOI2019]字符串(后缀数组) 题面 "LOJ" 题解 首先画图看看如何比较两个串的大小,发现这个东西等价于求两个相邻的后缀的。 一个做法是求出,然后就可以很容易的判断两个位置的大小了。 然而实际上相邻两个后缀的转移可以很容易的从前一个得到,所
阅读全文
摘要:【LOJ 2402】[THUPC2017]天天爱射击(整体二分) 题面 "LOJ" 题解 显然对于每块木板可以二分被打烂的时间。 那么直接上整体二分处理就行了。 cpp include include include include include include include using nam
阅读全文
摘要:[ZJOI2019]线段树(线段树) 题面 "洛谷" 题解 首先问题等价于前面每次操作都可能进行修改或者不修改,求所有情况下有标记点的个数。 考虑依次修改操作会产生的影响,把线段树节点进行分类。 这个点和以及其父亲都和修改区间无交:显然这个点的标记不会被修改。 这个点和修改区间无交但父亲和修改区间有
阅读全文
摘要:【LOJ6036】编码(2 sat) 题面 "LOJ" 题解 很显然的一个暴力: 枚举每个串中的 是什么,然后把和它有前缀关系的串全部给找出来,不合法的连边处理一下,那么直接跑就做完了。 现在的问题就在与不合法的数量可能会很多,所以需要优化这个连边的过程。 显然前缀关系和树
阅读全文
摘要:THUSC2017题解 题目都是在LOJ上交的。 chocolate "LOJ 2977巧克力" 这题看着就让人想起了百度之星复赛的,就是 "这题" 。 因为种类的个数很多,所以把每个种类随意一个的权值做一个映射,这样子随机若干次的正确率就会很高。 接下来考虑如何计
阅读全文
摘要:【LOJ 2542】[PKUWC2018]随机游走(min max容斥,动态规划) 题面 "LOJ" 题解 很明显,要求的东西可以很容易的进行容斥,那么转为求集合的。 那么怎么求解每个集合的呢。 显然以起点为根节点,如果点集中一个点在另外一个点的子树内,显然不需
阅读全文