首页 > 其他分享 >2024.6.20

2024.6.20

时间:2024-10-23 19:49:04浏览次数:1  
标签:10 le 20 gcd 2024.6 复杂度 frac mathcal

2024.6.20

T1

题面

给定一个正整数 \(a\),在区间 \([l,r]\) 中选择一个数 \(b\) 使得 \(a\times b\) 为一个完全平方数,若不存在输出 \(-1\)。共 \(T\) 组测试样例

\(1\le T\le 1000,1\le a\le 10^6,1\le l\le r\le 10^{12}\)

解法

\(\mathcal O(\sqrt a)\) 的去除 \(a\)中的平方因子得到 \(a'\),查询 \(\lceil\frac l{a'}\rceil\sim \lfloor\frac r{a'}\rfloor\)中最小的完全平方数即可

方法

  • 划归思想

T2

题面

求大小为 \(n\) 且满足 \(\gcd S+\operatorname{lcm} S=m\) 的不可重集 \(S\) 的个数对 \(P\) 取模的值

\(1\le n,m\le 10^9,10^8\le P\le 10^9+7,P\in \mathbb P\)

解法

因为 \(\gcd S|m\),所以可以枚举 \(m\) 的因数确定 \(\gcd S\),接着得到 \(\operatorname{lcm}S=m-\gcd S\)。可以将每个数除以 \(\gcd S\),令 \(d=\frac{\operatorname{lcm}S}{\gcd S}\)于是答案转化为选取\(n\) 个 \(d\) 的不同因子,使得其\(\operatorname{lcm}=d,\gcd=1\)。这个推导过程记为\(f(a,b)=f(1,\frac ba)\)

可以考虑分别满足每个限制

当不考虑任何限制的时候,假设 \(d\) 的因子个数为 \(u\) 方案数为\(f_d={u\choose n}\)

先考虑第一个限制, 因为满足限制的方案数为全部减去不满足的,而\(\operatorname {lcm}\not=d\)说明一定等于 \(d\) 的一个因子,所以 \(f_d\leftarrow f_d-\sum_{i|d}f_i\),既可以 DP 求到满足第一个限制的方案

再考虑第二个限制,因为 \(f(a,b)=f(1,\frac ba)\),所以对于 \(\gcd=a,\operatorname{lcm}=b\) 的方案,等价于\(\gcd=1,\operatorname {lcm}=\frac ab\) 的方案,所以只需要让 \(f_d\leftarrow f_d-\sum_{i|d}f_i\),就行了。

最后 \(f_d\) 就是答案,复杂度 \(\mathcal O((d(n))^3+d(n)\sqrt n)\),其中 \(d(n)\) 表示 \(n\) 的因子个数,但是常数小,跑不满。

方法

  • 容斥

    见《容斥问题的几种求法》

  • DP

    这道题在因子层面而非质因子层面经行考虑,原因有二

    • 本题转化后关心的为全体因子,以质因子考虑太麻烦

    • 正是因为在关心因子,所以可以建立之间的转移关系

  • 方程思想

    建立量之间的联系,本题建立的 DP状态转移方程

T3

题面

定义两个 \(01\) 串 \(S,T\) 满足\(S\to T\) 当且仅当 \(S\) 中值为 \(1\) 的下标集合是 \(T\) 中值为 \(1\) 的下标集合的子集,定义\(S\leftarrow T\) 当且仅当 \(T\to S\)。
小诗有一个长为 \(n\) 的 \(01\) 串序列 ,其中每个 \(01\) 串长度为 \(m\),她想知道有多少子序列
\(1\le p_1<p2<\cdots<p_k\le n\),使得存在 \(1\le t\le k\) 满足\(s_{p_1}\to s_{p_2}\to\cdots\to s_{p_{t}}\leftarrow s_{p_{t+1}}\leftarrow\cdots\leftarrow s_{p_n}\)。
由于答案过大,你只需告诉她答案 \(\bmod 10^9+7\) 的值。

\(1\le n\le 3\times 10^5,1\le m\le 20\)

解法

可以发现本质上是支持修改的高维前缀和

如果直接高维前缀和,修改复杂度为\(\mathcal O(1)\),查询复杂度为 \(\mathcal O(2^m)\),如果每次修改超集,则修改复杂度为 \(\mathcal O(2^m)\),查询复杂度为 \(\mathcal O(1)\),考虑将两种算法进行平衡。

我们将前 \(\lfloor\frac m2\rfloor\) 为经行高维前缀和,后\(\lceil\frac m2\rceil\) 经行超集修改,这样单词修改与查询复杂度都是 \(\mathcal O(2^{\frac m2})\) 了。总共复杂度 \(\mathcal O(n2^{\frac m2})\)。

方法

  • 根号平衡

    假设有算法修改查询复杂度分别为 \(\mathcal O(a),\mathcal O(b)\),则可以优化成 \(\mathcal O(\sqrt{ab})\)。

T4

题面

对于所有长度为 \(n\) 的 \(01\) 串 \(s\)(下标从 \(1\) 开始),定义 \(f(s)=\sum_i[s_i=0][s_{i+1}=1]i\),令 \(T\) 表示所有 \(n\) 个 \(0\),\(m\) 个 \(1\) 的 \(01\) 串集合,求 \(\sum_{s\in T}q^{f(s)}\bmod p\)

\(p,q\in \mathbb P,1\le n,m,q\le 10^9,1\le p\le 10^7\)

解法

并不容易发现并且我也不会用数学归纳法证明答案为 q-组合数 \(\begin{bmatrix}m+n\\n\end{bmatrix}_p\),利用 q-Lucas 公式:

\[当p,q\in \mathbb P,且p\not =q时\\ \begin{bmatrix}n\\m\end{bmatrix}_p\equiv {\lfloor n/p \rfloor\choose \lfloor m/p \rfloor}\begin{bmatrix}n\bmod p\\m\bmod p\end{bmatrix}_p\pmod p \]

可以计算

方法

  • 数学归纳

标签:10,le,20,gcd,2024.6,复杂度,frac,mathcal
From: https://www.cnblogs.com/lupengheyyds/p/18498228

相关文章

  • # 20222402 2024-2025-1 《网络与系统攻防技术》实验二实验报告
    1.实验内容本周学习内容①Shellcode技术②后门概念:后门就是不经过正常认证流程而访问系统的通道。③后门案例:XcodeGhost等。④后门技术:狭义后门:特指潜伏于操作系统中专门做后门的一个程序,“坏人”可以连接这个程序,远程执行各种指令。管控功能实现技术自启动技术进程隐藏技......
  • java基础2024(5.集合)
    集合(Collection)是一组用于存储和操作对象的数据结构。Java集合框架(JavaCollectionsFramework,JCF)提供了一个统一的架构,用于表示和操作集合,它包含了一系列接口、实现类以及算法。Collection接口Collection接口是集合框架的根接口,它扩展了Iterable接口,定义了所有集合类型共......
  • P3547 [POI2013] CEN-Price List
    很不错的图论题。考虑对\(a,2a,b\)大小进行讨论。\(2a\leb\),这种情况是简单的,根本不会走\(b\)边,直接bfs即可,此时答案为\(d*a\)。\(a\leb<2a\),这种情况下能走两条\(a\)边就会用\(b\)边替换掉,同时不用担心三元环的情况(因为三元环会出现三个点最短路都是\(1......
  • 2024/10/23日 日志--》关于Maven的基础学习--2 坐标与依赖范围
    对Maven的学习即将步入卫生,下面是Maven中的坐标和依赖范围的简单笔记点击查看代码--Maven坐标详解--·什么是坐标?---》Maven中的坐标是资源的唯一标识---》使用坐标来定义项目或引入项目中需要的依赖--·Maven坐标的主要组成---》groupld:定义当前Maven项目隶......
  • 20222404 2024-2025-1《网络与系统攻防》 实验二
    1.实验内容(一)本周课程内容了解后门概念,了解后门案例,后门会对系统安全造成的影响。对后门技术进行普及,包括各种进程隐藏技术。了解netcat、meterpreter,veil等常见工具。进一步学习shellcode注入的逻辑和多种情况。(二)问题回答(1)例举你能想到的一个后门进入到你系统中的可能......
  • Adobe AN软件简介、下载与安装步骤【2024】
    目录一、AdobeAN软件简介1.1产品概述1.2主要功能1.3系统要求二、下载三、安装步骤3.1Windows系统安装3.2macOS系统安装3.3后续操作一、AdobeAN软件简介1.1产品概述AdobeAN,全称AdobeAnimate,是AdobeSystems公司开发的一款功能强大的多媒体创作和电脑动......
  • 【2024】Adobe AI(Illustrator)绘制和编辑、排版工具软件下载安装
    目录一、AdobeAI(Illustrator)软件发展历史1.起源与早期发展2.中期扩展与突破3.近期创新与融合4.下载链接二、AdobeAI(Illustrator)软件功能介绍1.矢量绘图与设计2.排版与出版3.图像上色与特效三、AdobeAI(Illustrator)软件系统要求1.操作系统与处理器2.内存......
  • 通过DevTools逃离Chrome沙盒(CVE-2024-6778和CVE-2024-5836)
    介绍这篇博文详细介绍了如何发现CVE-2024-6778和CVE-2024-5836的,这是Chromiumweb浏览器中的漏洞,允许从浏览器扩展(带有一点点用户交互)中进行沙盒逃逸。简而言之,这些漏洞允许恶意的Chrome扩展在你的电脑上运行任何shell命令,然后可能被用来安装一些更糟糕的恶意软件。攻击者......
  • 2024-10-23:最高频率的 ID。用go语言,给定两个长度相等的整数数组 nums 和 freq, 其中num
    2024-10-23:最高频率的ID。用go语言,给定两个长度相等的整数数组nums和freq,其中nums中的每个元素表示一个ID,而freq中的每个元素表示对应ID在此次操作后出现的次数变化。如果freq[i]为正数,则表示在这次操作中nums[i]的ID会增加freq[i]次;如果freq[i]为负数,则表示在这次操作中nums[i......
  • 2024小白YOLOv8环境配置
    目录前言一、PyCharm的安装1.下载 2.安装步骤二、配置YOLOv8的虚拟环境1.Anaconda中创建一个虚拟环境 2.Pycharm中使用虚拟环境(1)下载YOLOv8开源包(要挂梯子)(2)在设置中找到解释器,选择创建好的YOLOv8环境(3)配置终端的启动路径(4)启动终端,下载YOLOv8依赖包 (5)下载权重......