bzoj 5055: 膜法师 树状数组+离散】的更多相关文章

先枚举每一个数,看它前面有几个比它小,算一下和为sum1,后面有几个比它大,算一下和为sum2,对答案的贡献为A[i]*sum1*sum2. 离散化后,树状数组就可以了. 就是倒着一边,顺着一边,统计就ok了,离散是为了大小,先后顺序(方便去重) #include<cstdio> #include<algorithm> #include<cmath> #include<iostream> #include<cstring> #include<…
5055: 膜法师 Time Limit: 10 Sec  Memory Limit: 128 MB Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘积, 但目前的宇宙很不乐观,胡乱偷取可能造成维度的崩溃, 所以,他必须按逆序偷取这些维度,且在偷取中, 每次偷取的维度的能量必须严格小于他上次偷取的能量, 由于膜法师生活在多元宇宙,所以他可以让所有…
Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘积, 但目前的宇宙很不乐观,胡乱偷取可能造成维度的崩溃, 所以,他必须按逆序偷取这些维度,且在偷取中, 每次偷取的维度的能量必须严格小于他上次偷取的能量, 由于膜法师生活在多元宇宙,所以他可以让所有可能的偷取方案全部发生 题目描述 但他数学不好,所以找到了你帮他求出能为长者续几秒, 你要做的,就是在…
[BZOJ5055]膜法师 Description 题目描述 在给定的维度序列a中, 求出所有满足i<j<k且ai<aj<ak的ai*aj*ak的和 即 ∑ (a_i*a_j*a_k),要求  i<j<k  且 a_i<a_j<a_k Input 第一行1个数 n 第二行n个数 a_i Output 将答案对**19260817**取模 Sample Input 样例1 4 1 2 3 4 样例二 10 6 8 4 1 3 0 7 5 9 2 Sample…
http://www.lydsy.com/JudgeOnline/problem.php?id=1818 这一题一开始我就看错了,bzoj的那个绝对值109简直坑人,应该是10^9,我直接写了个暴力..简直感人. 然后看题解,看了挺久,,,,后来明白了.. 首先我们离散x轴,这样将数量级降到n. 然后我们知道,黑点在一秒内就会全部出来了,不可能有黑点在一秒后再由新的黑点组成,这点显而易见. 所以不必考虑-1的情况,因为不可能 产生黑点是什么情况呢?当然是水平黑点线段和竖直黑点线段的交点! 所以我…
Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘积, 但目前的宇宙很不乐观,胡乱偷取可能造成维度的崩溃, 所以,他必须按逆序偷取这些维度,且在偷取中, 每次偷取的维度的能量必须严格小于他上次偷取的能量, 由于膜法师生活在多元宇宙,所以他可以让所有可能的偷取方案全部发生   但他数学不好,所以找到了你帮他求出能为长者续几秒, 你要做的,就是在给定的…
2789: [Poi2012]Letters Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 278  Solved: 185[Submit][Status][Discuss] Description 给出两个长度相同且由大写英文字母组成的字符串A.B,保证A和B中每种字母出现的次数相同. 现在每次可以交换A中相邻两个字符,求最少需要交换多少次可以使得A变成B. Input   第一行一个正整数n (2<=n<=1,000,000),表示字符串的…
链接 BZOJ 4361 题面 给出一个长度为n的序列A(A1,A2...AN).如果序列A不是非降的,你必须从中删去一个数, 这一操作,直到A非降为止.求有多少种不同的操作方案,答案模10^9+7. N <= 2000. 题解 中国非著名数学老师张军说过:正难则反-- 答案就是所有最后剩下一个非降序列的方案 - 不合法的最后剩下一个非降序列的方案. 什么是不合法的.最后剩下一个非降序列的方案呢?就是中间过程中已经形成非降序列的方案.它们的共同特点就是--若最后剩下的序列长度为i,则一定是长度为…
题目链接 BZOJ 洛谷 区间第k小,我们可以想到主席树.然而这是静态的,怎么支持修改? 静态的主席树是利用前缀和+差分来求解的,那么对于每个位置上的每棵树看做一个点,拿树状数组更新. 还是树状数组的过程,区间加时,每到一个位置在这棵主席树中插入这个数. 查询时,将所有询问要访问到的主席树存下来,delta为所有存下的树的和的差值:改变节点时所有的主席树访问节点都变. 每次树状数组会访问logn棵树,每棵树改变logn个点.时间空间复杂度都为 \(O(nlog^2n)\). 线段树套平衡树见这.…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2727 题意: 思路:思路来自这里.首先对于每个位置(i,j)用C[i][j]表示该位置同时向左右能延伸的最大长度,用down[i][j]表示向下能延伸的最大长度(其实这里可以用一维的).然后就是统计.我们一列一列枚举.对于每一列,一行一行来.每次到达一行,(i,k),若C[i][k]>0就可以统计答案了.若该行的上面有一行j(当然j<i-1了),C[j][k]>0,那么就要增加…