• ABC231


    ABC231

    A

    签到

    B

    签到

    C

    签到

    D

    \(n\)个数字,问有没有可能构造一个序列,满足\(m\)\(a_i\)\(b_i\)相邻

    解:

    判断有没有环,有没有数字相邻了超过两个数字

    E

    \(n\)种面值的纸币,其中\(a_{i+1}\%a_i=0\),求凑出\(x\)元(可以用给定的面额找零)最少需要多少张纸币

    解:

    对于每种面值的货币,考虑用它实现的是向上取整还是向下取整,从大到小递推

    F

    \(n\)个人,唔系迪西对第\(i\)个人的好感度是\(a_i\),玛卡巴卡对第\(i\)个人的好感度是\(b_i\),现在每个人可以不送或送其中一个人礼物,但是如果第\(k\)个人送给唔系迪西礼物而\(b_k>a_k\)或送给玛卡巴卡礼物或\(a_k>b_k\)则会不高兴,求高兴的送礼方案数。

    解:

    对每个人按\(a_i\)排序,然后对于\(i<j\)\(b_i\geq b_j\)的一对\((i,j)\)有一点贡献,但是注意\(a_i=a_j,b_i=b_j\)的情况单独计算

    G

    H

    有一个\(n*m\)的网格,有\(k\)个白色格子,可以支付\(c_i\)的费用将第\(i\)块改成黑的,求每行和每列至少有一个黑色各自的最小花费。

    解:

    最小费用最大流,非常妙的一个技巧

    将行和列看作一个二分图的左右两部,一个棋子\(c(i,j)\)表示左边的\(i\)向右边的\(j\)连一条流量为\(1\),代价为\(c(i,j)\)的边

    为了让每个节点都被流入至少一个流量

    让左侧点和源点相连,流量为\(1\),代价为\(-inf\)

    让右侧点和汇点相连,流量为\(1\),代价为\(-inf\)

    这样保证了每个点至少流经一次

    为了补充流量,左侧点和右侧点向源点和汇点连一些流量为\(inf\),代价为\(0\)的边

    为了导走多余的流量,每个左侧点再向汇点连一条流量为\(inf\),代价为\(0\)的边

  • 相关阅读:
    IOS开发 网络发展史(NSURLProtocol)
    IOS开发 网络发展史(NSURLCach)
    IOS 开发 网络发展史(URLConnection)
    ios 网络开发(CFNetwork)
    MAC安装mysql
    conda 安装常用包
    从必应上拉取图片
    旋转数组中的二分查找
    东北大学 python模拟登录校园网(2019年6月启用新登录模式后)
    Ubuntu 安装Codeblocks
  • 原文地址:https://www.cnblogs.com/knife-rose/p/15685927.html
Copyright © 2020-2023  润新知