zoukankan      html  css  js  c++  java
  • 7.7模拟赛赛后总结

    7.7模拟赛赛后总结

    赛时历程

    ​ 早上八点十分,拿到题目然后浏览题目,感觉都没有直接的思路,应该是T2的暴力最好写,但是只有5分的样子。。

    ​ 先多想想T1吧。粗略的考虑了一下,感觉需要考虑一个区间交的时候的偏移量,然后针对两个区间相等的字符,已经存在的考虑如何存储一下它能够相等的位置,一开始想的是一个三元组之类的。然后发现不好处理啊,又思考了各种快速求交啥的乱七八糟的东西,画了两页的图什么的,结果最终除了"两区间字符相等那么已经存在的字符就会在两区间内的加减k*偏移量的位置都相等"这样的关键结论,啥都没有,然而我不太会用这个结论。两个小时打水漂,让我有点不知所措。

    ​ 十点,粗略的想了下T2,这种题一般都要把询问或者说贡献交给LCA来求,但是好像一下子也不好想,鬼使神差的,跳过了它,转过去考虑T3。

    ​ T3想着先考虑如何求出来一个固定点的二分图的数量,发现了公式,但是那个公式只有状态,是不带标号的,扩展到带标号上直观上去做乘法的话就是算多了,然后尝试容斥,也不能容斥掉这部分,接着我还搞了点歪门邪道尝试根据前两个点去算递推。结果是经过了一番演草与计算,还是1分没有。

    ​ 怎么办啊,又花了快两个小时,结果现在啥都没了,4页草稿纸白打。

    ​ 没办法了,想暴力吧,T1的暴力可以考虑建图,这样的话能够 (O(n^2)) 算出来,有个30分。

    ​ T2直观的搞,只有 (n^2logn) 暴力求LCA了。

    ​ 这个时候天真的我以为大家都一样难。

    赛后发现

    ​ 结果是和zyz拿了倒数,难的只有我俩。

    ​ 1 T1 其实非常简单,我还在考虑这个相等的状态怎么存储,实际上我在暴力建图的时候应该发现的,他们可以都存到一个可以共同到达的rot上,也就是最前面的位置,但我当时在最后时刻只想着暴力了(然而标程真的2分钟就能打出来)。

    ​ 2 T2 人均60-78,佛了,每次DFS把树扫一遍也挺直观啊?结果是这都没想到。

    ​ 3 T3 得用到那个式子,但确实是不能容斥,带标号的二分图计数有板子,生成函数多项式啥的。。

    技术总结

    ​ T1如同上边讲的,很快就能搞出来。

    ​ T2 的各种部分分都是那种,简简单单的小暴力,只是要点小转换,让答案体现在一个点是否作为LCA来做贡献。正解的话,需要较复杂的数据结构。实际上我比赛的时候从来没写出来过较大的数据结构。

    ​ T3 如同赛后发现所讲。有板子的。虽然这个二分图的边有三个状态,但大同小异。

  • 相关阅读:
    awesome-blazor
    SQlite+dapper操作
    HashMap和HashTable的区别
    Linux常见命令大全
    多态的典型例题
    Hbase的安装及配置
    利用线程和管道的方式从客户端向服务的进行传送照片
    对TreeSet中的元素"HashSet"、"ArrayList"、"TreeMap"、"HashMap"、"TreeSet"、"LinkedList"进行升序 * 使用静态内部类实现
    对TreeSet中的元素"HashSet"、"ArrayList"、"TreeMap"、"HashMap"、"TreeSet"、"LinkedList"进行升序 *使用匿名内部类实现
    使用TreeSet和Comparator,写TreeSetTest1 要求:对TreeSet中的元素"HashSet"、"ArrayList"、"TreeMap"、 "HashMap"、"TreeSet"、"LinkedList"进行升序和倒序排列
  • 原文地址:https://www.cnblogs.com/mikuo/p/14984018.html
Copyright © 2011-2022 走看看