zoukankan      html  css  js  c++  java
  • 题答练习

    (UOJ109)

    (Task 1)
    (Dijkstra)(Floyd)?
    (101)个点,一坨(0)就好了.

    (Task 2)
    (Floyd)(Bellman-Ford)?
    (99)个点,一条倒过来的链就好了,加一坨重边.

    (Task 3)
    (Task 1)

    (Task 4)
    (Floyd)(Dijkstra)?
    有点意思.
    由于可以有负权边,(Dijkstra)是指数的.
    搞成这样就行啦.

    (Task 5)
    (Task 2)

    (Task 6)
    现在不是最短路了.
    要染色.
    现在卡(DFS)?
    随一组可行的即可.

    (Task 7)
    (DFS)过?用二分图即可.


    (UOJ83)
    博主太菜只会(Task 1sim 5)
    这是卡排序题

    (Task 1)
    归并卡计数?一个(10000000)计数就没了.

    (Task 2)
    冒泡卡选择?
    很有意思.
    看到(T)(200W)相差不大,考虑卡常.
    冒泡的常数比选择小,但是每有一个逆序对复杂度(+3),而选择复杂度只(+2)
    因此我们不轻易加逆序对.
    先搞一个从(1sim n)的数列,发现(ngeq 1991)的时候冒泡就(GG)了.
    因此(n)定在(1990).
    然而我们卡不掉选择.
    考虑人肉二分,让他多几个逆序对.
    我们把最后一项拿出来,放到(1468)的后面(倒数第(521)项还是(522)项数不清楚)
    此时冒泡复杂度刚好为(T).

    (Task 3)
    归并卡快排?
    显然是卡复杂度.
    快排每次选中间,那么我们精心构造之后它就是(n^2)的.
    再次人肉二分发现(n=1984)时刚好卡掉快排.

    (Task 4)
    计数卡冒泡?
    考虑我们定下(n)之后,由于计数的复杂度是确定的(4117),因此我们可以直接计算(a_{max})
    那么我们人肉二分知道(n=1014),(a_{max}=26)的时候刚好卡掉.
    不要忘记(a)中还有(0).

    (Task 5)
    选择卡冒泡?
    (Task 4)差不多.
    考虑先建出和(Task 4)差不多的数据.
    (n)暂定(1014).
    然后我们模拟退火!
    每次随机将一个数的个数(+1),让另一个数的个数(-1)
    我是这样写的:假设我们选了(2)个数,个数分别是(x,y).
    我们随一个数(tin [1,frac{min(x,y)}{3}]),然后令(x=x+t,y=y-t)即可.
    然后经过微调发现(n=1015,max=25)时较优.
    最后退出来选择大约需要(536161).
    据说爬山也可以过.

    (Task 6)
    用猴子排序卡快排(QAQ)
    最不靠谱的排序卡最快的排序???
    不会告辞

    写完这两道题手都快断了(QAQ)

  • 相关阅读:
    【Unity】自定义编辑器窗口——拓展编辑器功能
    【Unity】AssetBundle的使用——打包/解包
    【Unity】使用Resources类管理资源
    【Unity】使用AssetDatabase编辑器资源管理
    【Unity】协程Coroutine及Yield常见用法
    【Unity】制作简易定时器(Timer)
    python3使用csv模块读写csv文件
    Python3使用csv模块csv.writer().writerow()保存csv文件,产生空行的问题
    MongoDB服务无法启动,发生服务特定错误:100
    ValueError: update only works with $ operators
  • 原文地址:https://www.cnblogs.com/Romeolong/p/10179550.html
Copyright © 2011-2022 走看看