zoukankan      html  css  js  c++  java
  • arc120e 1d party

    某些题解能不能写的清楚一点啊。。

    首先容易发现一个性质:每个人肯定是全速走,发生一次碰撞以后拐弯去碰另一个。然后就得到了(O(nlog V))的做法。

    可是这没有arc的b格!还需要想线性做法。

    首先考虑不合法的情况。什么时候一个人往右走,一直碰不到右边的点?肯定右边的点也在往右走,右边的点的右边也在往右走,右边的点的右边的右边也在往右走,他右边的所有点都是往右走的。

    那我们强制1往右走,n往左走,就一定合法了。

    当然上面只是一些准备工作。有一个重要的想法,就是把拐弯看成穿透。

    现在问题变成了什么样呢?初始时刻给所有人规定一个方向,他一直朝这个方向走。每次A撞上B,如果B的另一边没有相遇,A就继续走,否则A停下。

    好像还是没法做?

    我们可以把这n个点分成若干RRRRRRRLLLLLL这样的段。考虑如何统计答案。对于段内,肯定是最后一个R和所有L相撞,第一个L和所有R相撞,最终只有最后一个R还在走,别的人都停了。

    (p)数组记录所有第一个L的位置,答案就是(maxfrac{ a_{p_i}-a_{p_{i-1}-1}}{2})

    又发现一个性质,不存在LLL,RRR这样的子串。于是我们切掉了arc的e题!

    代码

  • 相关阅读:
    Community Server(CS)是一个非常优秀的Asp.net开源软件
    乐在其中设计模式(C#)
    VSTO+WinForm+WebService+WCF+WPF示例
    系出名门 Android 系列文章索引
    DataTable 和List 相互转换
    C#异步TCP通讯类库FlyTcpFramework
    WCF+BizTalk开发系列
    精通MVC 3 框架
    我对架构的理解
    DataTable转换成IList
  • 原文地址:https://www.cnblogs.com/happyguy/p/14922678.html
Copyright © 2011-2022 走看看