zoukankan      html  css  js  c++  java
  • JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog
    http://absi2011.is-programmer.com/posts/200920.html
    http://absi2011.is-programmer.com/posts/200822.html
    DAY1
    T1
    最优比率树形DP?
    跟最优比率生成树很像。。二分Σp/Σs(暂定为f
    判定过程:每个点得到一个新权值f*p[i]-s[i]
    做树形dp,dp[i][j]表示以i为根的子树选j个点能得到的最大权值
    dp[root][k]>0则为合法
    T2


    T3
    首先得先会O(N)预处理hash并且O(1)判断回文
    然后
    考虑一个问题不考虑到b数组的时候如何求a数组的回文
    O(n)枚举回文串中心点。。
    每个中心点logn二分向外拓展得到一个l[i],r[i]
    那么考虑涉及到b数组
    因为l[i]只会在a数组 而r[i]则可能拓展到b数组中
    那么再次枚举中心点,二分b最远能跑到哪里 O(1)判断即可

    DAY2
    T1
    一开始看错题意不会做啊沃日。。。
    BZOJ4038

    T2
    类似CF的eduround12的C题
    是一个两两相加需要为质数的题。但那一题中没有二分图性质GG
    而这题。。偶+偶=偶 奇+奇=偶。。判断下1.。就会发现数被分为奇偶两个部分
    然后二分独立集
    T3

    FJOI2011选点问题
    原题原题,我报警了
    贴个很早写的FJOI2011题解。。。懒得改了QAQ
    N^4暴力50分(我为什么打正解

    考虑枚举每个点暴力,然后极角排序乱搞。
    然后考虑i,j,k构成的三角形。
    For (int i=1;i<=n;i++)
    For (int j=1;j<n;j++)
    For (int k=j+1;k<n;k++)
    所以 角j,i,k,包含的点有k-j-1个,但是这些点与i的连线所构成的直线能过j,k,线段却不能,例如三角形ijk内的点。(计算几何判断线段相交的跨立实验)
    所以考虑容斥原理。
    TOT[j][k]+=角ijk的点-三角形ijk内的点。(复杂度n^4 不如暴力)

    那么转换思维 我们先tot[j][k]+=角ijk内的点
    考虑枚举到三角形i,j,k内一点 图中红点

    这个点 在i计算时被失败地计算过了。但是做反向延迟线试试
    显然在计算j,k这条线段时,这个点与j,k的反向延长线所构成的角会包含点i,同理,会包含之前误计算该点的的点。
    那么我们就想到一个非常妙的思路啦。
    For (int i=1;i<=n;i++)
    {
    极角//
    For (int j=1;j<n;j++)
    For (int k=j+1;k<n;k++)
    TOT[J][K]+=k-j-1-a[i][j][k]。(a[i][j][k]=ij,ik反向延长线内包含的点)
    }
    总的来看 对于每条线段 ab
    Tot[a][b]=所有的角iab内的点-每个点在统计线段ab时被误统计的次数。

  • 相关阅读:
    文件转换table
    日期选择
    下拉多选
    下载文件(简洁方法)
    服务器下载文件http
    文件名称 (年4+月2+日2+时2+分2+秒2+毫秒3+8位随机数)
    Vim自动补全神器:YouCompleteMe
    Linux下如何卸载HP_LoadGenerator
    python 安装 setuptools Compression requires the (missing) zlib module 的解决方案
    linux安装IPython四种方法
  • 原文地址:https://www.cnblogs.com/wkingG/p/5507588.html
Copyright © 2011-2022 走看看