zoukankan      html  css  js  c++  java
  • AGC039

    Contest Page

    A

    对于一个长度为(L)的相同字符段,显然要花费(frac{L}{2})次操作才能使得相邻不相同。于是只需要分类讨论一下首尾字符是否相同,算出每种字符、每种长度的连续字符段出现了多少次即可。

    B

    首先当图不是二分图的时候肯定无解,否则可以发现答案的上界是图上两点的最短路最大值,且不难构造出达到答案上界的方案。于是bfs/Floyd求出这个值即可。

    C

    可以把题目转换成:每一次把该数的最低位异或(1)放到最高位上,问要多少次才能够与原数相同。这样看来每一个数经过(2N)次一定会回到原数。那么哪些数操作次数少于(2N)?手玩可以发现:一个数能表示成(AA'AA'...A)的循环结构,其中(A)(01)串,(A')是其所有位异或(1)得到的串。这样的数只需要(2|A|)次操作。注意分成的段数要是奇数,否则仍然需要(2N)次操作。

    枚举(A)的长度(l)计算有多少个串循环节长度是(l)的约数。因为(A)确定了串就确定了,同时相当于枚举串的较高位,所以至多只有一个串需要判断是否小于等于(S)。最后容斥算多少个串循环节恰好是(l)。复杂度(O(Nd(N)))

    D

    对于圆上三个点(A,B,C),取弧(AB,BC,AC)的中点(D,E,F),可通过圆周角定理证明(Delta DEF)的垂心与(Delta ABC)的内心重合。

    考虑(Delta DEF),根据欧拉线,因为(Delta DEF)的外心是(O(0,0)),重心是((frac{x_D+x_E+x_F}{3} , frac{y_D+y_E+y_F}{3})),所以垂心就是((x_D+x_E+x_F,y_D+y_E+y_F)),这样(D,E,F)三个点贡献独立。枚举(AB),考虑其两段弧的中点答案的贡献。

    E

    先枚举一个点(i)((1,i))连边。那么接下来的问题就是([2,i) cup (i,2N])中的点互相连边的问题。

    考虑跨过点(i)的边,它们的两端点有单调性,即左半部分编号递增时,右半部分编号递减。枚举跨过点(i)的在左半部分编号最小的边((j,k)),那么剩余的点,要么先与(j)相交、要么先与(i)相交、要么先与(k)相交,且这样的点在编号上均分布为一段区间。枚举与(j)相交的点中最大的编号(p)、与(k)相交的点中最大的编号(q),那么可以分别递归到([2,j) cup (j,p])([p+1,i) cup (i,q-1])([q,k) cup (k,2N])的三个子问题。

    用记搜实现计算过程,虽然状态数(O(N^3))但有用状态不多。复杂度(O(N^7))

    F

    考虑一个朴素的DP:设(f_{i,j,k})表示矩阵(A)(i)(j)列最小值(leq k)的方案数。注意到(N,M,K leq 100),但是这样的状态在转移时无可避免的要同时枚举(i,j)的增量,因为它们的影响都在(A)上,所以转移的位置有交。

    对问题做一个小转化,可以发现权值相当于是额外填了一个矩阵(B)满足(B)的每个位置小于等于(A)中对应位置的行列最小值,那么权值相当于是(B)的方案数。发现对于(B)的限制等价于(B)的行列最大值小于(A)的对应行列最小值。

    此时我们有了两个矩阵(A,B),考虑将状态一个放(A)上一个放(B)上:设(f_{i,j,k})表示(A)(i)(leq k)(B)(j)(leq k)(A,B)矩阵填法总数。

    若确定(B)中某行最大值为(k+1),则矩阵(A)上对应行确定了列最小值的位置可以填入(geq k +1)的数;在矩阵(B)上对应行没有确定列最小值的位置可以填入(leq k+1)的数,且要保证至少有一个位置填(k+1)

    若确定(A)中某列最小值为(k+1),则矩阵(A)对应列确定了行最大值的位置可以填入(geq k+1)的数,且至少有一个位置填(k+1);在矩阵(B)对应列没有确定行最大值的位置可以填入(leq k+1)的数。

    可以发现(A,B)两个矩阵的填入无交,所以将这两者的转移看成两个阶段即可。预处理转移系数,复杂度(O(NMK(N+M)))

  • 相关阅读:
    MVC filter
    常见的页面中两个div自适应等高CSS控制
    字符串排序 获取字符串中最长的单词
    js中“==”与“===”区别
    数组中字符串按照长度大小排序
    jquery中ajax使用
    关于ajax
    父级div宽度100%,子级一个div宽度固定,另一个宽度自适应
    window.onload与$(document).ready()区别
    盒模型
  • 原文地址:https://www.cnblogs.com/Itst/p/11706719.html
Copyright © 2011-2022 走看看