zoukankan      html  css  js  c++  java
  • 6.12交流

    czy

    bzoj5424烧桥计划

    f[i][j]暴力,可以分两段转移,更近的一段单调队列

    发现,最多分成sqrt(n)段。

    因为如果只有一段,ans=n*2000

    而如果多段,至少是∑i*1000,那么,i的上界是sqrt(n)级别的。

    所以,O(nsqrt(n))

    (什么题啊)

    ywy

    CF1086F Forest Fires 

    考虑统计f[i],i时刻能覆盖的个数

    ans=t*f[t]-∑f[i]

    ∑f[i]矩形面积并,插值

    yjc

    https://codeforces.com/problemset/problem/1172/C2?tdsourcetag=s_pcqq_aiomsg

    f[w][i][j][k]大暴力

    k可以省去,f[w][i][j],j,i可以砍到m

    有结论:f[w][i][j]=w*f[1][i][j]

    关于轮数i,进行归纳法可以证明,i=0显然成立,求出i>=1时f[1][i][j]的式子,对比f[w][i][j]的式子,发现f[w][i][j]=w*f[1][j][k],

    得证。

    zky

    51nod1584 加权约数和

    没出太大的锅,但是线性筛好像做不了了。

    zrq

    P4566 [CTSC2018]青蕈领主

    类析合树

    然后把儿子缩点,推式子,cdq分治FFT

    ztb

    PKUSC2019 D2T2

    zzh

    n个人,每个人手上有 a_i 个相同物品,两人的物品不同,有先后m次交换,每个x和y可以交换一件物品(可以不交换),最大化最终1手上的物品种类n3000

    m,n,xi,yi,ai给定

    首先,每个人手上的ai个等于1个。最终目标是给1,只算一种,让那条路径给过去即可。所以多了没用。

    ai的作用是限制第i个人手上同时最多ai个。

    然后网络流:

    对时间拆点,n*m个点,

    如果(x,y)在t时刻交换,则$(x_t)->(y_{t+1})$,$(y_t)->(x_{t+1})$流量为1

    任意t,$(i_t)->(i_{t+1})$流量ai

    S到$(i_t)$流量1,表示一种物品

    $(1_m)$到T流量inf,表示最终种类数。

    n*m个点只保留有用的即可。

    最大流。

    如果$(x_t)->(y_{t+1})$流过去,代表:“决定把某个种类最终传给1”,所以把这个“种类”传过去。

    (某一时刻,x的$(x_t)->(x_{t+1})$没有满流,代表手上还有一些x号物品(初始的),

    此处,如果没有同时的$(y_t)->(x_{t+1})$,其实代表x交换给了y一个x的初始元素过去,

    由于并不想到达1,所以没有把“种类”传过去。

    1和种类有关,所以就是种类代表点了。即1点流量。

  • 相关阅读:
    Java实现 LeetCode 740 删除与获得点数(递推 || 动态规划?打家劫舍Ⅳ)
    Python oct() 函数
    Python hex() 函数
    Python ord() 函数
    Python unichr() 函数
    Python chr() 函数
    arm,asic,dsp,fpga,mcu,soc各自的特点
    摄像头标定技术
    自主泊车技术分析
    畸变的单目摄像机标定
  • 原文地址:https://www.cnblogs.com/Miracevin/p/11011953.html
Copyright © 2011-2022 走看看