Fluid
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 友链
  •   
  •   

看错题-线段树

题目描述 给定一颗线段树,每次区间加一个x,如果每次在线段树区间加操作做完后,依次选一个叶子节点进入,然后一直走到根节点,问最后得到的期望值是多少。 小Y同学为了让题目更简单,对于n个整数,n是一个2^x2x的整数,来保证这个线段树是一棵满二叉树。 他现在想问你,每次给一段区间加上一个整数(每次操作对后续有影响),然后依次在线段树中选一个叶子节点,一直走到根节点,将一路经过的节点权值累加,问

2022-03-27
算法 题解
线段树

“Z”型矩阵

题意: 对于一个只包含 . 和 z 的矩阵,当以下条件满足时: 该矩阵的行数列数相等。 该矩阵的第一行与最后一行的字符全是 z。 该矩阵从右上角到左下角的对角线上的字符全是 z。 我们称其为 Z 矩阵。 现在给定一个 n×mn×m 的矩阵,请你计算它有多少个子矩阵是 Z 矩阵。 输入格式 第一行两个整数 nn , mm 分别表示矩阵的行数和列数 (1≤n,m≤3×10

2022-03-24
算法 题解
树状数组 离线 代码源

求质因子模板

复杂度大概O(nlnn)吧 123456789const int N=1e6+10;for(int i=2; i<N; i++) &#123; if(tt[i].size())continue; for(int j=i; j<N; j+=i) &#123; int t=j,cnt=0; while(t%i==0)t/=i,cnt++; tt[j].push_back(

2022-03-23
算法 模板
质因子

组合数模板

复杂度O(n) 1234567891011121314151617181920const int N=2e6;int Pow(int a,int b) &#123; int c=1; while(b) &#123; if(b&1)c=(1ll*c*a)%mod; a=1ll*a*a%mod; b>>=1; &#125; return c;&#125;int C(int

2022-03-23
算法 模板
组合数

字符串处理技巧

字符串处理常用技巧 1、find()以及其他查找函数 find() int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置 int find(const char s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置 int find(const char s, int pos, int

2022-03-22
算法 笔记
算法 笔记

树状数组

区间信息维护查询 一、二叉索引树(树状数组)(Binary Indexed Tree,BIT) BIT支持两种操作 1.update(x):修改单点值 2.query(L,R):查询(L,R)区间和 实现方式: 首先我们介绍一下lowbit(x) lowbit(x)表示x的二进制表达式中最右边的1所对应的值 程序实现为lowbit(x)={return x&(-x)}

2022-03-22
算法 笔记
树状数组 区间操作
12345

搜索

Hexo Fluid