上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 36 下一页
摘要: 题目链接 题目思路 感觉这个dp有点阴间 只可意会不能言传 设$pre[i]$表示第$i$张优惠卷上次是在第$i$天用 $dp$的正确性还是很显然,但是这种写法还是第一次见 代码 #include<bits/stdc++.h> using namespace std; typedef long lo 阅读全文
posted @ 2021-07-23 21:58 hunxuewangzi 阅读(439) 评论(1) 推荐(1) 编辑
摘要: 题目链接 题目大意 要你一构造一个长度为$n$的只包含$b,r$字符的串,使得子串中$r$的数量为奇数的最多 题目思路 问的qls,确实有点秒 把字符r设为1,b设为0,那么子串中r的数量就是前缀和之差,即前缀和差为奇数 那么n+1个前缀和里,奇数和偶数的个数应该尽可能相近,即前缀的奇数偶数各分一半 阅读全文
posted @ 2021-07-23 20:48 hunxuewangzi 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 这个不知道叫啥感觉算是个二进制dp把 设$n$为化简为$2$进制的最高位数 我最开始是直接$3^n$枚举子集,但是喜提$TLE$ 标准是$n\times2^n$ 每次枚举只枚举比他多一个1的元素,然后从大到小for过去就能得到答案 因为比他多一个1的元素也枚举了比他多一个1的元素 阅读全文
posted @ 2021-07-22 22:31 hunxuewangzi 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 第一问就是构造$b[i]=a[i]-i$,然后求最长上升子序列 第二问就是假如$b[l],b[r]$满足,而且中间没有满足的情况,那么就前一段变为$b[l]$后一段变为$b[r]$ 结论还是很显然的,但是写起来没那么方便,细节++ 发现好多省选题目代码细节多的一批 代码 #inc 阅读全文
posted @ 2021-07-22 19:58 hunxuewangzi 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目大意 给一个数组$a$,求数组$a$中所有大小为$k$的子集的$\gcd$的乘积。 题目思路 是一个比较经典的贡献问题 下面说下注意的点 求欧拉函数不能直接暴力for 2 3 4 5这样枚举 要直接枚举质数 欧拉降幂注意对于大于$\phi(x)$的$y$,其结果应该是$y; mod;\ 阅读全文
posted @ 2021-07-21 21:33 hunxuewangzi 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 结论 把结论记录下,其实费马小定理就是欧拉降幂的一个衍生 $\phi(x)$表示$x$的欧拉函数 对于非特殊的情况下 $$ ab=\left{ \begin ab & & {b<\phi(m)}\ a^{b;mod;\phi(m)+\phi(m)} & & {b \geq \phi(m)}\ \en 阅读全文
posted @ 2021-07-21 21:10 hunxuewangzi 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 设$dp[i][j]$表示长度为$i$的字符串匹配长度为$j$的字符串 如果第$i+1$个字符等于$s[j+1]$ 那么就转移到$dp[i+1][j+1]$ 否则根据$kmp$那么此时$j=nxt[j]$ 然后再递归判断 数据这么大要往矩阵快速幂的思路去思考 设$base.a[i 阅读全文
posted @ 2021-07-21 15:03 hunxuewangzi 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目大意 所有操作均为查询操作 求$a[l],a[l+1]...a[r]\(中有多少个数在\)[a,b]$中 以及有多少个不同的数在$[a,b]$中 题目思路 全为查询考虑莫队 莫队的修改为$O(n\sqrt)$ 查询为$O(m)$ 而分块的修改一次$O(1)$ 查询一次为$O(\sqrt 阅读全文
posted @ 2021-07-20 21:44 hunxuewangzi 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目大意 如果没有值,那么$a[i]=a[i-1]+1$最优 具体证明我不太会 但是栈元素如果多了,到时候可以变少,少了却不能变多了 然后确定所有$a[i]$ 如果$a[i]>a[i-1]+1$就不存在,因为每次最多入栈一个元素 然后再进行分治求解即可 分治的过程有点意思 复杂度$O(n) 阅读全文
posted @ 2021-07-19 21:41 hunxuewangzi 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目大意 对数组又2种操作 1、区间整体赋值 2、询问[l,r]是否有长度为d的循环节 题目思路 其实就是一个结论 如果s[l,r-d]==s[l+d,r],那么就有长度为d的循环节,自己画图演示即可发现 然后线段树维护hash即可 代码 #include<bits/stdc++.h> u 阅读全文
posted @ 2021-07-19 10:24 hunxuewangzi 阅读(43) 评论(0) 推荐(0) 编辑
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 36 下一页