题目大意:
对平面上的点进行操作。
add x y 在 (x,y )上加一个点。
remove x y 移除 (x,y)上的点。
find x y 求出在(x,y)右上角离他最近的点,优先级是靠左,靠下。
思路分析:
find 操作 比较麻烦。
要保证x大的同时还要确保x最小,而且该x上还要有点。
这样要找大的时候要小的,就是在线段树上选择性的进入左子树还是右子树。
所以...
分类:
其他好文 时间:
2014-08-01 13:51:52
阅读次数:
241
题目大意:
对一个矩阵上的某个值进行修改,然后求出子矩阵的和。
思路分析:
这题discuss 上说二维线段树过不了。
所以二维树状数组搞。
理解树状数组的意义就是 1 - n 上所有的和。
然后两重循环。
#include
#include
#include
#include
#define maxn 1040
#define lowbit(x) (x&(-...
分类:
其他好文 时间:
2014-07-31 20:46:37
阅读次数:
201
题目大意:
修改树上的节点,然后求子树的和。
思路分析:
dfs 重新编号,烂大街了。。。
#include
#include
#include
#include
#define maxn 100005
#define lson num<<1,s,mid
#define rson num<<1|1,mid+1,e
using namespace std;
int num[...
分类:
移动开发 时间:
2014-07-31 20:46:27
阅读次数:
251
1、大数加减法
思路分析:
1、将数据当做字符串输入(gets(s))
2、将字符型转换为整型,逆着存
char?int i=0,j=len-1, int[i++]=char[j--]
3、从首位开始相加,
若sum>9,int[i]=sum%10,int[i+1]+=sum/10...
分类:
其他好文 时间:
2014-07-31 13:26:16
阅读次数:
215
题目大意:
求出在文本串中第一个没出现的字典序最小的串。、
思路分析:
开始的时候 用后缀数组写,然后根据sa的有序性。你就可以知道哪个串没有出现了。
但是题目卡了倍增哦。。。
自习想一想的话,我们用 sa 数组,也就是想知道这个串有没有出现过,也就是判断重复,却浪费了 O (n * lg n)...
判断重复为什么没想到hash 。
把每一个长度的子串都hash 出来,用...
分类:
其他好文 时间:
2014-07-30 09:59:57
阅读次数:
208
题目大意:
在一个序列上每次修改一个值,然后求出它的最大的子序列和。
思路分析:
首先我们不考虑不成环的问题。那就是直接求每个区间的最大值就好了。
但是此处成环,那么看一下下面样例。
5
1 -2 -3 4 5
那么你会发现 max = sum - min
也就是和减去最小区间和也可以得到。
所以我们最后要得到的就是两个东西。注意题目中说的不能全部取得。所以还要判断...
分类:
其他好文 时间:
2014-07-28 16:24:13
阅读次数:
244
题目大意:
排队有人插队,每一次都插到第 i 个人的后面。
最后输出顺序。
思路分析:
你会发现,如果反向处理的话,你就知道这个人是第几个了。
那么问题一下子就简化了。
就是在线段树上找第几个空位置就行了。
#include
#include
#include
#include
#include
#define lson num<<1,s,mid
#defi...
分类:
其他好文 时间:
2014-07-28 00:14:39
阅读次数:
229
题目大意:
四个操作:
I X Y 在x位置插入y
D x 删除x位置的数
R x y 用y替换x位置上的数字
Q x y 求出[x,y]上的最大子序列的和。
思路分析:
对于动态维护序列肯定是splay了。
现在就考虑以下几个问题。
之前我们知道线段树处理连续的子序列的和是用区间合并的。那splay上怎么做。
考虑边界,如儿子为 0 或者是冗余节点怎么办?
初始化的...
分类:
其他好文 时间:
2014-07-27 11:09:32
阅读次数:
257
题目大意:求出一个最小的x使得 2的x次方对n取模为1思路分析:若要a*b%p=1 要使得b存在则 gcd (a,p)=1.那么我们应用到这个题目上来。当n为偶数 2^x 也是偶数,那么gcd 肯定不是1.故这个是不存在的。那么n为奇数的时候,也就一定是1了。所以直接暴力找。#include #in...
分类:
其他好文 时间:
2014-07-24 22:34:32
阅读次数:
173
一 提议描述:输入正整数n,按照字典序从小到大的顺序输出前n个数的所有排列。二 思路分析:对此问题用递归的思想解决:先输出所有以1开头的排列(递归调用),然后输出以2开头的排列(递归调用),接着以3开头的排列,?,最后才是以n开头的排列。以1开头的排列的特点是:第一位是1,后面是按字典序的2~9的排...
分类:
其他好文 时间:
2014-07-24 17:29:10
阅读次数:
250