zoukankan      html  css  js  c++  java
  • 7.25 NOIP模拟8

    这次考试前面状态还行,后两个小时真是一言难尽,打了个T3的n^2暴力就懵逼了,不知道怎么优化。

    T1.匹配

      看了一边题发现不太懂(这不是考试的难度啊),然后水完T2后回来5分钟水过,非常愉快的一道题。

      一开始想打kmp,然后发现kmp好像忘的差不多了,就YY出题人应该不会丧心病狂到卡hash,然后就打上去了。

    T2.回家

      一个非常裸的tarjan,疯狂码完后想了想怎么求一条链上的割点数目,一开始以为dfs一下就行,手模几个样例全过,然后就扔了看T3。

      打完T3暴力回来造了个点,hack掉了!大概还有半个小时结束,吓得我dfs求了一下每个点的爹,从n暴力上升到1,稳稳A掉。

    T3.寿司

      大概码完前两题还有2.5h,然后就盯着它陷入了沉思,YY了很久也没有想出低于n^2的做法,关键是,我n^2打的是贪心。。。然后稳稳的WA成5分。最后两个小时如果不算T2的改正,实际得分只有5。

      正解就是对n^2的优化,首先对于断开环形成的某一个序列,最优决策为将其中一种颜色移到两边(显然),并且从一个分界点开始,左边的移向最左,右边的i向最右。然后是一个非常神奇的性质,这个分界点的位置是确定的!分界点一定处于将另一种颜色均分的位置。因此我们可以二分这个位置,总复杂度O(Tnlogn),对该题数据可过。

      事实上,我们可以发现分界点的位置是有单调性的,因此在移动断开环的位置时,只需将分界点指针沿相同方向移动即可,总复杂度O(Tn).

  • 相关阅读:
    elasticsearch 5.x 系列之七 基于索引别名的零停机升级服务
    Linux 查看系统硬件信息(实例详解)
    linux grep命令详解
    Boot loader: Grub进阶(转)
    Boot loader: Grub入门(转)
    内核模块管理(转)
    Centos启动流程(转)
    Linux 内核启动流程(转)
    程序的运行顺序(转)
    查询进程打开的文件(转)
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/11247000.html
Copyright © 2011-2022 走看看