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)

  • 相关阅读:
    Python 42 mysql用户管理 、pymysql模块
    Python 41 多表查询 和 子查询
    Python 41 完整查询语句 和 一堆关键字
    Python 40 数据库-外键约束 、多对一与多对多的处理
    Python 40 数据库-约束
    Python 38 注册和修改密码
    eas之关于编码规则
    eas之界面之间传递参数
    eas之获取集合
    eas之单据删除代码
  • 原文地址:https://www.cnblogs.com/Romeolong/p/10179550.html
Copyright © 2011-2022 走看看