zoukankan      html  css  js  c++  java
  • 2.4

    T1:

    太菜,不会sam

    就只会暴力

    枚举k,枚举两端,再暴力check,如果一样ans++


    T2:

    还是只会暴力

    把一个数,分成若干段,然后检验这个是否在数列里

    分成若干段可以直接爆搜是否在每一个位置上插隔板

    检验的话,就从第一个数开始构造字符串,一直够到比原数长

    然后再比较原数和这个串是否相配,直接暴力扫

    如果相配,找到第一个数的位置(分类讨论:位数小于它的+位数等于它的)

    与ans取min

    复杂度:O(2^n*n^2)


    T3:

    考场上完全蒙了,rand了10

    现在知道了,数据范围几百的基本就是网络流

    目前不会构造,只会证明一个构造是对d

    构造:

    我们把1~n称为入点,把n+1~n+n称为出点

    从源点开始,与入点连一条1的边

    每个出点与汇点连一条1的边

    然后有一条边(u,v)

    就从入点u连向出点v(u,v+n),容量无限

    然后跑最大流

    n-最大流就是答案

    证明:

    有一条边,可以把两个点连起来时,最大流(ans)++,而需要的路径(s)--,

    所以可以看出,二者成反相关系

    然后如果有u->v,现加一点a,满足u->a

    那么由于源点到u只有1,所以再加一条边也无法增大ans

    而n却++了,所以s++,符合题意

    同理,如果有多个点指向同一个点也没关系

    而如果新加一个点,它只被一个还没有连向别人的点连

    那么,网络流上多了一条路,因此ans++

    同时n++,所以s不变,符合题意

  • 相关阅读:
    11.关于django的content_type表
    6.re正则表达式
    1.关于python 的hmac加密
    4.瀑布流js
    10.django的一些方法理解
    7.一些比较有用的网站
    准备辞职了,走之前想解决的问题ptr 为空
    Oracle 代码生成小工具免费下载
    Js 中一个判断类型的方法
    jQuery 加上最后自己的验证
  • 原文地址:https://www.cnblogs.com/shenbear/p/12260798.html
Copyright © 2011-2022 走看看