NORMA2 - Norma [cdq分治]】的更多相关文章

题面 洛谷 你有一个长度为n的序列,定义这个序列中每个区间的价值是 \(Cost(i,j)=Min(Ai...Aj)∗Max(Ai...Aj)∗(j−i+1)Cost(i,j)=Min(A_{i}...A_{j})*Max(A_{i}...A_{j})*(j-i+1)\) 其中,\(i,j\)是区间的两个端点. 现在请你求出给定序列所有区间的价值之和. \(n \leq 5e5\) 统计所有子区间 考虑cdq分治 左区间对右区间的贡献如何计算? 用一个cur从mid到L扫左区间 mn,mx表示[…
[BZOJ3745][Coci2015]Norma Description Input 第1行,一个整数N: 第2~n+1行,每行一个整数表示序列a. Output 输出答案对10^9取模后的结果. Sample Input 4 2 4 1 4 Sample Output 109 [数据范围] N <= 500000 1 <= a_i <= 10^8 题解:最近做这种题好像有点多啊~(虽然我基本上都没A). 比较直接的想法就是找出区间的最大值mid,然后分治处理[l,mid-1]和[mi…
洛谷题目传送门 这题推式子恶心..... 考虑分治,每次统计跨过\(mid\)的所有区间的答案和.\(i\)从\(mid-1\)到\(l\)枚举,统计以\(i\)为左端点的所有区间. 我们先维护好\([i,mid]\)区间内最小值\(mn\)和最大值\(mx\).我们可以想到,对于某一个左端点,它的右端点\(j\)在一定的范围内,最小值和最大值都不会变.这里就看到一些可以重复利用并快速计算的信息了. 维护两个指针\(p,q\),分别表示\([mid+1,r]\)内元素值第一个小于\(mn/\)大…
[BZOJ3745]Norma(CDQ分治) 题面 BZOJ 洛谷 题解 这种问题直接做不好做,显然需要一定的优化.考虑\(CDQ\)分治. 现在唯一需要考虑的就是跨越当前中间节点的所有区间如何计算答案了. 从\(mid\)开始向左枚举左端点,考虑右端点的贡献.那么我们在右侧记录两个指针\(p,q\),分别表示左侧的最大值和最小值第一次改变的位置.这两个指针会把整个序列分成三段. 第一段最大值和最小值都是左侧最大最小值,直接计算区间长度和就好了. 第二段是最大值和最小值中一个被改变了,分情况讨论…
[CF526F]Pudding Monsters 题意:给你一个排列$p_i$,问你有对少个区间的值域段是连续的. $n\le 3\times 10^5$ 题解:bzoj3745 Norma 的弱化版.直接cdq分治,考虑最大值和最小值分别在左右两边的情况.这里就当练练手了. #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespac…
前言 辣鸡蒟蒻__stdcall终于会CDQ分治啦!       CDQ分治是我们处理各类问题的重要武器.它的优势在于可以顶替复杂的高级数据结构,而且常数比较小:缺点在于必须离线操作. CDQ分治的基本思想和实现都很简单,但是因为没有人给本蒟蒻详讲,所以我对着几篇论文头疼了一个下午,最终在menci和sxysxy大佬的帮助下学会了CDQ分治.本文介绍一些非常simple的CDQ分治问题,目的在于帮助新手更快地入门CDQ分治,希望对大家有帮助. 转载请注明作者:__stdcall. 基本思想 CD…
[题目分析] 感觉CDQ分治和整体二分有着很本质的区别. 为什么还有许多人把他们放在一起,也许是因为代码很像吧. CDQ分治最重要的是加入了时间对答案的影响,x,y,t三个条件. 排序解决了x ,分治解决了t ,树状数组解决了y. 时间复杂度,排序log,分治log,树状数组也是log 分治中加入了树状数组,所以复杂度带两个log 而整体二分完全没有时间的先后,所以只有一个log. CDQ分治,分治的是时间. 整体二分,分治的是答案. 还是很不同的算法. [代码] #include<iostre…
Description: 三维数点 Solution: 第一道cdq分治...感觉还是很显然的虽然题目不能再傻逼了... Code: /*================================= # Created time: 2016-04-20 10:00 # Filename: hdu5618.cpp # Description: =================================*/ #define me AcrossTheSky&HalfSummer11 #i…
[BZOJ 1176:单点修改,查询子矩阵和]: 1176: [Balkan2007]Mokia Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 2005  Solved: 894[Submit][Status][Discuss] Description 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000. Input 第一行两…
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5322 Description Hope is a good thing, which can help you conquer obstacles in your life, just keep fighting, and solve the problem below. In mathematics, the notion of permutation relates to the ac…