摘要: 例题: "luoguP4735" 可持久化$Trie$嘛,就和可持久化线段树差不多。这篇文章只是借例题讲一讲如何截取一段时间的信息。 直接讲题大家就可理解。 题目大意 有两种操作,第一种在数组末尾加上一个数,第二种在$l\leqslant p\leqslant r$中求最大的$ a[p] \bigo阅读全文
posted @ 2018-12-30 10:53 chy_2003 阅读(4) 评论(0) 编辑
摘要: 问题描述 这题的体面真的妙……望大家结合样例正确理解题意…… 首先来个样例解释: 解题思路 我们发现,问题实际上是求一系列的$\sum_{i=a}^bi^k$。那么问题可以转换为求$\sum_{i=1}^ni^k$。 我们不妨记$\sum_{i= 1}^ni^k$为$S_{n,k}$。现在考虑如何求阅读全文
posted @ 2018-12-29 22:24 chy_2003 阅读(6) 评论(0) 编辑
摘要: [TOC] 前言 树状数组由于其优越的常数,优越的代码量,更小的空间占用,所以常被使用。(实际上$ZKW$线段树常数也小,码量也小,功能更强大,但是较难理解~~所以哪位大佬教我一下~~)下面就较为详细地介绍树状数组。 然而本博客可能写得较难理解…… 树状数组原理 如果我们令一个数组$A[1]=a[1阅读全文
posted @ 2018-12-20 22:00 chy_2003 阅读(7) 评论(0) 编辑
摘要: 题目大意 有不超过$50000$个询问,每次询问有多少正整数对$x$,$y$,满足$x\leqslant a$,$y \leqslant b$,并且$gcd(x,y)=c$。其中$a,b,c\leqslant 50000$ 解题思路 我们发现 $$ Ans=f(n)=\sum_{x=1}^{a}\s阅读全文
posted @ 2018-12-18 19:51 chy_2003 阅读(5) 评论(0) 编辑
摘要: 题目大意 有至多$10000$组询问,问$1 using namespace std; const int MaxN = 10000010; int Mu[ MaxN ], Vis[ MaxN ]; long long Sum[ MaxN ]; int Num, Prime[ 1000010 ]; 阅读全文
posted @ 2018-12-18 16:27 chy_2003 阅读(7) 评论(0) 编辑
该文被密码保护。
posted @ 2018-12-16 09:57 chy_2003 阅读(3) 评论(0) 编辑
摘要: 当某天,本蒟蒻沉迷于卡常的时候: 我…… 突然,YYKdalao说:用文操快读啊! 然后 喔~目瞪口呆 不多说,上源码: 本来用的读入方式: c++ inline void Read( int &x ) { x = 0; char ch = getchar(); for( ; ch '9'; ch 阅读全文
posted @ 2018-11-06 18:01 chy_2003 阅读(53) 评论(0) 编辑
该文被密码保护。
posted @ 2018-10-27 14:56 chy_2003 阅读(14) 评论(0) 编辑
摘要: 解题思路 首先考虑最暴力的做法。对于每一步,我们都可以枚举每一条边,然后更新每两点之间经过$k$条边的最短路径。但是这样复杂度无法接受,我们考虑优化。 由于点数较少(其实最多只有$200$个点),$N$较大,考虑优化$N$。我们发现,其实可以直接从经过$i$条边的最短路和经过$j$条边的最短路推出经阅读全文
posted @ 2018-10-12 14:15 chy_2003 阅读(14) 评论(0) 编辑
摘要: 解题思路 我们很愉快地发现了这题可以离线。然后我们就尝试预处理所有时间所有点对间的方案数。我们将其维护在$F$里。$F[i][j][k]$表示从$i$到$j$,经过$k$个点的方案数。 当我们从$k$向$k+1$转移的时候,我们枚举点$u$、$v$,如果$u$到$v$有一条边,那么我们将$F[i][阅读全文
posted @ 2018-10-11 18:24 chy_2003 阅读(15) 评论(0) 编辑
摘要: 解题思路 题目里要求$\sum_{i=1}^kA^i$,我们不妨再加上一个单位矩阵,求$\sum_{i=0}^kA^i$。然后我们发现这个式子可以写成这样的形式:$A(A(A...)+E)+E)+E$于是,我们可以将$ A+E$看做一次变换,然后尝试构造一个矩阵。我们发现: $$ (\left[ \阅读全文
posted @ 2018-10-11 16:48 chy_2003 阅读(10) 评论(0) 编辑
摘要: 解题思路 首先肯定是考虑如何快速求出一段铁路的价值。 $$ \sum_{i=1}^k \sum_{j=1, j\neq i}^kA[i]A[j]=(\sum_{i=1}^kA[i])^2 \sum_{i=1}^kA[i]^2 $$ 那么我们要维护如下两个东西,就可以在$O(1)$内求出一段铁路的价值阅读全文
posted @ 2018-10-10 19:56 chy_2003 阅读(14) 评论(0) 编辑
摘要: 问题分析 首先,如果一个人的$w$和$h$均小于另一个人,那么这个人显然可以被省略。如果我们将剩下的人按$w[i]$递增排序,那么$h[i]$就是递减。 之后我们考虑DP。 我们设$f[i][j]$为到第$i$个人,打了$j$个洞的花费。于是我们可以得到如下DP过程: C++ for( LL i =阅读全文
posted @ 2018-10-09 09:39 chy_2003 阅读(7) 评论(0) 编辑
摘要: 题目大意 定义一个从小到大的数列的中位数为第 $ \frac{n}{2}+1 $ 项。求一个序列的所有连续子序列的中位数的中位数。 $ (n \leqslant 100000)$ 问题分析 由于$n$的范围较大,所以不可能把序列构造出来。我们不妨换个角度分析。我们设最后的序列总共有$N=\frac{阅读全文
posted @ 2018-10-07 20:44 chy_2003 阅读(33) 评论(0) 编辑
摘要: 解题思路 第一步显然是将原数组排序嘛……然后分成一些不相交的子集,这样显然最小。重点是怎么分。 首先,我们写出一个最暴力的$DP$: 我们令$F[ i ][ j ] $ 为到第$i$位,分成$j$组的代价,我们可以写出如下 $ DP$ C++ for( LL i = 1; i k$且从$l$转移优于阅读全文
posted @ 2018-10-07 20:23 chy_2003 阅读(14) 评论(0) 编辑
摘要: 题目大意 给定一个长度为$n(n \leqslant 500000)$的数列,将其分割为连续的若干份,使得 $ \sum ((\sum_{i=j}^kC_i) +M) $ 最小。其中$C_i$为序列中的项的值,$M$为常数。$ j,k $ 表示在原序列中连续的某一段的起始位置和结束位置。 解题思路 阅读全文
posted @ 2018-10-07 13:18 chy_2003 阅读(10) 评论(0) 编辑
该文被密码保护。
posted @ 2018-09-19 22:18 chy_2003 阅读(35) 评论(2) 编辑
摘要: [TOC] 本文章内,若无特殊说明,数字指的是整数,除法指的是整除。 什么是逆元 我们称$a$是$b$在模$p$情况下的逆元,则有$a \times b \equiv 1 ( mod\,\,p)$。 所以呢,我们其实可以将逆元看成一个数的相反数。所以在除以一个数的时候,就相当于乘上它的相反数。 如何阅读全文
posted @ 2018-09-16 17:49 chy_2003 阅读(187) 评论(0) 编辑
摘要: ~~我概率期望真是垃圾……,这题搞了两个钟头……~~ 题意 有$n$个人,$m$个浴室,每个浴室里有$a_i$个浴缸。每个人会等概率随机选择一个浴室,然后每个浴室中尽量平分到每个浴缸。问期望最长排队队伍长度是多少? 解题思路 我看网上的题解都是直接$DP$期望,然而本蒟蒻看不懂那个递推式是什么鬼……阅读全文
posted @ 2018-09-14 15:08 chy_2003 阅读(20) 评论(0) 编辑
摘要: 题意 有一个含有$2n(n \leqslant2000)$个实数的数列,取出$n$个向上取整,另$n$个向下取整。问取整后数列的和与原数列的和的差的绝对值。 就是说,令$a$为原数列,$b$为取整后数列,求 $$ min(abs(\sum_{i=1}^{2n}a \sum_{i=1}^{2n}b))阅读全文
posted @ 2018-09-13 21:07 chy_2003 阅读(13) 评论(0) 编辑