链接:https://codeforces.com/contest/1288/problem/E 题意:序列p的长度为n,初始序列为1 2 3 4 ...n,然后有m次操作,每次指定序列中一个数移动到第一位,然后剩下的所有序列往后移动一位,求每个数在出现过的所有历史序列中所在位置索引的最大值和最小值 ...
分类:
编程语言 时间:
2020-01-19 09:50:31
阅读次数:
101
数据结构 STL vector 在数组中访问复杂度为O(1); 关于链表,他可能可以实现动态数组,但访问复杂度为O(n) 当空间不够 vector会自动给你定义两倍到三倍的位置 定义方式:vector<int> a; 在末尾压入容器:a.push_back(x); 在末尾弹出容器:a.pop_bac ...
分类:
其他好文 时间:
2020-01-19 09:41:25
阅读次数:
107
一维树状数组维护的是区间和,最后统计的是1~x数的和,而二维树状数组维护的是一个面的和,最后统计的是 (1,1)~(x,y)区域内数的和 (x,y)所维护的面大小由x,y共同决定,x决定高度,y决定宽度 add和query操作的两层循环结合二分图理解比较直观 如何分呢?首先,我们按照X坐标,把整个表 ...
分类:
编程语言 时间:
2020-01-19 00:35:57
阅读次数:
119
1760:树上数颜色 时间限制: 3000 ms 内存限制: 524288 KB提交数: 35 通过数: 9 【题目描述】送你一棵n个点的树,树根为1。一开始每个点上有一个1~n 的颜色ci,不同点颜色可以相同。 现在有 q 次操作, 分为两种类型: 1 u l r:询问子树 u 中有多少种在 l ...
分类:
其他好文 时间:
2020-01-19 00:27:55
阅读次数:
104
代码中的下标从0开始,原理是一样的 int f[N]; void upd(int x, int val){ for (int i = x; i >= 0; i = (i & (i + 1)) - 1) f[i] += val; } int get(int x){ int res = 0; for ( ...
分类:
编程语言 时间:
2020-01-19 00:06:36
阅读次数:
87
一.线段树的相关定义及用途 (1)线段树的定义 线段树是一种可以加快对区间进行更新以及查询的一种树状结构,类似于将一个区间的及其子区间的相关信息存储在一颗二叉树中。 (2)线段树的用途大致为以下几种 1>某个子区间进行区间更新 2>查询某个子区间的总和 3>查询某个子区间的最值 二.线段树的建立 ( ...
分类:
其他好文 时间:
2020-01-18 16:16:42
阅读次数:
93
题意:Polycarp是一个频繁交流的受欢迎的送信人,他与朋友们一直交流,他有n个朋友,从1到n编号。一开始,n个朋友的编号是从1、2、3、4....n编号的,如果交流了3,那么3的位置就会移动到最前面,变成3、1、2、4...n。 分析:这道题目让我们求每个朋友的编号所能达到的最大位置和最小位置, ...
分类:
其他好文 时间:
2020-01-16 22:20:28
阅读次数:
84
1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 int mn[600007],mx[600007],a[600007],pos[600007],sum[600007]; 5 int n ...
分类:
编程语言 时间:
2020-01-16 22:12:58
阅读次数:
73
DOM实际上是以面向对象方式描述的对象模型,它将文档建模为一个个对象,以树状的结构组织(本文称之为“文档树”,树中的对象称为“节点”)。 html\xml文档解析后会以DOM的形式保存在内存中。 html\xml 和dom只是相同信息的不同保存形式。 html\xml便于人类阅读; dom便于机器阅 ...
分类:
其他好文 时间:
2020-01-16 12:20:47
阅读次数:
77