随笔分类 - 树状数组
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 把a[i]处理成前缀和 离散化. 枚举i从1..n假设a[i]是区间和的a[r] 显然我们需要找到a[r] a[l] 【代码】 cpp include define ll long long using namespace std; co
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 定义两个函数 f和g f(i)表示a[1..i]中等于a[i]的数字的个数 g(i)表示a[i..n]中等于a[i]的数字的个数 让你求出来(i,j) 这里ig(j) 【题解】 求出来两个数组g[N]和f[N]; (用map就行) 要算出(ig[j]的个
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 维护一百个二维树状数组。 二维区间求和。 【代码】
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 那个D函数它的下降速度是很快的。 也就是说到最后他会很快的变成2或者1 而D(2)==2,D(1)=1 也就是说,几次操作过后很多数字实际上就不会发生变化了。 我们可以以这个为切入点。 可以用树状数组写,也可以用线段树写。 如果
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 可以考虑把所有的题目按照ai排序。 然后顺序考虑最后做出来的题目个数和第i道题目的ai一样。 则1..i 1这些题目就没有用了。 值考虑i..n这些题目就可以了。 显然考虑ti最小的若干项。 使得它们的时间和=i的题目(只要枚举
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 给你一个无限长的序列1,2,3,4... 然后给你n个操作. 每个操作ai,bi; 表示调换位置为ai和位置为bi的数的位置。 (ai,bi 【题解】 肯定和数据结构相关的。 那么大,首先离散化一下。 然后用离散化后的数字来模拟这个swap的过程。 这样
阅读全文
摘要:【Description】N (3 ≤ N ≤ 20000) ping pong players live along a west-east street(consider the street as a line segment).Each player has a unique skill r...
阅读全文
摘要:Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1637 Accepted Submission(s): 531Problem D...
阅读全文
摘要:Time Limit: 10 secondMemory Limit: 2 MB问题描述给定一个序列a1,a2...an。如果存在i小于j 并且ai大于aj,那么我们称之为逆序对,求给定序列中逆序对的数目Input第一行为n,表示序列长度,接下来的n行,第i+1行表示序列中的第i个数。Output所有...
阅读全文
摘要:Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一...
阅读全文
摘要:【题解】 题意: 给n个数字组成有序数列; 给m个询问. 对于每个询问区间。输出这个区间里面出现次数为偶数次的所有数的异或值; 做法: 我们可以先求出这段区间里面所有(包括重复的数字)数字的异或值p1; (出现次数为偶数的数x,这偶数个x的异或值为0(x^x==0),出现次数...
阅读全文
摘要:【题目链接】:http://hihocoder.com/problemset/problem/1488【题意】 中文题 【题解】 莫队算法+树状数组; 首先贪心地知道,应该按照时间从小到大的顺序打水; 可以发现; 新增加一个人打水的话,对时间小于它的人打水没有影响; 只对时间大...
阅读全文
摘要:【题目链接】:http://codeforces.com/contest/792/problem/D【题意】 给你一棵满二叉树; 给你初始节点; 给你若干个往上走,左走,右走操作; 让你输出一系列操作结束之后节点的位置; 【题解】 这个节点的标志方式类似树状数组; 用树状数组左走...
阅读全文
摘要:【题目链接】:http://codeforces.com/contest/707/problem/E【题意】 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q个操作; 有以下两种类型 ①将第i个连通块里面灯取反 ②询问你(x1,y1)(x2,...
阅读全文
摘要:【链接】h在这里写链接【题意】给你一个n*n的矩阵。其中每一列都有一个点。任意两个点构成了矩形的两个对角点->即任意两个点确定了一个矩形。->总共能确定n*(n-1)/2个矩形。现在,给你一个圈出来的矩形区域。问你有多少个矩形,是在这个矩形之内.或和矩形相交。【题解】找和询问矩形相交的矩形不好找。我...
阅读全文
摘要:【链接】h在这里写链接【题意】让你在n个点组成的集合里面选取不为空的集合s.使得这里面的点没有出现某个点a和b,ax>=bx且ay>=by;问你s的个数。【题解】我们把这些点按照(x,y)升序排(x优先,y次之).然后按顺序处理这些点。会发现.我们在处理(x,y)点的时候.只有它的左上方那些点是可以...
阅读全文
摘要:【链接】h在这里写链接【题意】让你维护字符串的一段区间内T子串的个数。【题解】因为t不大,所以。暴力维护一下a[i]就好。a[i]表示的是S串从i位置开始,能和T串匹配几个字符。用树状数组维护区间内a[i]==lent的个数就好。修改,还是暴力改就行。只会影响到那几个位置的。【错的次数】0【反思】匹...
阅读全文
摘要:【链接】h在这里写链接【题意】在这里写题意【题解】莫队算法+树状数组。区间增加1或减少1.对逆序对的影响是固定的。(用冒泡排序变成升序的交换次数,就是逆序对的个数)【错的次数】0【反思】在这了写反思【代码】#include using namespace std;const int N = 3e4;...
阅读全文
摘要:【题目链接】:http://codeforces.com/problemset/problem/589/G【题意】 有n个人; 每个人每天在开始工作之前,都需要di单位的准备时间,然后才能开始工作; 然后每个人都有m天的时间,每天有ti个单位的时间供每个人进行准备工作以及工作; 也...
阅读全文
摘要:【题目链接】:http://codeforces.com/problemset/problem/314/C【题意】 让你从n个元素的数组中选出所有的不同的非递减子数列; 然后计算比这个子数列小的和它的长度一样长的数列的个数; “小”的定义在题目里有说; 【题解】 设dp[i]表示...
阅读全文