zoukankan      html  css  js  c++  java
  • 省选模拟24

    A. U.N.OWEN就是她吗?

    题意:n堆石子,第i堆有(a_i)个,给出m个指令(l_i,r_i,k_i)([l_i,r_i])中最多选出(k_i)个(不够清零[l,r]),设第i个指令的答案为(p_i),求最大p的字典序。n,m<=1e5
    暴力想到了二分图匹配,觉得拆点很蠢但又想不到其他做法所以去肝了水很深的T2...
    正解是拆点+Hall定理的推论。
    Hall定理:一个二分图|X|-|Y|存在完美匹配的条件是(forall Ssubseteq X,S->T,|S|<=|T|)
    推广到区间上也同样成立,证明网上有,这样我们只要对所有区间判断。
    由于题中给出的不包含性质,排序后L R同时递增,设A为石子去掉没有被覆盖部分后的前缀和,B为询问的前缀和
    (forall i<j,A_{R_j}-A_{{L_i}-1}geq B_j-B_{i-1})
    (forall i<j,B_{i-1}-A_{{L_i}-1}geq B_j-A_{R_j})
    (C_i=B_j-A_{R_j},D_i=B_{i-1}-A_{{L_i}-1})
    (C_jleq D_i)
    由于限制,一次能拿的最大值为(min(C_j-D_i,K_i)),线段树维护支持区间加的C的最大值D的最小值即可。

    C. 平安时代的外星人

    题意:nm的黑白染色矩阵,矩阵上的(n+1)(m+1)条线段有权值,求包围所有黑格的最小环。n,m<=400
    原题,当时没人改,gls讲的很好觉得还可做,于是先去改的T3(虽然写起来还是挺自闭的)。
    结论:(1,1)到每个黑格左上角的最短路一定在环内
    证明:如果环切开了最短路,那么把环上一部分换到最短路上一定不会变差。
    然后这其实也是个限制,如果满足了这个限制的从(1,1)出发的不经过黑格的环一定能够包围所有黑格。
    上边这东西就是棵最短路树,记录前驱从根跑dij,好像卡spfa...
    问题在于如何求环,可以重合不会处理,然而两次经过的方向不同,拆成两条单向边,边权为输入。
    为了表示不能经过最短路树边,对于矩阵上的交点拆成四个,连边表示可以跨过矩阵格子边界,边权为0。复杂度(O{nmlog(nm)})
    然后就没啥了,写的很飘,还重构了。。。

  • 相关阅读:
    android switch控件的使用
    触摸屏校准tslib的配置文件
    matlab 函数的编写与调用
    penmount串口触摸屏加载
    FPGA保留信号的语句
    ioctl和unlock_ioctl的区别
    内核目录中增加自己的目录
    linux内核打印"BUG: scheduling while atomic
    28335外部中断
    编译QT时出现lib/libQtGui.so: undefined reference to `ts_read_raw'的解决办法
  • 原文地址:https://www.cnblogs.com/hzoi-yzh/p/12309864.html
Copyright © 2011-2022 走看看