• 省选模拟73 题解


    A. 决战

    因为把暴力放过去了,所以这题就成水题了。

    其实正解的做法与那道求匹配方案权值和的题在链上的情况很类似。

    大概就是说整一个分治出来,然后 $dp_{l,r}$ 处存放一个多项式。

    其中 $l,r$ 分别表示左右两个端点的状态,$x^k$ 项系数表示放置了 $k$ 个人的方案数。

    因为每个转移矩阵都是一样的,所以分治就无意义了,直接整个快速幂就行了。

    B. gift

    一眼 $0/1$ 分数规划,然后发现规划完之后的形式是,选择付出代价,同时选择两个对应一个收益。

    所以这个就是网络流最小割的经典模型了,弄一弄边权就可以把收益全放到边上。

    然而这题还挺麻烦的,因为当网络流得到的结果为 $0$ 的时候,无法判断此时是存在一组合法解使得收益-付出=0还是说最优策略只有不买礼物。

    为了解决这个问题,我选择了小数二分,然后写实数网络流,然后就被卡了。

    然而出题人并没有想到这个问题,所以整个整数意义下的二分,假装没有这个问题,或者假装要最大化的是 $lfloor frac{B-1}{A} floor$ 就可以 AC 这道低质量题了。 

    C. 质数

    因为是积性函数,所以大概可以想到直接套个 $min25$ 筛,然而看到 $10^{12}$ 的数据范围还是算了吧。

    然后可以发现题中的函数 $2^{f(n)}$ 是很特别的。

    一个经典的套路就是考虑把这个东西展开,然后均摊贡献。

    然后我就将这个玩意摊到了每个无平方因子数上,所以答案是 $sum limits_{i=1}^n lfloor frac{n}{i} floor mu ^2(i)$。

    然后显然可以整除分块,然后显然可以直接根号容斥出区间无平方因子数的个数。

    然后显然可以预处理较小的部分,然后复杂度就是 $O(n^{2/3})$ 了,然而出题人并没有给部分分,所以请想到出题人的正解。

    将 $2^{f(n)}$ 转化为划分质因子集合,那就是 $sum limits_{i,j} [i*j=n][gcd(i,j)=1]$。

    那就可以推一推式子,莫比乌斯反演搞一下,然后就可以根据调和级数证明复杂度是 $O(n^{0.5}*ln(n))$ 的。

  • 相关阅读:
    ajax提交json数据到后端C#解析
    icheck判断是否选中
    sql多列值一行显示
    IDEA 2018 搭建 Spring MVC helloworld
    C# 注册DLL至GAC 并在添加引用中使用该DLL
    Java获取执行进程的dump文件及获取Java stack
    intellij idea搭建SpringBoot
    通过链接跳转登录到另外一个系统
    访问Hsql .data数据库文件
    基于weui的城市选择器(city-picker)
  • 原文地址:https://www.cnblogs.com/skyh/p/12722734.html
Copyright © 2020-2023  润新知