zoukankan      html  css  js  c++  java
  • 20181016提高测试

    吃枣药丸

    T1

    【正解】秘制组合数

    两个性质:

    (C_{m}^{n}=C_{m}^{m-n})

    (sum _{i=k}^{n} C_{i}^{k}=C_{n+1}^{k+1})

    即:杨辉三角第i列是第i-1列的前缀和

    凝视着这个性质,傻瓜也得到教训:

    (sum _{i=l}^{r} C_{i}^{k}=C_{r+1}^{k+1}-C_{l}^{k+1})

    题目要求

    (prod sum _{i=l}^{r} C_{i}^{k+i-l})

    (=prod sum _{i=l}^{r} C_{i}^{i-(k+i-l)})

    (=prod sum _{i=l}^{r} C_{i}^{l-k})

    (=prod (C_{r+1}^{l-k+1}-C_{l}^{l-k+1}))

    预处理阶乘逆元,O(1)回答

    复杂度O(N+M)

    代码

    (复杂度算错了不要在意)

    T2

    【错解】

    一看就是贪心嘛

    开始想的Prim,每个枚举所有边,找没选过的最小的边

    然后成功Hack了自己:

    5 6
    1 2 1
    1 3 2
    2 3 100
    3 4 0
    4 5 0
    5 3 0
    

    重构重构

    发现实际上出口就是父节点,而根节点没有父亲,就随便连一条

    而任意点都可以是根,所以是个最小生成环套树

    发现可能不连通,受Wuvin神题影响建了个超级源点,跟每个联通块连条边,允许联通块个数个环

    没考虑一个联通块多个环的情况 50pts

    【正解】

    并查集可以带东西啊

    记一个type表示i为根的并查集是根还是环套树

    在合并时:

    ①如果都是树,合并后是树

    ②如果一个树一个环套树,合并后是环套树

    ③如果两个环套树,不能合并

    复杂度O(MlogM)

    代码

    T3

    【错解】

    树。。。树上乱搞?

    先想的和父亲连边跑拓补序,发现不能确定

    咦?好像是个主席树

    怎么比较啊?放弃

    暴力写挂,0pts

    【正解】

    比较字符串:暴力,二分+哈希

    用主席树维护哈希值,左儿子hash相同往右跳,否则往左跳

    注意先特判全部相等的情况

    复杂度(O(Nlog^{2}N))

    好像卡19****17

    代码

  • 相关阅读:
    java+opencv实现图像灰度化
    java实现高斯平滑
    hdu 3415 单调队列
    POJ 3368 Frequent values 线段树区间合并
    UVA 11795 Mega Man's Mission 状态DP
    UVA 11552 Fewest Flops DP
    UVA 10534 Wavio Sequence DP LIS
    UVA 1424 uvalive 4256 Salesmen 简单DP
    UVA 1099 uvalive 4794 Sharing Chocolate 状态DP
    UVA 1169uvalive 3983 Robotruck 单调队列优化DP
  • 原文地址:https://www.cnblogs.com/lstoi/p/9797628.html
Copyright © 2011-2022 走看看