摘要: 以前做这题的时候没啥思路。该多练练找性质的题了。尤其这个性质还这么显然。 考虑环的情况:如果把每一个装备的两个性质连边,任何一个环上的所有点都能取到。 应该不难理解吧。进一步可以发现,从这个环往外扩展,整个联通块都能被取到。 所以只剩下树的情况了。我们惊喜地发现边变少了,可以用二分图做了。 其实可以 阅读全文
posted @ 2020-10-20 09:09 yugyppah656 阅读(131) 评论(0) 推荐(0)
摘要: mengbier学长的一道好题。看了提示才做出来。 首先发现的$(a_i,b_i)$的顺序对答案没有影响。考虑把b序列从1到n固定,依次把a序列的$1..n$分配给b。假如当前扫到了$i$,分情况讨论分在左边还是右边,我们可以把分在右边的数看成是“游离的”,也就是位置可以随便换,需要的时候再取出来。 阅读全文
posted @ 2020-10-15 09:42 yugyppah656 阅读(214) 评论(1) 推荐(1)
摘要: 普通平衡树板子 访问空指针会出错,我用了一个nil代替他。(c++是谁设计的我还得把结构体定义在外面真难受) #include<bits/stdc++.h> using namespace std; #define forg(i,x) for(rint i=fir[x];i;i=nxt[i]) #d 阅读全文
posted @ 2020-09-16 21:02 yugyppah656 阅读(299) 评论(0) 推荐(0)
摘要: 貌似我这个做法就是用了队列,无脑一点。 首先分析一下题目性质。如果$x$是打完饭的人当中排队最靠后的,那么1到x-8这些人肯定都打完饭了。定义状态$f_{i,j,k}$表示标号最大的打到饭的是$i$(有点拗口),最后一个打饭的是$i-k$,$k$的范围是0到7,$i-1$到$i-7$的状态是$j$, 阅读全文
posted @ 2020-09-15 12:08 yugyppah656 阅读(133) 评论(0) 推荐(0)
摘要: 匈牙利算法是一种精妙的算法,我一开始都不敢相信他是对的。 先来看定义: 匹配 匹配是一个边集,其中任意两条边都没有公共端点。 最大匹配 顾名思义,包含边数最多的匹配 交错路 匹配边和非匹配边依次出现的一条路 增广路 从非匹配边出发,以非匹配边结束的交错路(增广路长度一定是奇数) 感觉好奇怪啊 匈牙利 阅读全文
posted @ 2020-08-12 06:09 yugyppah656 阅读(287) 评论(0) 推荐(0)
摘要: 扔结论:若 \(x,y\) 都是字符串$S$的整周期(长度的约数),那么 \(\gcd(x,y)\) 也是$S$的整周期。 也就是说,最小整周期是任意整周期的约数。 证明只需要用到一点数论。 设 \(d=\gcd(x,y),x=da,y=db\),显然$\gcd(a,b)=1$。把这个串画在数轴上从 阅读全文
posted @ 2020-05-23 21:58 yugyppah656 阅读(78) 评论(0) 推荐(0)
摘要: 这题做的我怀疑人生。。这题应该属于看起来简单,做起来费劲那种类型的。 介绍三种做法,复杂度各不相同, \(O(n^5)\) \(O(n^4)\) 到 \(O(n^3)\) 都有(五次方的好像是一个新做法) 题意:给出$n$行$m$列的矩阵,以左上角为起点,以右下角为终点,找到两条不相交路径,经过的权 阅读全文
posted @ 2020-05-23 21:56 yugyppah656 阅读(141) 评论(0) 推荐(1)