【老年acm选手】回光返照训练

Codeforces Round #803 (Div. 2)

题解:https://codeforces.com/blog/entry/104310

排名爆炸,状态需要回暖。

全是结论题,需要增强猜结论的能力。

大概就是,手玩几组,然后直接猜,再证明。 
A题:随便一个就行

B题:k=1的时候,是(n-1)/2(下取整)因为最后一个不能算

C题:正数负数<=2个的时候,零多于2个没有必要,所以现在只剩下6个数,枚举就行了

  不用精细化讨论!太麻烦

D题:交互题。结论:如果[l,r]中有奇数个满足l<=ai<=r,那么不动点在[l,r]中。因为[l,r]内的交换一定是成对的

  就可以二分了。

E题:考虑什么时候a能转换到b,就是max(ai-bi)<=s,首先从1开始换,换到n,当ai>bi时才有必要考虑。而对于多次交换,之前能换,现在肯定也能换。

  然后考虑每个数在b序列中能填的区间就好了

 

 

CCPC 长春

题解:

https://zhuanlan.zhihu.com/p/279287505

H:

二分图博弈,看起点是否在所有的最大匹配中。如果在,那么先手赢,否则后手赢。

判断方法:先跑一次dinic找最大匹配,删掉起点,再跑一次dinic

B:

权值线段树套区间平衡树

权值线段树进行二分,区间平衡树查询

没太懂。。

J:

题意:给定n,在x轴[0,n]范围内画半径不超过5的圆,圆心在x轴上,要求任意两个圆不相交(可以相切),且已有固定的k个圆,求满足条件的画法方案数。

题解:

另一个:https://www.programminghunter.com/article/56652130341/

主要思路

 

 详细说就是,这个是对未来承诺的期望型题目

S表示i+1~i+10位置是否有右括号(其实到i+9就行了),“有右括号”的含义是:有右括号,并且等待着i,i-1,...等位置出现一个左括号来匹配,而且可能会匹配多次(相当于多个右边界在同一个位置)

对于第i个位置,首先考虑这个位置放左括号,匹配一些右括号,由于每种半径最多一个,所以2^5种匹配右括号的情况,再看S中相应位置是否有右括号来判断能否转移。

至于转移到的状态,这个左括号匹配到的最远的右括号可以保留(之后i-1,i-2,可能会再匹配),其他的匹配位置都丢掉(i-1,i-2不可能再匹配了),然后,第i个位置也可能会有右括号

所以还要2^2四种情况枚举匹配到的最远端右括号保留情况和第i个位置右括号有无情况,还要注意,需要抛弃i+9位置,所以i+9位置不能有未匹配的右括号。

然后就可以转移了。

 

这个题利用了对未来承诺的思想,从而用线性来处理了较复杂的嵌套问题。

本题精髓是,不用记录i+1~i+9右括号具体每个位置多少个(那样子复杂度太高),而只记录“会不会有”,并且在转移的时候暴力枚举怎么匹配,来回答之前留下的承诺。

 

posted @ 2022-06-29 11:42  *Miracle*  阅读(128)  评论(0编辑  收藏  举报