zoukankan      html  css  js  c++  java
  • 2019暑假杭二day7测试总结

    T1

    题目大意

    (sum_{i=1}^nsum_{j=1}^nmu(gcd(i,j))\%998244253,nle 10^{10})

    sol

    [sum_{i=1}^nsum_{j=1}^nmu(gcd(i,j))\ =sum_{k=1}^nsum_{i=1}^nsum_{j=1}^nmu(k)[gcd(i,j)=k]\ =sum_{k=1}^nmu(k)sum_{i=1}^{lfloorfrac{n}{k} floor}sum_{j=1}^{lfloorfrac{n}{k} floor}[gcd(i,j)=1]\ =sum_{k=1}^nmu(k)sum_{i=1}^{lfloorfrac{n}{k} floor}sum_{j=1}^{lfloorfrac{n}{k} floor}sum_{d|i&d|j}mu(d)\ =sum_{k=1}^nmu(k)sum_{d=1}^{lfloorfrac{n}{k} floor}mu(d)sum_{i=1}^{lfloorfrac{n}{kd} floor}sum_{j=1}^{lfloorfrac{n}{kd} floor}\ 令sum(x)=sum_{i=1}^n1\ 则原式=sum_{k=1}^nmu(k)sum_{d=1}^{lfloorfrac{n}{k} floor}mu(d)sum({lfloorfrac{n}{kd} floor})^2\ 考虑枚举k imes d\ 原式=sum_{T=1}^nsum_{d|T}mu(d)mu(frac{T}{d})sum({lfloorfrac{n}{kd} floor})^2\ 令f(x)=sum_{i|x}mu(i)mu(frac{x}{i})=(mu*mu)\ 原式=sum_{T=1}^nf(T)sum(lfloorfrac{n}{T} floor)^2 ]

    后面明显可以整除分块,问题变成了如何快速求(f(x))的前缀和,题解说可以用杜教筛,可我就是不会筛((mu*mu)),只写出了线筛的分。

    T2

    题目大意

    给定一个只包含小写字母的字符串 , 求其本质不同的子序列的个数,(len le 10^6,ans)(998244353)取模。

    sol

    我当时想了一个用tire树维护有多少个子序列,很明显方案数爆炸。

    其实正解不需要任何数据结构,十分简单。

    考虑递推,设f[i]为前i个字母组成的本质不同的子序列的个数。(f[i]=2f[i-1])。但这会有很多重复的,设(s_i)为第i个字母,我们还需减去之前以(s_i)结尾的子序列的个数,这些都被重复算了一次。以(s_i)结尾的子序列的个数也可以递推,+=f[i]-f[i-1]就行,因为多产生了这么多贡献。

    T3

    题目大意

    请你维护一个初始为空的点的集合,支持以下操作:

    • A x y 加入点 (x,y)
    • Q l r x y 询问点 (x,y) 与第 l 个 r 到个点的匹配度的最大值

    点 (x,y) 与 (a,b) 的匹配度为 ax+by

    sol

    我只写了暴力。

    正解把这个问题转为了几何问题,设 ax+by=k ,则 (-frac{x}{y}a+frac{k}{y}=b),问题变成了给一个斜率固定的直线,过区间内的一些点使截距最小。然后变成了我不会的线段树维护凸壳。

  • 相关阅读:
    Java基本开发环境搭建(适合第一次使用)
    在oracle中通过链接服务器(dblink)访问sql server
    C# 鼠标悬停在datagridview的某单元格,显示悬浮框效果
    经典SQL语句大全
    程序员为何要写技术博客?
    收缩SQL数据库日志
    利用脚本设置本机IP地址
    在SQL Server 2005中连接Oracle,完成查询、插入操作
    Centos 7 下 Corosync + Pacemaker + psc + HA-proxy 实现业务高可用
    Centos 7 下 Corosync + Pacemaker + psc 实现 httpd 服务高可用
  • 原文地址:https://www.cnblogs.com/hht2005/p/11402646.html
Copyright © 2011-2022 走看看