首页 > 其他分享 >mx s26

mx s26

时间:2024-11-12 16:02:16浏览次数:1  
标签:颜色 前缀 mid s26 权值 mx dp gcd

A

\(n\) 是偶数,\(a,b,c\) 都是素数,平方不改变奇偶性,则 \(a,b,c\) 中有一个偶数或三个偶数,但偶素数只有一个,所以不妨令 \(a=2\),枚举 \(b\leq \sqrt n\) 就可以算出 \(c\)。需要判断 \(b,c\) 是否是素数,可以用线性筛或是埃氏筛做到这点。为了避免常数过大,最好只枚举 \(b\) 为素数的情况。复杂度 \(O(T\sqrt n)\)。

B

考虑最优策略一定是先放至少出现一次的数,再放出现至少两次的数,以此类推,可以解决 \(q=1\) 的情况。

于是答案只和每个元素 \(x\) 的出现次数 \(f_x\) 有关,当 \(x\) 第 \(i\) 次在 \(a'\) 中出现时,\(a'\) 这个前缀的众数恰好出现 \(i\) 次,于是 \(x\) 的贡献是 \(1+2+\dots+f_x=\frac{f_x(f_x+1)}{2}\)。维护桶 \(f\) 更新答案即可。\(O(n+q)\)。

C

\(n\) 小的时候直接暴力 \(O(n^3)\),\(k\leq 10\) 需要统计的区间只有 \(O(kn)\) 个也可以暴力用一些数据结构统计区间乘积,\(m\) 是质数的时候可以用逆元+前缀和的方法统计。\(k=n\) 做法和正解一致,边界更少。

统计区间信息常常使用分治,处理 \([l,r]\) 区间时把贡献分为完全在 \([l,mid]\),完全在 \((mid,r]\) 和在 \([l,r]\) 内且跨过 \(mid,mid+1\) 的三类区间,前两类递归处理,只需要考虑第三类。

如果没有 \(k\) 的限制,从 \(mid+1\) 到 \(r\) 做前缀积再前缀和得到 \(g\),则 \(g_x\) 代表 \((mid,y]\),其中 \(y\leq x\) 的所有区间乘积的和,于是我们从 \(mid\) 向 \(l\) 枚举统计区间的左端点 \(L\),发现右端点的范围在 \((mid,\min(r,L+k-1)]\),这样就可以使用 \(g\) 得到需要统计的信息了。

\(O(n\log n)\)。

D

对于一个给定的序列 \(a\),要想计算它的权值,可以从头开始找到最短前缀满足 \(\gcd=1\) 删除然后继续做,容易证明这样是最优的。

据此设计 dp,我们希望能够满足每次切出来的一段都是极短的 \(\gcd=1\) 的前缀,那么设 \(dp_{i,j}\) 表示考虑长度为 \(i\) 的前缀,删掉所有极短 \(\gcd=1\) 的前缀后,剩余部分的 \(\gcd=j\) 的方案数,答案就是 \(\sum dp_{i,1}\times K^{n-i}\),因为后 \(n-i\) 个元素任意,并且当前结尾部分可以贡献 \(1\) 的权值。为了满足极短,\(dp_{i,1}\) 不应该参与后续转移,而是直接移动到 \(dp_{i,0}\) 表示开启一个空段。

这样可以写出 \(dp_{i,j}\to dp_{i+1,\gcd(j,k)}\),枚举 \(k\) 做这个的复杂度是 \(O(nK^2)\) 或 \(O(nK^2\log K)\)。

考虑优化,记 \(g_{i,j}=\sum_{k\in [1,K],j|k} dp_{i,k}\),从 \(dp_{i-1}\) 转移过来,则有 \(g_{i,j}=\lfloor \frac{K}{j}\rfloor\times \sum_{k\in[1,K],j|k}dp_{i-1,k}\),即 \(a_i\) 在 \(j\) 的倍数中任选一个,这样的转移是 \(O(K\log K)\) 一轮的。有了 \(g\) 的辅助,\(dp_{i,j}=g_{i,j}-\sum_{j<k\leq K,j|k}dp_{i,k}\),\(dp_{i,0}\) 的转移特殊处理,复杂度同上。于是复杂度变为 \(O(nK\log K)\),可以通过。

E

\(M\) 是质数时可以 dsu on tree 做做。颜色数 \(\leq 10\) 可以对每个颜色分别贡献到每个点上。

\(M\) 是合数的时候没有逆元可以用了,不妨考虑我们要求的东西的结构,即每个颜色有个权值,求所有仅在子树外出现的颜色的权值乘积。不妨考虑对每个颜色选择一个代表点,将代表点的点权设置为该颜色的强度,其它点的点权为 \(1\),则通过 dfn 我们可以做到求子树外的点的权值乘积。为了满足题意,求点 \(u\) 的答案时需要满足 \(u\) 子树里出现过的颜色的代表点都在 \(u\) 子树内,这是容易实现的:初始任意分配代表点,然后在 dfs 过程中,处理完点 \(u\) 的时候,将颜色 \(c_u\) 的代表点换为 \(u\) 并统计点 \(u\) 的答案,此时最近访问的 \(sz_u\) 个点就是 \(u\) 子树中的点,那么这些点一定代表了 \(u\) 子树里的全部颜色,此时子树外的权值乘积就是点 \(u\) 的答案。单点修改,求区间乘积,可以用线段树解决。

\(O(n\log n)\)。

标签:颜色,前缀,mid,s26,权值,mx,dp,gcd
From: https://www.cnblogs.com/winter2020/p/18542050

相关文章

  • MX-S5 T1~T2 题解
    MX-S5题解A.王国边缘题目链接见到循环结构,先把下标转成从\(0\)开始,以方便用同余描述位置。倍增。用二元组来表示位置:\((u,v)\)表示第\(u\)个循环节的第\(v\)个位置。设\(f(i,j)\)表示从位置\((0,i)\)开始跳\(2^j\)次以后的位置。假设已经可以初始化\(f(i,......
  • STM32+cubemx岸电绞车超速报警
    一、项目背景与概述    在当今高度自动化和智能化的时代,对电子系统的功能和性能要求不断提高。本项目旨在基于STM32微控制器开发一个岸电绞车超速报警模块,提供实时监测与控制其旋转速度,确保安全运行。该系统综合运用了嵌入式软件开发技术、硬件电路设计以及信号处......
  • 题解:P11062 【MX-X4-T2】「Jason-1」加法
    一道简单的分讨。思路可分成两种情况。当\(a\)和\(b\)同号时:这种情况,显而易见的是\(|a-b|\)的最小值必定是\(|a|,|b|,|a-b|\)之一。当\(a\)和\(b\)异号时:对\((a,b)\)执行欧几里得算法可以将一个变为\(0\),另一个变为\(\gcd(a,b)\)(忽略正负号)。再将\(0\)变......
  • STM32CubeMX:使用DAC输出正弦波的三种方法(while,定时器中断,DMA)
    1.DAC概念简介:DAC的工作原理是根据数字输入信号的数值,生成相应的模拟输出电压或电流。它通常接收一个二进制数字输入,该数字代表了一个特定的数值范围。DAC通过将这个数字值转换为模拟信号的电压或电流水平来输出。(功能与ADC相反)2.正弦波输出方式1:简单粗暴while循环输出Cub......
  • stm32 HAL 添加 FREERTOS系统(使用stm32cubemx)
    #学习笔记,留存#1.ClockConfiguration(时钟配置)​​​​​​​HSE,LSE选择外部晶振系统时钟选择TIM6,systick(滴答时钟)给FREERTOS用根据自己的芯片配置时钟(我用的是stm32f103zet6)AHB总线72MHZAPB1总线36MHZ APB2总线72MHZ2.ADDFREERTOS(添加实时系统)在Pinout&Co......
  • P11217 【MX-S4-T1】「yyOI R2」youyou 的垃圾桶
    P11217【MX-S4-T1】「yyOIR2」youyou的垃圾桶-洛谷|计算机科学教育新生态(luogu.com.cn)实际上整理整理没什么难的。主要是考数据结构,完了时间复杂度\(O(n\log^2n)\)的树状数组+二分,比\(O(n\logn)\)的线段树上二分还快,而且线段树还差20ms就爆了,线段树还是得优化......
  • MX S28
    A对于一个子矩阵\((x_1,y_1),(x_2,y_2)\),其元素和为\(\sum_{i=x_1}^{x_2}\sum_{j=y_1}^{y_2}S_i\cdotS_j=(\sum_{i=x_1}^{x_2}S_i)(\sum_{j=y_1}^{y_2}S_j)\),\(O(n^2)\)枚举一下\(S\)的所有子区间的和放进一个桶里再检验一下即可。即对于一个子区间和为\(S_1\),需要累加和......
  • 洛谷 P11268 【MX-S5-T2】买东西题 做题记录
    我不会贪心。\(a\)元的物品有\(b\)元的折扣,就相当于\(a\)元的物品有一张\(a-b\)元的优惠券。因为一张优惠券是满\(w\)元才可以用,所以可以用的物品在价格\(a\)上是一段区间\([a,\inf]\)。有一个很朴素的想法是,将每一个物品最多能省多少钱先弄出来,然后用优惠券想办法......
  • TPS26600PWPR 数据手册 一款集成反向输入极性保护的 工业电子保险丝芯片 浪涌保护器
    TPS2660x器件是一系列功能丰富的紧凑型高电压电子保险丝,具有一整套保护功能)。4.2V至60V的宽电源输入范围可实现对众多常用直流总线电压的控制。器件可以承受并保护由高达±60V的正负电源供电的负载。集成的背靠背FET提供反向电流阻断功能,因此器件非常适合在电源故障和欠......
  • 定时器(PWM输出)触发ADC采样(DMA)——STM32CubeMX
    在STM32微控制器中,使用定时器(PWM输出)触发ADC采样是一种常见的应用场景,尤其是在需要精确控制采样时刻和频率的场合。本文将详细介绍如何使用STM32CubeMX配置定时器产生PWM波形,并使用DMA传输ADC采样结果。1.定时器PWM输出配置首先,我们需要在STM32CubeMX中配置定时器以产......