zoukankan      html  css  js  c++  java
  • 没用算法颓废记录

    都是这辈子都用不到的算法,就当颓废了(

    线性规划与网络流的转化

    \((u,v,c_{uv},w_{uv})\) 表示流量上界,代价。

    \(b_u\) 表示流量需求,即流出减流入至多是 \(b_u\) (相当于连源点 or 汇点)

    费用流得到的结果是:(所以如果问题答案是后面的 min 形式就能做)

    \[-\min \left\{\sum_{u} b_{u} p_{u}+\sum_{u v} c_{u v} \max \left(0, p_{v}-p_{u}-w_{u v}\right)\right\} \]

    ZJOI2013 防守战线:

    \[\min p_{i}\left(C_{i}-C_{i+1}\right) \]

    \[p_{i+1}-p_{i} \geq 0 \]

    \[p_{R_{i}}-p_{L_{i}-1} \geq D_{i} \]

    \[\sum_{v} p_{v}\left(C_{v}-C_{v+1}\right)+\sum_{v} \infty \max \left(0, p_{v}-p_{v+1}\right)+\sum_{i} \infty \max \left(0, p_{L_{i}-1}-p_{R_{i}}+D_{i}\right) \]

    照着连边就行了。

    AGC 043 F :

    装盒一定是重量从小到大。将同一家店的珠宝按重量排序,设 \(X_{i,j}(0\le j\le K_i)\) 表示前 \(j\) 个重量取这么多个。

    \[\min\{\sum_{i,j}(\infty\max(X_{i,j}-X_{i,j+1},0)+\infty\max(X_{i,j+1}-X_{i,j}-C_{i,j},0)+P_{i,j}\max(X_{i,j+1}-X_{i,j},0)) \]

    \[+\sum_{u,v,w,j}\infty\max(X_{u,j}-X_{v,k},0)+\sum_i(\infty X_{i,0}+\infty\max(X_{i,0}-X_{i,k_i}+A,0))\} \]

    \(X_{i,0}\) 是无限制的点,可以看做:连向 \(X_{i,0}\) 的是连向 \(T\)\(X_{i,0}\) 连出的是 \(S\) 连出。跑最小费用流。

    发现答案式子是 \(\min(A\times flow - C)\)\(C\)\(A\) 为 0 的费用。

    那么和 CF1307G 一样搞二分斜率就好了。

    BEST 定理

    欧拉回路数量,没有起点:

    \[T_x\prod_{i}(\deg_i - 1) \]

    \(T_x\) 表示 x 为根的树形图数量。(就是原图的生成树数量)

    [UR#15]B

    析合树

    这篇博客越来越阴间了...

    CF1205F

    全局平衡二叉树

    以前学过的东西了。。大体思路是,把每一条重链建成一颗二叉树(相当于把 LCT splay形态固定下来),然后暴力跳 fa。

    保序回归

    (建议看论文。)

    点集 \(U\)\(L_p\) 均值 为 满足 \(\sum_{i\in U} w_i|y_i-k|\) 最小的 \(k\) (让一个集合取的值一样,代价最小。)

    求解一条链的保序回归问题可以贪心。

    如果 \(y_i > y_{i+1}\) 那么一定有 \(f_i = f_{i+1}\) ,贪心维护栈,不断合并相同值的段即可。

    整体二分的求解做法

    考虑一个新问题:假设要求 \(f_i\in[L,R]\)。固定 \(L,R\) ,每个点必须取 mid 或者取 mid+1,最小化代价。

    通过这个问题的最优解,把取 \(mid\) 的递归进 \([L,mid]\) ,取 \(mid+1\) 的递归进 \([mid,R]\) 继续求解。

    怎么解这个问题呢,相当于 有要求 \(f_i < f_j\) 时,\(f_i\)\(mid+1\)\(f_j\) 就不能取 \(mid\),可以转为最大权闭合子图问题。

    d1t3 魔法商店

    猜个不会证的结论

    \(A\) 中的某个元素换成另一个,如果还满足,权值就要满足一个大小关系。\(B\) 也同理。于是就变成了保序回归。

    [HNOI2019] 序列

    是第一种贪心做法的例题了。

    L2 问题的话,均值要取:\(\dfrac{\sum w_iy_i}{\sum w_i}\) (加权平均数)

    处理出左边和右边的单调栈。

    最后肯定是:修改的 \(x\) 与某段 \([L_0 ,R_0]\) 划成一段。

    如果知道 \(R_0\) 那么可以在左边的单调栈里二分 \(L_0\)

    \(R_0\) 套在外面二分,就可以了,两 log。

    单调栈可以预处理出来然后回退。

    数论函数相关

    【ULR #1】校验码

    多项式相关

    咕咕咕。不想学多项式

    单纯型法

    线性代数

    CF1540E

    设转移矩阵: \(A_{i,j} = j[j=i,j\in S_i]\)

    \(e_i\) 为只有第 \(i\) 项为 \(1\) 的列向量。

    想要求: \(\sum_{k\ge d_i} A^{k-d_i}e_ia_i\)


    A 有 \(n\) 个特征值,为 \(1\sim n\),设特征向量为 \(v_i\),(根据定义),\(Av_i = iv_i\)

    设能构造矩阵 \(c_{i,j}\) 满足 \(e_i = \sum c_{i,j}v_j\) (可以矩阵求逆得到)

    答案式子变成:

    \[\sum A^{k-d_i} \sum c_{i,j}v_ja_i \]

    \[\sum a_i \sum A^{k-d_i}v_{j}c_{i,j} \]

    \[\sum a_i \sum j^{k-d_i}v_{j}c_{i,j} \]

    (我们利用了特征值把一整个转移矩阵搞没了,变成了数,于是就好处理了。)

    由于查询是 \([l,r]\) :可以预处理每个 \(v_j\) 的前缀和,能得到 \(v_{j,[l,r]}\)

    维护 \(s_j = \sum a_i c_{i,j} j^{-d_i}\) ,由于要 \(k\ge d_i\) 才能统计进来,所以要开 \(n\) 个树状数组维护一下。

    [ULR #2] 跳蚤猜密码

    \(e_{i,j}\) 为单位元。

    使用 \(n^2+1\) 次询问:\(\det (A+e_{i,j}) = \det A + M_{i,j}\)\(M_{i,j}\)\((i,j)\) 位置的代数余子式(去掉 \(i\)\(j\) 列的 det \(\times (-1)^{i+j}\)

    伴随矩阵:\(A^{*} = \frac{1}{\det A}A^{-1}\),有定理:\((A^{*})_{i,j} = M_{j,i}\) 。于是可以求出 \(A^{-1}\)

    如何卡掉一次询问:

    不问 \(M_{1,1}\)

    \(\det(A^{*}) = (\det A)^{n-1}\)\(M_{1,1}\) 不为 0 时可以在 \((1,1)\) 处填入 \(0,1\) 求 det 来解出 \(M_{1,1}\)

    CF736D

    基本就是套上面伴随矩阵的知识就能解决了...

    一些奇怪的随机题

    [ ]

    杨表

    咕咕咕

    $$\Huge \text{Goodbye OI}$$
  • 相关阅读:
    Javascript实现图片的预加载的完整实现
    python模块查找机制探究
    网络协议模拟之QQ微博分享接口应用
    每周一荐:差异利器Beyond Compare
    Asp.Net MVC4 入门介绍
    单元测试一例:学习断言、测试用例函数的编写
    开源一个网络框架
    .NET服务端持续输出信息到客户端
    Python服务器改造
    CYQ.Data 数据框架 V4.0
  • 原文地址:https://www.cnblogs.com/Rainbowsjy/p/15651403.html
Copyright © 2011-2022 走看看