2020.01.18【NOIP提高组】模拟A 组总结

估分:100+0+100=200

实际:50+0+70=120

T1:3856. 【NOIP2014八校联考第3场第1试10.4】规避(path)

对于在凸多边形上的点,一定是绕着多边形的边走最优,对于两个相邻的节点连上边,之后,对于两个多边形上的点,判断这条线段是否与另一个多边形相交,方法是枚举异于两个点所在多边形的多边形的两个不相邻节点,再求出两条线段所在直线的解析式,判断交点是否在两条线段上即可,注意判相交时,不能用“直线上方和下方都有同一个多边形的点经过”,因为有平行于x轴的直线这种情况,同时这种情况也要特判一下。

考试时用了“直线上方和下方都有同一个多边形的点经过”,而少了50分。

T2:3857. 【NOIP2014八校联考第3场第1试10.4】反抗希碧拉系统续

构建自动机。

一个元素向后面一个元素连一条有向边,对于“+”就相当于一个元素中的最后一个字符又重新走到开头字符,那么就相当于重新走这些元素一遍,那么就从最后一个元素向括号内第一个元素连一条有向边。

那么这个自动机就构造好了。

之后我们考虑如何求方案数。

设f[i][S]表示构造的序列长度为i,可能结尾的元素二进制压缩后状态为S的方案数,设a[S][S']表示在状态S转移到状态S'的贡献。

对于a的求法,首先可以枚举状态S,然后枚举一个字符c表示接下来要添加的字符为c,再枚举转态S中每一个所选的元素,并判断,如果这个元素所能到达的元素中能有字符c,那么a[S][S']++。

接下来就有了转移方程:

f[i][S]=f[i-1][S']*a[S'][S]

时间复杂度O(n*2^10)。

考虑优化方程,注意到每次我们做的事情是一样的,那么容易想到用矩阵乘法优化方程。

最后答案是sum{f[m][S]}其中S只需要包含n这个元素。

T3:5042. 【NOI2017模拟4.4】最小直径

对于每个点我们求出其“树心”,这个定义树心是到树上最远距离最小的节点,那么所有的树心连成一个菊花图就是最优解。

同时,这个菊花图的中心是最大的到树上最远点的“树心”,直接构造连边找直径即可。注意对最远距离中父亲节点以上的点。

考试时对于父亲节点以上的点的最长链求错了,不能用边权和减去子树边权和,这里要多加注意。

总结:

注意细节。

注意思维严谨。

继续加油。

你可能感兴趣的:(总结,总结,总结)