zoukankan      html  css  js  c++  java
  • 杂题20200228

    LOJ2155 「POI2011 R1」同谋者 Conspiracy

    给定一张无向图,将 (n) 个点分为两个点集,使得其中一个是团,另一个是独立集,求方案数

    (nleq5000)

    假设已经求出了一组合法解,解集一定由该合法解 把团中一个点放到独立集、把独立集中一个点放到团、交换团与独立集中的一个点 这三种情况构成

    构造合法解可以 2-SAT 。若两点 (u, v) 之间有边,看作两点不能同时放入独立集;否则,看作两点不能同时放入团


    LOJ2156 「POI2011 R1」棒棒糖 Lollipop

    给一个由 (1, 2) 构成的序列,多次询问是否有一段区间和为 (k) ,并求一组解

    (n, qleq10^6)

    假设当前有区间 ([l, r]) ,和为 (sum) ,若 (l<r) ,一定可以构造出 (sum-2)

    证明:若 (a_l, a_r) 两数中有一个是 (2) ,将 (2) 减去即可;否则,将 (l, r) 都向内挪一位

    因此找到长度最大的和为奇数/偶数的区间,并记录答案即可


    URAL1441 From the History of Gringotts Bank

    给定一张无向图,将边集拆分成若干条路径(不要求是简单路径),使得每条边恰好被经过一次,最小化路径数量,输出方案

    (n, mleq2 imes10^4)

    当一个连通块内只有 (0)(2) 个度数为奇数的点时,欧拉路径即是答案

    考虑将连通块中的度数为奇数的点两两匹配,把剩下的边用欧拉回路插到答案里,总共使用 (frac{度数为奇数的点}{2}) 条链,可以发现这样是最优解

    匹配度数为奇数的点可以找一棵生成树,从底向上匹配,时间复杂度 (O(n+m))


    URAL2047 Maths

    构造一个长为 (n) 的整数序列 (a_i) ,满足:

    1. (a_iin[1, 300])
    2. (forall kin[2, n], displaystylesum_{i=1}^ka_i) 有恰好 (a_k) 个约数

    (nleq10^5)

    由于一个合法序列的前缀也一定是合法序列,可以从权值和入手,记 (f_i) 为序列和为 (i) 时的最大合法长度,易知转移为 (f_i=f_{i-d(i)}+1) ,其中 (d(i))(i) 的约数个数

    通过打表可以发现 (n=10^5) 时需要用到的值域不会超过 (1.6 imes10^6) ,暴力 dp 即可


    URAL1310 ACM Diagnostics

    定义一个长为 (L) 的整数串是合法的,当且仅当:每个元素值域在 ([1, M]) ,且元素和是 (K) 的倍数

    求字典序第 (N) 的合法串

    (Lleq100; M, Kleq50)

    使用高精,二分之后暴力数位 dp ,会 TLE

    确定了前缀的若干位后,实际上只关心剩下的位置中,和(mod K=) 某个数时的方案数,这是一个定值,可以预处理

  • 相关阅读:
    Ubuntu 14.04 卸载通过源码安装的库
    Ubuntu 14.04 indigo 相关依赖
    Ubuntu 14.04 indigo 安装 cartographer 1.0.0
    Ubuntu 14.04 改变文件或者文件夹的拥有者
    安装cartographer遇到Unrecognized syntax identifier "proto3". This parser only recognizes "proto2"问题
    Unrecognized syntax identifier "proto3". This parser only recognizes "proto2". ”问题解决方法
    查看所有用户组,用户名
    1卸载ROS
    Ubuntu14.04 软件安装卸载
    Ubuntu14.04系统显示器不自动休眠修改
  • 原文地址:https://www.cnblogs.com/Juanzhang/p/12378579.html
Copyright © 2011-2022 走看看