zoukankan      html  css  js  c++  java
  • 省选模拟76

    A

    题意:给两两最小割,构造图。n<=100
    最小割都能转化到最小割树上的路径最小权,所以可以构造最小割树
    边权从大到小排序,建生成树,最后check合法即可。
    证明:
    每次加入的是当前最小的,如果已连通则替换一定会使被替换的点对不合法,如果未连通则显然是两个连通块间的最小边不加入则无法满足当前点对。

    B

    题意:
    n<=3000
    对于k=n,2边权和-直径
    一般情况,假设已知k个点,答案为2虚树边权和-虚树直径
    进而可知k个点一定相邻
    设f[i][j][0/1/2]表示子树i内选j个点直径端点确定了0/1/2个的最优解
    这样就可以在转移的时候知道u-v的边走了1/2次
    子树归并转移(O(n^2))

    C

    题意:字符串S,Q次操作:前/后加字符,撤销加字符操作。求每次操作后S中最长回文串长的和。强制在线。n<=1e7
    发现答案增量只会是0/1/2,可以用hash直接check前后缀
    考虑维护hash:
    类似莫队维护指针写了下,常数很大就弃了。。。
    另一种做法是通过类似h[i+1]->h[i]找到h[i]->h[i+1],当然此时h[i]中没有包含真实的s[i+1],而是我们钦定的,大概相当于错位?
    挺迷的但是是对的。

  • 相关阅读:
    微信小程序右上角胶囊的位置
    NLP复习大纲
    网站收藏
    css中如何调整插入背景图片的大小
    禁止Power Apps Canvas用户通过SharePoint Online UI界面访问站点list
    c++ vector基本知识
    c++ map基本知识
    c++ string操作
    python学习笔记30:操作excel
    c++, 如何run一个c++程序
  • 原文地址:https://www.cnblogs.com/hzoi-yzh/p/12748217.html
Copyright © 2011-2022 走看看