Problem UVA1620-Lazy Susan Accept: 81 Submit: 375Time Limit: 3000 mSec Problem Description There are N marbles, which are labeled 1,2,...,N. The N mar ...
分类:
其他好文 时间:
2018-09-28 11:07:43
阅读次数:
207
Cow Photographs bzoj-2058 Usaco-2010 Nov 题目大意:给定一个n的排列。每次操作可以交换相邻两个数。问将序列变成一个:$i,i+1,i+2,...,n,1,2,...,i-1$形式的序列最少操作次数。 注释:$1\le n\le 10^5$。 想法: 我们做过将 ...
分类:
编程语言 时间:
2018-09-27 23:58:56
阅读次数:
380
计划 算法学习 线段树 莫队算法 KMP算法 模板复习 Hash模板 平衡树 SPFA Dijkstra 线性筛/莫比乌斯函数 练习 USACO 1 复习递归 逆序对 搜索 0/5 日记 ...
分类:
其他好文 时间:
2018-09-27 10:37:58
阅读次数:
174
HDU5877 Weak Pair 做法:dfs的时候,用树状数组维护当前节点到跟节点的权值树状数组,离散化一下即可,类似统计树上逆序对。此题数据范围好像是假的,节点数开到200000可过。 c++ include define pb push_back typedef long long ll; ...
分类:
其他好文 时间:
2018-09-26 13:03:22
阅读次数:
147
题意: 有n个位置,每个位置上的数字是a[i],现在有强制在线的若干个单点删除操作,每次删除的位置都不同,要求每次删除之后求出最大的连续区间逆序对个数 n<=1e5,1<=a[i]<=n 思路: 对于每次删除操作我们可以考虑被删除的数字的贡献 比如区间[l,r]内删除了x这个位置,被分成了[l,x- ...
分类:
其他好文 时间:
2018-09-25 19:37:37
阅读次数:
240
传送门 解题思路 cdq分治,将位置看做一维,修改时间看做一维,权值看做一维,然后就转化成了三维偏序,用排序+cdq+树状数组。注意算删除贡献时要做两次cdq,分别算对前面和后面的贡献。 #include<iostream> #include<cstdio> #include<cstring> #i ...
分类:
其他好文 时间:
2018-09-25 01:20:53
阅读次数:
120
题目大意:给你两个序列,可以序列进行若干次旋转操作(两个都可以转),对两个序列相同权值的地方连边,求最少的交点数 记录某个值在第一个序列的位置,再记录第二个序列中某个值 在第一个序列出现的位置 ,求逆序对数量即可 本以为是一道逆序对水题,结果被卡了20分。看了题解才恍然大悟,实际上,序列可以旋转 ≠ ...
分类:
编程语言 时间:
2018-09-24 23:18:28
阅读次数:
236
思路: 离散化+树状数组(或权值线段树)。bit数组一定要开够。和求逆序对数量很像。 实现: ...
分类:
其他好文 时间:
2018-09-23 14:56:39
阅读次数:
135
题目大意:给你一棵树,求以某节点为根的子树中,权值大于该节点权值的节点数 本题考查dfs的性质 离散+树状数组求逆序对 先离散 我们发现,求逆序对时,某节点的兄弟节点会干扰答案 所以,我们在递推时统计一次答案,递归时再统计一次答案,两者的差值就是最终结果 ...
分类:
编程语言 时间:
2018-09-20 11:15:24
阅读次数:
171
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 1.数组归并排序 2.归并排序比较左右两个堆数组中的元素大小时,进行计数,倒着比较,因为左堆倒第... ...
分类:
编程语言 时间:
2018-09-20 01:14:00
阅读次数:
269