zoukankan      html  css  js  c++  java
  • CF1335 简要题解

    草,赛时写题解(

    • A

    分奇偶讨论一下,可以知道方案数为 (lfloorfrac{n}{2} floor)

    • B

    首先可以随便构造使得前 (a) 个字符中有 (b) 个不同字母。然后对于任意的 (iin [a+1, n]),令 (s_i=s_{i-a}) 即可。

    • C

    设最大的组有 (x) 人,非空的组有 (y) 个,如果 (x e y),显然答案可以取到 (min(x, y)),否则,最大的组会被取空,答案要 (-1)

    • D

    如果保证每一行、每一列、每个九宫格都恰好有一个数被修改了,不难看出刚好满足题意。

    设行、列都由 (0) 开始,可以有下列构造:

    for (int i = 0; i <= 2; ++i)
    	for (int j = 0; j <= 2; ++j)
    		s[i * 3 + j][i + 3 * j] = (s[i * 3 + j][i + 3 * j] - '0') % 9 + '1';
    
    • E

    发现颜色只有 (200) 种,考虑将所有非空的颜色对 ((u, v)) 都拉出来做一遍。将两种颜色对应的位置归并排序一下,枚举两边的 block 长度,左右各维护一个指针,中间部分用前缀和算即可。

    (mathrm{cnt}) 表示每次的非空颜色数,单次复杂度可以达到 (mathrm{cnt}^2+mathrm{cnt}cdot n)。由于 (mathrm{cnt}leq n),因此最坏情况下,复杂度是 (Oleft(mathrm{cnt}cdot sum n ight)) 级别的,可以通过。

    • F

    将网格抽象成图,发现每个连通块都是一棵内向基环树。不难发现,每个连通块能容纳的机器人个数恰好等于环长 (r)。在环上任选一点,沿着反边 dfs,可以给每个点标一个距离 (d_i)。发现所有 (d_imod r) 相同的点只能选一个。因此,对于每一个 (d_imod r) 的值,如果其中存在黑格子,则可以给答案贡献 (1)

    妙啊,写完题解的时候比赛还没结束(

  • 相关阅读:
    关于ie7下display:inline-block;不支持的解决方案。
    Unicode转义序列
    DOMContentLoaded与load的区别
    有关列分组,定义css样式无效的问题
    多行文字溢出[...]的实现(text-overflow: ellipsis)
    goahead cgi 及出现的问题解决
    Android面试题整理(1)
    回溯法 之 马周游(马跳日)问题
    软件工程总结
    [置顶] 每日震精图
  • 原文地址:https://www.cnblogs.com/suwakow/p/12695252.html
Copyright © 2011-2022 走看看