天天看点

10.19刷题记录受欢迎的牛 HAOI2006推销员 NOIp普及组 2015 T4魔法阵 NOIp 普及组 2016 T4

受欢迎的牛 HAOI2006

Tarjan找强连通分量 (把每个强连通分量缩成一个点之后求出度为0的分量中 点的个数 因为想一下可以发现出度为0的牛就是明星奶牛 注意出度为0的分量应该只有一个 否则两个之间互相不喜欢 就不是大家都喜欢的牛了)

推销员 NOIp普及组 2015 T4

方法比较奇怪(?)大概就是先找到疲劳值最高的那个一个点 之后再用两个堆分别维护左右的点 每次加入左边和右边中的最大值。(其中的一个堆 也就是左边的点 因为不需要考虑距离带来的疲劳值就可以直接使用优先队列了)

这种思想很妙的 把问题变成找左右中最小的那个。

魔法阵 NOIp 普及组 2016 T4

这个是用类似于桶排序的方法保存数轴上每个点出现的次数(对 就是把所有数想象成在一个数轴上)然后可以用他给的式子导出Xa Xb Xc Xd的关系式 从1到n/9枚举 c和d的距离len即可 (内部要分别枚举Xd的各种值和Xa的各种值来分别求出A[a]B[b]C[c]D[d])等等。老师说要用前缀和 但我没看出来什么地方是前缀和了。

表达式求值

一道大水题 没啥可说的 好像是NOIp2013普及组的一道题吧。