【老年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右括号具体每个位置多少个(那样子复杂度太高),而只记录“会不会有”,并且在转移的时候暴力枚举怎么匹配,来回答之前留下的承诺。