首页 > 其他分享 >mx 五月 csp-j

mx 五月 csp-j

时间:2024-05-24 19:08:29浏览次数:13  
标签:gcd bmod times ge 五月 csp mx dp equiv

T1

考虑只有第二种操作。显然可以维护 \(a_i\) 代表当前序列的第 \(i\) 个数是什么。

观察到变换只和 \(k\% 3\) 的值有关。

对于第一种操作,显然可以令 \(k\leftarrow k\% n\)。观察到这种变换将整个序列视为一个环更方便一点,于是维护变换后第一个数的下标是多少。输出时按照环的原则输出。

综合起来,就是维护 \(begin\) 代表起点,第一种操作时直接改变起点,第二种操作改变从起点开始的三个数的 \(a_i\) 即可。

T2

令 \(dp_{i,j}\) 代表前 \(i\) 个数划分了 \(j\) 段的方案数。

\[dp_{i,j}=\sum_{k=1}^{i-1}dp_{k,j-1}\times [(s_i-s_k)\text{is a multiple of j}] \]

这是 \(O(n^3)\) 的,考虑优化。

根据同余的知识,\(s_i-s_k\) 是 \(j\) 的倍数当且仅当 \(s_i\equiv s_k\bmod j\)。

用一个类似 csp-s2023 T2 的技巧,加一个 \(g_{i,j}\) 辅助转移。

\[g_{i,j}=\sum dp_{k,i}[s_k\equiv j\bmod (i+1)] \]

然后做完了。

T3

和之前做过的一道 CF 很像,都是类似的二分实数。

根据直觉,选择二分答案 \(k\)。

推柿子。

\[\frac{y_i-y_j}{x_i-x_j}\ge k \]

\(x_i-x_j\) 有正有负很难受,排序一下。

\[y_i-y_j\ge k\times (x_i-x_j) \]

\[y_i-y_i\ge k\times x_i-k\times x_j \]

\[y_i-k\times x_i\ge y_i-\times x_j \]

于是按照 \(y_i-k\times x_i\) 重新赋值。找一个最长不升子序列即可。

时间复杂度 \(O(n\log^2 n)\)。

T4

很好的题。

分类讨论。

  • \(k=1\),此时答案为 \(0\)。

  • \(n\equiv 0\bmod k\),会取走 \(k,2\times k,\cdots\),答案很好计算。

  • \(\gcd(k,n)\ne 1\),此时将 \(k\) 换成 \(\gcd(k,n)\) 显然是不劣的。

  • \(\gcd(k,n)=1\),按照 \(i\bmod k\) 对整个序列分成 \(k\) 类,会按某些顺序拿每个类。直接模拟即可。

时间复杂度 \(O(M^2\log n)\)。

标签:gcd,bmod,times,ge,五月,csp,mx,dp,equiv
From: https://www.cnblogs.com/BYR-KKK/p/18211555

相关文章

  • CSP历年复赛题-P1061 [NOIP2006 普及组] Jam 的计数法
    原题链接:https://www.luogu.com.cn/problem/P1061题意解读:从编号s~t的字母从挑w个,组成一种特殊的数字,数字里字母都是升序的,给定初始数字,要计算后5个。解题思路:1、模拟法模拟样例:2105有效字母范围:b,c,d,e,f,g,h,i,j 初始值:bdfij要计算bdfij的下一个,采取如下步骤......
  • [IMX6ULL驱动开发]-Linux对中断的处理(一)
    目录中断概念的引入ARM架构中断的流程异常向量表Linux系统对中断的处理ARM对程序和中断的处理Linux进程中断处理中断概念的引入如何理解中断,我们可以进行如下抽象。把CPU看做一个母亲,当它正在执行任务的时候,可以看为是一个母亲在看书。此时可能发生许多不同的情况,比......
  • CubeMX离线安装stm32f1固件包
    一.打开CubeMX软件点击Help选择Manageembededsoftwarepackages二、找到STM32F1版本最新的固件包,点击install 三、登录账号 四、等待下载完成五、下载完成......
  • CCF/CSP认证-第一次-命令行选项
    1.问题1.1命令行选项请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后......
  • CSP历年复赛题-P1046 [NOIP2005 普及组] 陶陶摘苹果
    原题链接:https://www.luogu.com.cn/problem/P1046题意解读:30+伸手的高度,能够得着几个苹果。解题思路:直接模拟。100分代码:#include<bits/stdc++.h>usingnamespacestd;inta[15],h,ans;intmain(){for(inti=1;i<=10;i++)cin>>a[i];cin>>h;......
  • CSP历年复赛题-P1087 [NOIP2004 普及组] FBI 树
    原题链接:https://www.luogu.com.cn/problem/P1087题意解读:字符串作为根,左边一半作为左子树,右边一半作为右子树,递归构造数,并按FBI规则输出后续遍历结果。解题思路:按照题意,通过dfs来构造树,对于字符串str,提取左边一半递归构造左子树,提取右边一半递归构造右子树,前提是字符串长度>1......
  • CSP历年复赛题-P1085 [NOIP2004 普及组] 不高兴的津津
    原题链接:https://www.luogu.com.cn/problem/P1085题意解读:找到两数之和大于8且两数之和最大值的位置解题思路:不多说,送分题,直接模拟法即可100分代码:#include<bits/stdc++.h>usingnamespacestd;inta,b;intmaxx,maxn;intmain(){for(inti=1;i<=7;i++)......
  • CSP历年复赛题-P1044 [NOIP2003 普及组] 栈
    原题链接:https://www.luogu.com.cn/problem/P1044题意解读:一组数入栈、出栈的方案数,如果了解卡特兰数,此题可以秒杀;如果不了解,也可以通过递归或者递推来解决;最次,可以通过DFS暴搜出方案数,当然对于n个数,一共有n次入栈、n次出栈,一共2n次,每次要么入栈要么出栈,总搜索次数在22n规模,n最......
  • CSP历年复赛题-P1045 [NOIP2003 普及组] 麦森数
    原题链接:https://www.luogu.com.cn/problem/P1045题意解读:要计算2p-1的位数和最后500位,实际上只需要计算2p,两者位数一致,前者比后者个位减1即可,且个位肯定不会是0,比较容易处理。解题思路:如果直接采用高精度乘法计算2p,p最大3.1*106,高精度所用数组最长大概9*105,一共最多计算3.......
  • CSP历年复赛题-P1043 [NOIP2003 普及组] 数字游戏
    原题链接:https://www.luogu.com.cn/problem/P1043题意解读:将n个环形数分成任意m组,组内求和再%10、负数转正,组间相乘,求所有分组方案中得到结果的最小值和最大值。解题思路:比赛题的首要目的是上分!此题一看就是DP,但是苦苦思索了半天,想不清楚状态表示,那么可以换换策略,先暴力得分再......