摘要:
Java 学习 - 正则表达式 一.设计正则表达式的目的 正则表达式使用单个字符串来描述,匹配一系列匹配某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索,替换那些匹配某个模式的文本. 许多程序设计语言都支持利用正则表达式进行字符串操作.与其说正则表达式是一个Java的库,倒不如说正 阅读全文
摘要:
线段树 - dfs序映射至线段树解决区间染色问题 / 时间戳 - HDU 3974 - Assign the task 解法1: 模拟多叉树(数据极端的情况下,复杂度极大) 1. 分配任务操作 对于每一个分配任务操作,我们可以记录分配的任务编号以及分配任务时间. 由于可能存在大量的任务分配操作,我们 阅读全文
摘要:
线段树小结 最近几天连着做了十几道线段树的题,虽然是初学,但仍有些许经验想要总结一下. 关于什么样的题考虑使用线段树这一数据结构: 需要维护任意给定区间的某一特征 频繁的区间修改,区间查询 线段树本质上是采用空间换时间,对于给定数据量N,采用N<<2的空间复杂度,以二分的思想构造若干的区间的子段.这 阅读全文
摘要:
线段树 区间合并 - HDU - 1540 - Tunnel Warfare 个人解法 思路介绍 1. 建树 所需要的全局变量 int stk_ptr = 0; // 栈顶指针 int stk[N]; // 模拟栈 char cmd[5]; // 接受命令'D','R','Q' int find_l 阅读全文
摘要:
题目要求维护区间开方和,但由于 \[ tree[root] \neq sqrt(tree[leftroot] +tree[rightroot]) \] 因此每一个更新操作都需要深入到叶子结点 由于这么做复杂度太高,甚至弱于普通数组,因此考虑优化 \[ tree[root] = right - lef 阅读全文
摘要:
POJ - 2528 - Mayor's posters 先说结论,这题数据太弱 这题直接按照1,2,3...离散化有问题,例如数据 1 3 2 4 1 2 4 5 应该输出3,但是直接错误的离散化导致输出为2 对于相邻两个点,如果距离差大于1,则额外增加一个点,即可解决问题 这一题的数据范围为1e 阅读全文
摘要:
线段树模板 HDU - 1166 - 敌兵布阵 本题为单点修改+区间查询 求和 #include <cstdio> // #include <cstdlib> using namespace std; #define N (50000+5) int arr[N]; int tree[N<<2]; v 阅读全文
摘要:
树状数组 前置知识: lowbit 函数 lowbit函数用于求一个非负整数n在二进制表示下最低位1及其后面的0所构成的数值 Decimal Binary Lowbit(Binary) Lowbit(Decimal) 1 001 1 1 3 011 1 1 4 100 100 4 8 1000 10 阅读全文
摘要:
Java Stream 基础练习1 Predicate 接口 Integer[] arr = {-12345,9999,520,0,-38,-7758520,941213}; // a) 使用lambda表达式创建Predicate对象p1,p1能判断整数是否是自然数(大于等于0) Predicat 阅读全文
摘要:
Java Stream使用 这段时间在学数据库和Java,发现Java的Stream实际上和数据库的查询操作非常类似。这里简单介绍Stream的用法,并和Sql Server中的操作联系起来。 此文为初学Stream所写,以后对Stream有更深的理解后会重写 当我们使用一个流的时候,通常包括三个基 阅读全文