zoukankan      html  css  js  c++  java
  • 省选模拟29

    A.

      题目中给出了奇怪的k个点,满足删掉这k个点之后无环。

      那么,这k个点内部一定存在拓扑序,其余的点内部一定也存在拓扑序。

      可以发现,只要删掉原图中所有的三元环就可以满足条件。

      所以说可以发现,对于剩余的点,必然在另外k个点的拓扑序中存在分界点,满足分界点之前都从k个点连向这个点,后面相反。

      那么只要分别求出来两边的拓扑序简单dp即可。

    B.

      考虑每一对相同的子串的贡献,那么只要一个串包含了这一对子串并且前缀是一对子串之一,那么就是就有1的贡献。

      所以直接建出来SAM,找出所有相同的子串,简单维护即可。

    C.

      首先操作顺序不影响结果。

      不难发现,对于一个位置操作,对于后面造成的影响是下一个位置+1,前面第一个0变成1,第一个0后面的数-1,自己位置-1。

      那么可以发现0的位置变化只有可能是向前移动1或者去掉一个0,这个东西简单维护就行了。

      比较好的做法是用一个栈来维护,然而我考场打的恶心了被卡常,虽然我存数组用的char爆了。

  • 相关阅读:
    JS中的this
    VS下遇到未能加载文件或程序集 错误
    观察者模式实现INotifyPropertyChanged
    看书不仔细的下场
    Android 解析XML
    杂想
    Android 对话框用法
    Android之AlertDialog.Builder详解
    Android:开机自启动并接收推送消息
    Clojure:通过ZeroMQ推送消息
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12354389.html
Copyright © 2011-2022 走看看