给定数组a[],b[] 求$$c_i=\sum_{j=1}^{i} a_{\left \lfloor \frac{n}{j} \right \rfloor}·b_{i \bmod j}$$ 大概就是对于每一个n求上面那个式子,显然数论分块 乱搞有$$c_n=\sum_{i=1}^{n} a_{\left \lfloor \frac{n}{i} \right \rfloor}·b_{n-\lfloor \frac{n}{i} \rfloor * i}$$ 当在同一块内,也就是$\lfloor \f…
mmt 居然第一步膜化乘除 都没看出来,没救了... 大概是贡献前缀和优化的做法 巨兔式讲解:大家都学会了么? 咱发现有大量的 (i/j , i%j ) 同时 对很多 c 产生了贡献,咱可以去优化这一部分的转移,具体做法就是根据前面能加的后面也能加,然后一路累加且算贡献 对于小于根号的所有 i/j ,咱可以优化这一部分转移,然后对于大于根号的 i/j ,暴力算就好了,两者复杂度都是是 n 根号 n 的 //by Judge #include<bits/stdc++.h> #define Rg…
NOI.AC NOIP模拟赛 第三场 补记 列队 题目大意: 给定一个\(n\times m(n,m\le1000)\)的矩阵,每个格子上有一个数\(w_{i,j}\).保证\(w_{i,j}\)互不相同.\(q(q\le5\times10^5)\)次询问,每次给出\(x,y\),询问有多少数满足在本行是第\(x\)大,在本列是第\(y\)大. 思路: 对每行.每列分别排序,求出每个数是本行.本列第几大.然后即可预处理答案. 时间复杂度\(\mathcal O(n^2\log n)\). 源代码…
题目链接:http://noi.ac/contest/12/problem/37 题目: 小W收到了一张纸带,纸带上有 n个位置.现在他想把这个纸带染色,他一共有 m 种颜色,每个位置都可以染任意颜色,但是他发现如果某连续 m 个位置被染成了 m 种不同的颜色,那么就不美观,于是他决定让任意的相邻 m 个位置的颜色至少有两个位置相同.他想知道他一共有多少种染色的方案. 输入格式 第一行三个整数 n,m,p. 输出格式 输出一行一个整数,表示答案对 p 取模的结果. 题解: 我们考虑DP,设序列为…
本来想抢三题的 rk1 ?[无耻 最后发现 T2 好像还是慢了些,只搞了个 rk2 子段与子段 第一题随便分析一下,发现一段区间中某个元素的贡献次数就是 \((x+1)·(y+1)\) x 是他左边的元素个数, y 是右边(当然指的是询问区间内) 由于异或的性质,一个元素最终贡献次数膜 2 后结果一样 那么我们发现对于长度为偶数的区间答案必然是 0 proof: 不难证明每个元素的贡献次数都是偶数次的 对于长度为奇数的区间,我们发现答案是以区间左端点开始,右端点结束的步长为 2 的序列的异或和…
传送门 Solution A. 一共有\(T\)组数据 每次询问你\([l,r]\)中有多少个数能被他的所有数位整除(如果数位中含有\(0\)忽略掉) 数位dp,咕咕咕 B. 题面略 考虑一个个只有两个元素组成的小区间 可以发现若选择\([l,l+1]\),则必定要选择一个最大的区间包含\([a[l],a[l+1]]\)的区间 每个小区间看成一个点,向它所要求必须要选择的点连边,线段树优化建图 对图进行tarjan缩点,然后拓扑排序即可 全是区间询问,大概要有5棵线段树的样子 其实有简单得多的解…
传送门 明明没参加过却因为点进去结果狂掉\(rating\)-- \(A\) 集合 如果我们记 \[f_k=\sum_{i=1}^nT^i{n-i\choose k}\] 那么答案显然就是\(f_{k-1}\) 然后就可以开始推倒了 \[ \begin{aligned} f_k &=\sum_{i=1}^nT^i{n-i\choose k}\\ &=\sum_{i=1}^nT^i{n-i-1\choose k}+\sum_{i=1}^nT^i{n-i-1\choose k-1}\\ &am…
NOI.AC NOIP模拟赛 第五场 游记 count 题目大意: 长度为\(n+1(n\le10^5)\)的序列\(A\),其中的每个数都是不大于\(n\)的正整数,且\(n\)以内每个正整数至少出现一次. 对于每一个正整数\(k=1,..,n+1\),求出的本质不同的长度为\(k\)的子序列的数量.对\(10^9+7\)取模. 思路: 由于只会有一个数会重复,因此考虑重复的这个数取\(0\)个.\(1\)个和\(2\)个的情况,用组合数直接算即可. 源代码: #include<cstdio>…
NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下.左.右.左上.左下.右上.右下这\(8\)个方向移动.其中每一个皇后可以攻击这八个方向上离它最近的皇后. 求有多少皇后被攻击到\(0,1,\ldots,8\)次. 保证\(m\)个皇后中任意两个不在同一个位置. 思路: 考虑左右方向的攻击,对每一行开一个set,按列编号插入,看一下是否存在前驱/后…
NOI.AC NOIP模拟赛 第四场 补记 子图 题目大意: 一张\(n(n\le5\times10^5)\)个点,\(m(m\le5\times10^5)\)条边的无向图.删去第\(i\)条边需要\(w_i\)的代价.现在要通过删去一些边,使得剩下的满足对于这个图的任意一些点,这些点之间互联的边数小于这些点的总点数.求总代价最小值 思路: 不难发现答案为整张图代价和-最大生成森林代价和. 时间复杂度\(\mathcal O(m\alpha(n))\). 源代码: #include<cstdio…