随笔分类 - OJ—bzoj
摘要:4542: [Hnoi2016]大数 链接 分析: 如果p等于2或者5,可以根据最后一位直接知道是不是p的倍数,所以直接记录一个前缀和即可。 如果p不是2或者5,那么一个区间是p的倍数,当且仅当$\frac{b[l] - b[r + 1]}{10 ^ {r - l + 1}} = 0 \ (mod
阅读全文
摘要:3235: [Ahoi2013]好方的蛇 链接 分析: 可以求出以每个点为顶点的满足条件的矩形有多少个,单调栈求。设为sum。 然后对这个数组进行二维前缀和,可以求出每个矩阵内,以右下角、左下角为端点的矩形有多少个,分别设为f,g。 然后可以枚举一个点(x,y),计算有多少个矩形的左上角是这个点,然
阅读全文
摘要:3503: [Cqoi2014]和谐矩阵 链接 分析: 对于每个点,可以列出一个方程a[i][j]=a[i][j-1]^a[i][j+1]^a[i-1][j]^a[i+1][j],于是可以列出n*m个方程,高斯消元,复杂度$O(n^3m^3)$。可以再bitset优化一下。 还有一种复杂度更优的做法
阅读全文
摘要:2734: [HNOI2012]集合选数 链接 分析: 转化一下题意。 1 3 9 27... 2 6 18 54... 4 12 36 108... 8 24 72 216... ... 写成这样的矩阵阵后,那么题意就是不能选相邻的点,求方案数。可以知道行不超过18,列不超过11,然后状压dp即可
阅读全文
摘要:4557: [JLoi2016]侦察守卫 链接 分析: 因为D比较小,所设状态f[i][j]表示子树i内,从i往下第j层及第j层以下都覆盖了的最小代价,g[i][j]表示覆盖完子树内所有点,还可以往上覆盖j层的最小花费。 g的转移从子树内转移的时候,可以覆盖其他子树内的点, f数组直接求和即可。 最
阅读全文
摘要:4538: [Hnoi2016]网络 链接 分析: 整体二分。 对于一次操作,可以二分一个答案mid,判断权值大于mid的路径是否全部经过这个点。如果是 ,那么这次询问的答案在[l,mid-1]之间,否则在[mid,r]之间。 判断是否所有的路径经过一个点:等价于数经过这个点的路径条数,对于一条路径
阅读全文
摘要:5469: [FJOI2018]领导集团问题 链接 题意: 要求在一棵树内选一个子集,满足子集内的任意两个点u,v,如果u是v的祖先,那么u的权值小于等于v。 分析: dp[u][i]表示在u的子树内,最大的数是i的时候,最多选多少点。其中每个i都要和i+1取max,即每个i维护后缀最大值。 考虑优
阅读全文
摘要:2194: 快速傅立叶之二 链接 分析: 把相乘的,列到纸上,看一看就明白了。 k为0的情况: k为1的情况,7没有与它相连的点的了,于是可以加倍a数组。 其他的同理,然后怎么快速求出这些位置的乘积之和。 将a数组翻转然后就是一个卷积的形式了,于是可以FFT。b数组后面填0即可。 代码:
阅读全文
摘要:4827: [Hnoi2017]礼物 链接 分析: 求最小的$\sum_{i=1}^{n}(x_i-y_i)^2$ 设旋转了j位,每一位加上了c。 $\sum\limits_{i=1}^{n}(x_{i+j}+c-y_i)^2$ $=\sum\limits_{i=1}^{n}x_{i+j}^2+y_
阅读全文
摘要:5289: [Hnoi2018]排列 链接 分析: 首先将题意转化一下:每个点向a[i]连一条边,构成了一个以0为根节点的树,要求选一个拓扑序,点x是拓扑序中的第i个,那么价值是i*w[x]。让价值最大。 然后贪心:直观的考虑,应该让权值小的尽量靠前,那么依次考虑当前最小的权值,一旦选了它的父节点,
阅读全文
摘要:5288: [Hnoi2018]游戏 链接 分析: 考虑y<=x的怎么做,那么只能从左边走到右边。我们可以从最右边的点开始,一次确定每个点往右边可以走多少。 L[x],R[x]分别是x向左向右最远走到的位置,初始L[x]=x,R[x]=x。R[n]=n,然后看n-1,如果n-1存在打开n-1这扇门的
阅读全文
摘要:5290: [Hnoi2018]道路 链接 分析: 注意题目中说每个城市翻新一条连向它的公路或者铁路,所以两种情况分别转移一下即可。 注意压一下空间,最后的叶子节点不要要访问,空间少了一半。 代码:
阅读全文
摘要:5286: [Hnoi2018]转盘 链接 分析: $\min\limits_{i=1}^n \{ \max\limits_{j=i}^{i + n - 1} \{ a_{j}+i \} \} +n-1$ $\min\limits_{i=1}^n \{ \max\limits_{j=i}^{2n}
阅读全文
摘要:5285: [Hnoi2018]寻宝游戏 链接 分析: 从下面依次确定运算符号,然后在确定的过程中,需要确定的位数会逐渐减少。比如最后有一个1,如果在从下往上确定了一个or 1,那么再往前可以随便选了。 那么就是要求从下往上,第一个出现的or 1要在and 0之前。如果将这一位上的每一个数字拿出来,
阅读全文
摘要:4515: [Sdoi2016]游戏 链接 分析: 树链剖分 + 超哥线段树。注意细节。 代码:
阅读全文
摘要:4820: [Sdoi2017]硬币游戏 链接 分析: 期望dp+高斯消元。 首先可以建出AC自动机,Xi表示经过节点i的期望次数,然后高斯消元,这样点的个数太多,复杂度太大。但是AC自动机上末尾节点只有n个,并且只有n个有用。所以考虑优化一下。 一个串内部的转移是没有必要的,考虑转移到结尾节点的转
阅读全文
摘要:4513: [Sdoi2016]储能表 链接 分析: 数位dp。 横坐标和纵坐标一起数位dp,分别记录当前横纵坐标中这一位是否受n或m的限制,在记录一维表示当前是否已经大于k了。 然后需要两个数组记录答案,分别记录个数和答案的和。 语意不清了。。。看代码吧。。 代码:
阅读全文
摘要:1444: [Jsoi2009]有趣的游戏 链接 分析: 如果一个点回到0号点,那么会使0号点的概率增加,而0号点的概率本来是1,不能增加,所以这题用期望做。 设$x_i$表示经过i的期望次数,然后初始可以知道$x_0=0$,又因为末尾节点只会经过一次,所以末尾节点的概率就是期望。 然后建出AC自动
阅读全文
摘要:4821: [Sdoi2017]相关分析 链接 分析: 大力拆式子,化简,然后线段树。注意精度问题与爆longlong问题。 代码:
阅读全文
摘要:2115: [Wc2011] Xor 链接 分析: 对于图中的一个环,是可以从1到这个环,转一圈然后在回到1的,所以可以一开始走很多个环,然后在走一条1到n的路径。 那么可以求出所有的环,加入到线性基中,然后任意一条1->n的路径,取一遍最大值。 如果1->n的路径就是最终要走的路径,那么就取到了。
阅读全文