AB序列 凹函数的性质】的更多相关文章

链接:https://www.nowcoder.com/acm/contest/113/B来源:牛客网 题目描述 给长度为n的序列A,长度为m的序列B.可以给A序列里每个元素加上x且B序列里每个元素减去x (x可以是负数),问的最小值 输入描述: 第一行两个整数分别表示n,m接下来一行n个整数表示序列A接下来一行m个整数表示序列B 输出描述: 输出一个整数表示答案 输入例子: 4 5 -8 2 -4 10 5 -5 -4 -9 10 输出例子: 57 --> 示例1 输入 复制 4 5 -8 2…
题面 [错解] 一眼不可做啊 哎分治? 算不了啊 真的是,打暴力走人 20pts (事实上,还有20pts是随机数据,加个小小的特判就可以) [正解] 首先,从l开始往后gcd最多只有O(log)种取值,并且是单调减的 所以我们可以二分log次边界,用线段树维护区间gcd,可以做到\(O(Nlog_N^4)\) 事实上,gcd多算了也没有影响,所以可以用st表优化到\(O(Nlog_N^3)\) 然而上面的做法和正解没有一点关系 我们发现每次都会二分很多重复的,显得很浪费农民伯伯种操作次数很辛苦…
题目描述 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子.某天,Jiajia.Wind和孩子们决定在家里玩捉迷藏游戏.他们的家很大且构造很奇特,由N个屋子和N-1条双向走廊组成,这N-1条走廊的分布使得任意两个屋子都互相可达. 游戏是这样进行的,孩子们负责躲藏,Jiajia负责找,而Wind负责操纵这N个屋子的灯.在起初的时候,所有的灯都没有被打开.每一次,孩子们只会躲藏在没有开灯的房间中,但是为了增加刺激性,孩子们会要求打开某个房间的电灯或者关闭某个房间的电灯.为了评估某一次游戏的…
2209: [Jsoi2011]括号序列 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 833  Solved: 392[Submit][Status] Description Input 输入数据的第一行包含两个整数N和Q,分别表示括号序列的长度,以及操作的个数. 第二行包含一个长度为N的括号序列. 接下来Q行,每行三个整数t.x和y,分别表示操作的类型.操作的开始位置和操作的结 束位置,输入数据保证x不小于y.其中t=0表示询问操作.t=1表…
prufer序列是一个定义在无根树上的东西. 构造方法是:每次选一个编号最小的叶子结点,把他的父亲的编号加入到序列的最后.然后删掉这个叶节点.直到最后只剩下两个节点,此时得到的序列就是prufer序列. 这个构造可以用优先队列做到 $O(n\log n)$. 至于如何用prufer序列反推出树,我还有点没看懂怎么 $O(n\log n)$,以后看懂了再来填坑吧. prufer序列的一些性质: 一棵 $n$ 个点的无根树prufer序列长度为 $n-2$. 无根树和prufer序列一一对应,一个无…
前言 \(prufer\)序列应该是一个比较实用的东西. 据\(hl666\)大佬说,一切与度数有关的树上计数问题,都可以用它以及它的性质来解决. 而听说\(ZJOI\)最近特别喜欢出计数题,所以有必要学一学. 转化\(1\):从无根树到\(prefur\)序列 现在,给你一棵树,我们要考虑如何把它变成\(prefur\)序列. 我们需要重复进行以下操作,直至树中只剩下两个点: 找到一个度数为\(1\),且编号最小的点.(其中编号最小保证了后面将会提到的\(prufer\)序列的唯一对应性,同时…
#include "stdio.h" #include "stdlib.h" #define random(x) (rand()%x) void creat_array(int a[],int len,int max); void print_array(int a[],int n); void main(){ printf("please input two numbers as the array's length and the array's ma…
树的计数 bzoj-1211 HNOI-2004 题目大意:题目链接. 注释:略. 想法: prufer序列有一个性质就是一个数在prufer序列中出现的次数等于这个prufer序列生成的树中它的度数-1. 故此我们就是要求$C_{n-2}^{d_1-1}\times C_{n-2-d_1+1}^{d_2-1}\times \cdots \times C_{d_n-1}^{d_n-1}$. 随便搞搞就行了. Code: #include<cstdio> #include<cstring&…
题面传送门 这道题为什么我就没想出来呢/kk 对于每组询问 \([l,r]\),我们首先求出区间 \([l,r]\) 中最小值的位置 \(x\),这个可以用 ST 表实现 \(\mathcal O(n\log n)-\mathcal O(1)\) 维护,那么显然 \(\forall l'\in[l,x],r'\in[x,r],\min\limits_{t\in[l',r']}a_t=a_x\),产生的贡献为 \((r-x+1)(x-l+1)a_x\),于是我们只用计算 \([x+1,r],[l,…
什么是 prufer 序列 是可以和 \(n\) 个有标号节点的无根树一一对应的长度为 \(n-2\) 的序列. 一般来说是用于和树相关的组合计数问题,但是可能会出现一些变形,所以除了要了解一些性质,大致的构造思路也要知道. 如何构建 prufer 序列 每次选择一个编号最小的叶结点并删掉它,然后在序列中记录下它连接到的那个结点. 重复 \(n-2\) 次后就只剩下两个结点,算法结束. 如何还原 prufer 序列 每次选择一个度数为 \(1\) 的最小的结点编号,与当前枚举到的 Prufer…