自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Codeforces Beta Round #19 D-Points(树状数组+离散化)

Codeforces Beta Round #19D-Points题目题目大意     和以前在POJ做的的数星星差不多,POJ数星星,这里也是在笛卡尔坐标系上有多个点,只不过现在对点有增删操作,并且最一开始坐标系上是没有点的,并且查找的是该最靠近查找点的最左下的点。样例输入样例case 1:7add 1 1add 3 4find 0 0remove 1 1find 0 0add 1 1find 0 0case 2:13add 5 5

2021-07-11 21:21:12 209

原创 P2048 [NOI2010] 超级钢琴(ST表 + 优先队列优化)

P2048 [NOI2010] 超级钢琴题目小 Z 是一个小有名气的钢琴家,最近 C 博士送给了小 Z 一架超级钢琴,小 Z 希望能够用这架钢琴创作出世界上最美妙的音乐。这架超级钢琴可以弹奏出 n 个音符,编号为 1 至 n。第 i 个音符的美妙度为 A_i,其中 A_i 可正可负。一个“超级和弦”由若干个编号连续的音符组成,包含的音符个数不少于 L 且不多于 R。我们定义超级和弦的美妙度为其包含的所有音符的美妙度之和。两个超级和弦被认为是相同的,当且仅当这两个超级和弦所包含的音符集合是相同的。小

2021-07-02 16:33:12 574

原创 L2-2 病毒溯源 (25 分) 详解!

L2-2 病毒溯源 (25 分)      DFS+路径优化存储题目代码#include "bits/stdc++.h"using namespace std;const int G = 10000;vector<int> Map[G]; //用一个二维动态数组来存图 (邻接表)vector<int> res; //用来存放最终答案路径//判断是否要优化resbool check(vector<int> &v){ if(v.size

2021-05-10 17:20:00 1631 4

原创 树状数组之区间最值

树状数组之区间最值原理数学原理:建立树状数组利用上面的性质,在树状数组的尾部插入数据,来建立一个树状数组void push(int pos){ int i,lb = lowbit(pos); c[pos] = a[pos]; for(i=1;i<lb;i <<=1){ c[pos] = max(c[pos],c[pos-i]); }}树的维护void update(int pos,int v){ i

2021-02-09 20:09:59 1248 1

原创 树状数组之区间修改,区间查询

树状数组之区间修改,区间查询原理我们先开俩数组;原数组:a [i], 每一个元素的值差分数组:b [i], 下标 i 的元素存放 a[i]-a[i-1] 的差值,b[1]=a[1]我们可以得到下面的公式:于是,我们得到了一个 重要公式我们设:b1 [i] 数组表示:b1 [i] = a [i]-a [i-1], 差分数组b2 [i] 数组表示:b2 [i] = i* b1 [i]c1 [i] 针对 b1 的树状数组c2 [i] 针对 b2 的树状数组代码int n,

2021-02-09 19:31:02 554

原创 树状数组之区间修改,单点查询

树状数组之区间修改,单点查询原理首先我们开三个数组:原数组:a [i], 每一个元素的值差分数组:b [i], 下标 i 的元素存放 a [i]-a [i-1] 的差值,b [1]=a [1]树状数组:c [i], 针对数组 b 行成的树状数组我们就形成了下面的这种数据结构:我们发现对于树状数组 C[i]C[i] 来说,query(i)=a[i]query(i)=a[i], 也就是对应数的值.如果我们想 2->4 的数加 10 怎么办?我们只要修改 b[i] 数组如下:b[2

2021-02-09 18:29:45 686

原创 树状数组之求逆序对

树状数组之求逆序对逆序对   设 A 为一个有 n 个数字的有序集 (n>1), 其中所有数字各不相同。 如果存在正整数 i, j 使得 1 ≤ i < j ≤ n 而且 A [i] > A [j], 则 <A [i], A [j]> 这个有序对称为 A 的一个逆 序对,也称作逆序数。 例如,数组 (3,1,4,5,2) 的逆序对有 (3,1),(3,2),(4,2),(5,2), 共 4 个。原理我们有以下的设定a[]={0,3,1,4,5,2} 其中 3,1,

2021-02-09 17:50:58 1861

原创 树状数组之前缀和

树状数组之前缀和原理下标ii 管辖的区域大小:ii 对应的二进制保留最低位的11, 其它位全部置0。c[i]c[i] 的父亲的下标:用lowbit(i)lowbit(i) 表示ii 的管辖区域,那么i+lowbit(i)i+lowbit(i) 就表示ii 父亲结点的下标c[i] 左边的仅挨着自己管辖区间的点的下标:i−lowbit(i)i−lowbit(i)问题 1: 我们如何去求 lowbit(i)lowbit(i) :i & (-i) 就会把 i 的二进制除最低位 1 外全部置

2021-02-09 16:45:45 557

原创 Balanced Lineup(RMQ问题)

RMQ区间最值(ST表)   RMQ ( Range Minimum / Maximum Query ) 问题是指:对于长度为 n 的数列 A,回答若干询问 RMQ (A , i , j ) ( i , j ≤ n),返回数列A中下标在 i , j 里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题。   关于RMQ问题,一般情况我们采用ST算法。   ST算法是一种用于解决RMQ,即区间最值查询)问题的离线算法,类似于线段树和树状数组的,其功能特性差不多,当实现起来的话,显然是ST算法更为简

2021-01-31 10:45:34 320

原创 【线性动态规划】最长不下降子序列(LIS)

最长不下降子序列(线性动态规划)   我们知道,递推就是按照递推公式不断往前求解的一个过程,对于当前,只有一个状态描述当前的值。若某些问题并非由一个状态而是由多个状态不断推导,那么这种方法就是动态规划,简称DP。动态规划是运筹学的一个分支,是将问题分解成各个阶段,由相邻的两个阶段根据状态转移方程推到求解的一种方法。   所谓的线性动态规划,就是该问题模型是线性的,数据结构表现为线性表的形式。题目题干:   最长不下降子序列。给定一个长度为n的序列a,求出这个序列中最长不下降子序列,所谓最长不下降子

2021-01-25 15:31:03 618

原创 棋盘问题(带条件的DFS)

棋盘问题棋盘问题(带条件的DFS)题目InputOutputSample InputSample Output思路1.寻找条件2.应对限制条件1.棋盘大小2.棋子的数量3.下棋的位置代码棋盘问题(带条件的DFS)题目   在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input   输入含有多组测试数据。   每组数据的第一行是两个正整数

2021-01-18 13:40:55 409

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除