a.
题目类型:2-sat
题目⼤意:给出若干个变量,每个变量有些可选的赋值。
现存在若干限制,每个限制为变量与变量赋值间的关
系。问是否存在⼀一个方案,满足所有限制。
题目解法:
对于每个变量的每个赋值,可引入⼀一布尔命题,表示该变量在最终方案中的赋值与该备选赋值的大小关系。
随后⽤用2-sat问题的算法解决即可。
题目难点:
将问题转化为2-sat模型。
注意细节:
除了题目中的两种限制外,任意设计某两个变量四则运算的限制都可以借此实现。
b.
题目类型:二分答案,数位dp,ac自动机
题目大意:询问自然数序列去掉包含某些子串的数字后,第i个数字是多少。
题目解法:
二分答案,并检验。假设需要检验的数是x,我们希望知道x在该序列中排行多少。对此,可使⽤用数位dp的方法枚举并统计。统计时需要使⽤用ac自动机进⾏行完成。
注意细节:
注意int与long long的转化(如二分时)。
c.
题目类型:几何,单调栈
题目⼤大意:给一个数轴与一些垂直于数轴的线段,现询问在某点上的最大⾓角度。
题目解法:
将所有询问按坐标排序。易知能看见的线段斜率一定是单调的,因此维护一个两个关于斜率的单调栈(一个是左边能看见的线段,一个是右边能看见的线段)。
注意细节:
浮点数精度的处理控制