zoukankan      html  css  js  c++  java
  • 机房测试8.17

    高斯消元

    题目& 数据范围

    样例

    num.1

    in

    4 5 2
    1 2 3 1

    out

    12

    num.2

    in

    1 9 2
    1

    out

    1

    num.3

    in

    3 10 2
    1 2 1

    out

    0

    解题法

    就是模拟一波又一波。

    第一波处理一个循环节内的消消乐情况。

    模拟栈的结构,每读到一个数,将其推入栈中,判断是否满足消去条件,

    满足就栈指针减k。

    第二波处理头尾相消的情况。

    两个指针,从两边往里走,能消则消。

    然后就是每个循环剩余长度*(m-1)+仅去掉同一循环的剩余数的个数。

    糖果镇

    当m<=2时,枚举分界点,预处理前缀和就好了。

    对于另外20%,直接dp[i][j]表示到点i,j的最优答案。

    对于100%,我们可以枚举第二次下行的分界点,然后我们可以统计出第一次下行的影响,就是第一行到x的前缀和减去第二行到x-1的前缀和,第二行就是到枚举端点的前缀和,这样在已知第二次下行的分界点时,第二行和第三行的贡献是已知的,我们只要找到模意义下第一行的最优贡献就好了,这个就可以用set维护,找前驱。

    游戏

    通过题目可以发现,我们要求的就是在使用最小的点权的情况下选中所有边,每条边都可以被他的两个端点选中,且出入点权可能不同,于是就可以发现这是一个最小点权覆盖。

    建边:
    1> 先建立虚拟源S和汇T,把每个点拆成两个,ia,ib。
    2> 从S向ia连一条流量为wi-的边,从ib向T连一条流量为wi+的边。
    3> 原图中的边从ua向vb连一条流量无穷大的边。
    4> 然后跑最大流即可。

    总结

    今天因为A-了第一题,所以Rank很高,但是我网络流竟然写错了,讲过的诶。

    终于要放假了。

    今晚八点,准时开车!

  • 相关阅读:
    按指定上下限区间进行数据统计的示例.sql
    树形数据层次显示处理示例.sql
    Flexi传授如何说服自己的老板采用Node.js
    sed的用法[转]
    [bash] string operators
    [shell script]脚本实现目录和文件名显示
    Bash快捷键
    [bash] Condition Tests
    整理一下博客
    老爸的工具箱之:根据日期批量重命名照片
  • 原文地址:https://www.cnblogs.com/LoLiK/p/9494398.html
Copyright © 2011-2022 走看看