10 2019 档案
摘要:"$[USACO08NOV]$玩具$Toys$" 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!!! 烦死啦!!!!! 三分加贪心。。。。 这一题的贪心是真的难写。。。 三分函数为$f(x)$表示购买$x$个玩具的最小总花费。 可以用一些奇奇怪怪的方法证明七为单峰函数。。。 然后三分$x$ 贪心先用慢洗
阅读全文
摘要:"$NOIP2017$逛公园" ~~就口胡一下,懒得写了~~ 记搜即可。 设$f[pos][k]$表示从$n$到$pos$的路径限制为$k$(含义为题面中的$K$) 建反图预处理出$n$到$i$的最短路$Dis_i$即可。 上面的$k$要满足$Dis_v+w\leq k+Dis_u$,化简后有:$f
阅读全文
摘要:~~有多少人跟我一样看成了滚回莫队的举个爪~~ 先放一道例题: "$JOIAT1219$歴史の研究" 题意:设$Cnt_i$为$l\sim r$这个区间$i$出现的次数,有$m$次询问,求$l\sim r$的$max\{Val_i Cnt_i\}$。 直接考虑莫队,因为要统计一种元素出现的个数。 我
阅读全文
摘要:"$TJOI$棋盘" 状压$DP$加矩阵优化。 关于这道题的出题人。。。 他当年应该被打死了吧。。。 题目中的第$1$行第$k$列指的是从$0$开始标号下的第$1$行第$k$列,也就是说,这一题存在第$0$行第$0$列! 搞什么不好,非得要搞题意理解。。。 设$f[i][j]$为第$i$行,状态为$
阅读全文
摘要:~~我不信还有人比这个全~~ 总共三种,大家最熟悉的$Kruskal$,$Prim$以及不那么熟悉的$Borůvka$。 时间复杂度:$Kruskal:\mathcal{O}(MlogM),Prim:\mathcal{O}(N^2),Borůvka:\mathcal{O}(MlogN)$ 堆优化$P
阅读全文
摘要:"$NOIP2008$双栈序列" 考虑什么情况无法成立,这样就可以知道那些数不能在同一个栈中出现。 建图跑二分图染色,$1$的在一个栈中,$0$的在一个栈中即可。 最后模拟就好了。 c++ include using namespace std; define int long long inlin
阅读全文
摘要:"$[SCOI2008]$奖励关" 考虑状压$DP$,显然设状态为$f[i][S]$表示所取集合为$S$,到第$i$轮时的期望。 然后写方程。。。 不对,有点难写。。。 仔细考虑一下,我们会发现实因为我们求的是期望,要知道一个状态从哪些状态转移过来。 但是这样设状态并不能方便的求出。 设$f[i][
阅读全文
摘要:"$[SDOI2009]Bill$的挑战" 观察数据范围,显然是状压。 但是如果你将$K$加进状态中,手推一下就会发现这里要用到容斥。 但我又不是讲容斥的是吧。。。 所以我们尝试不将$K$加入状态中,而是在最后枚举恰好含有$K$个元素的子集个数。 我们设$f[i][j]$表示对于所有集合$i$中的元
阅读全文
摘要:"$[HNOI/AHOI2018]$寻宝游戏" 思维好题。 将每一位领出来,组成$m$个长度为$n$的二进制数。 考虑将操作转化为$01$序列,$(\lor\to0,\land\to1)$。 观察之后发现要使得第$j$位运算结果是$1$则最后一个$\lor1$操作的位置一定要在$\land0$后面。
阅读全文
摘要:"毒瘤贪心题目。。。" 考虑一种贪心,尽可能的给前面的路段加速会更优,但手玩样例就会发现这样是错的。 考虑到如果公交在某处等待一个人到来,在这之前的加速就对之后无效了。 所以我们可以将其分段,在每一段的最前面使用加速器即可。 要维护每一段中的最优放置处的可放次数,可以用数据结构维护。 但是俺比较懒,
阅读全文
摘要:套路题。 "好像忘了放题目链接" 显然要拓扑排序。 但是正向不行(手玩样例可知),在尽可能满足限制的情况下,我们最好要先 做出 $1$再 做出 $2$。 考虑反向建图,找最大字典序即可,这要就保证了让小于$x$的尽量在$x$前面。
阅读全文
摘要:我觉得我还要补上带修莫队,树上莫队等等……(先咕着……) 分块:引用范围广,实现简洁(注意块的边界)一般为$\sqrt{n}$分块。 块中可维护很多东西,维护信息时从后往前处理。 例题: "$HNOI2010$弹飞绵羊" 但是这样仍然会被卡死,考虑对询问排序。如果是一般的排序,显然还是会导致被卡。
阅读全文
摘要:"$[HAIO2011]ProblemC$" 考虑无解的情况,实际上可以证明,仅在这种情况下会无解~~(然而我只会口胡……~~ 对于一开始给出的$m$个固定的人,记$Sum[i]$为编号$\geq i$的人的个数。 如果有$Sum[i] n i+1$,则一定无解。 此时我们容易考虑到$DP$,$f[
阅读全文
摘要:"链接君还是一如既往地不正经" 这什么毒瘤玩意儿…… 我们通过~~题解区~~发现这个要求就是小根堆的性质,考虑枚举树的大小,显然最小的为树根,考虑左右两棵子树的答案相乘即可。($l$,$r$分别表示左右子树的大小) $$ f[i]={i 1 \choose l} f[l] f[r] $$ 于是我写了
阅读全文
摘要:"一本正经的链接$SNOI2019$数论" ~~有环的东西真$TM$难调……~~ 暴力显然是跑一遍$T$,对每个数判断一下。 考虑转化研究对象,变为对于每一个$A[i]$有多少$x$满足$0 using namespace std; define int long long inline int r
阅读全文
摘要:基环树,又称环套树,顾名思义,为树上多一条边,$n$个节点$n$条边。 $First$无论啥题,你基环树总得找环,不找环你玩啥呢…… 我找到了三种方法找环,各有千秋,注释中有,就直接放上来了 c++ //https://www.cnblogs.com/akura/p/10838613.html in
阅读全文
摘要:$gcd$: 扩展欧几里得:求$ax+by=gcd(a,b)$的一组整数解。 费马小定理:$a^{p 1}\equiv 1\mod p$($p$为质数) 欧拉定理($gcd(a,n)\ne 1$):(無駄?) $$ a^b\equiv \left\{\begin{array}{ll} a^b & b
阅读全文
摘要:"今天不知道写什么当链接" 换根$DP+$基环树,思路不难,要考虑的东西很多,因为我直接在环上跑编号,所以细节更多。。。 "一篇很清晰的题解" c++ include using namespace std; inline int read() { int f=1,w=0;char x=0; whi
阅读全文