zoukankan      html  css  js  c++  java
  • 随机题目小结

    prob1(from opentrains 10375 B):

    你手里有一篇文章以字符串形式存储,该文章仅包含ASCII码值在32-126之间的字符

    这篇文章被分成了若干页,但是页码被打乱了(即当前手里的所有书页不是按照原文顺序排列的)

    同时对于原文中的每个非空白字符(空白字符包括空格和回车)

    它有1%的概率变为'#',1%概率变为空格,1%概率会消失,97%概率保持不变

    先给你原文(没有发生变化并且顺序正确没有按页分隔的原文)

    现在按照手里的页码,把每页的内容输入给你(这里的内容会根据概率发生变化或者不变)

    输入中不同页之间,原文和输入的第一页之间,会用单独“---###---###---###---###---###---###---###---###---###---###---###---###---”分割

    保证页码数量不少于3不超过1000,且出最后一页外,每页内容不少于30行,不超过80行

    最后一页不少于5行,且每页文章的每一行都不少于70个字符

    请输出,输入的每一页都对应原文的哪一页

    solution:

    先处理出原文,和输入的每一页

    然后O(n^2)枚举,i枚举原文的第几页,j枚举输入的第几页

    然后对比前K个字符求一个最长子序列,如果长度超过80基本可以认为第j页就是原文第i页了

    复杂度O(n^2*k),k取100即可

    其他solution:哈希也可以,具体思路自己思考

    prob2(from opentrains 10375 J):

    n点m边的无向图,边都是随机出来的,无重边和自环

    q个询问,每次问(u,v)最短距离,不可达输出1

    所有询问也是随机出来的,保证没有重复

    n<=1e5, m <= 3e5, q <= 1e4 时间限制6s

    solution:

    随机无向图中,m/n越大(我猜的,也可能是m/(n*n)越大,或者其他),所有点对的平均距离就越小

    自己造一组数据发现nm都最大情况下,基本没有点对距离超过10

    所以考虑双向搜索,极限数据下平均每个点连出去6个点,双向搜索平均复杂度大概就是O(6**(10/2))

    当然n小一点会导致每个点连出去的点更多,但同时点对之间的平均距离也会减小,所以可以通过

    prob2(from opentrains 10377 I):

    1e7个元素,5e7个操作

    所有元素初始值为(2**31-1)

    每个操作(i, x)形式给出,表示要将第i个元素替换为x

    你需要得到ans_j,表示第j次操作后的全局最小值

    输出sum(ans_j * 10099**j)

    由于操作过多,所以给你n元素数和m操作数后,会输入随机函数需要的几个参数

    然后所有操作的两个参数都是随机函数获得

    solution:

    有新的位置元素大小<最小值,最小值修改为这个值

    最小值所在的位置,元素发生变化,O(n)重新找

    上面一种O(1),下面O(n)

    随机情况下下面一种情况发生次数大概是m/n

    所以总复杂度O(m)

  • 相关阅读:
    查看本机安装了哪些.Net Framework版本的方法
    tomcat启动超时, Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds...
    设置PL/SQL Developer 字符集
    JDK安装与环境变量配置
    function 与 => 的区别
    如何使用tomcat,使用域名直接访问javaweb项目首页
    Spring整合Struts2
    Oracle to_char函数的使用方法
    PLSQL 误删表恢复操作
    Python可视化动态图表,基于Python环境,使用jupyter notebook编辑ipynb文件,基于pyecharts生成Sankey的桑基图HTML制作
  • 原文地址:https://www.cnblogs.com/ytytzzz/p/10932632.html
Copyright © 2011-2022 走看看