自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陈颜的博客

公众号『陈颜Blog』

  • 博客(19)
  • 收藏
  • 关注

原创 Distinct Characters Queries 线段树+桶

You are given a string s consisting of lowercase Latin letters and qqueries for this string.Recall that the substring s[l;r]of the string s is the string slsl+1…sr. For example, the substrings ...

2020-02-28 16:54:56 5241

原创 逆序对

题目链接: 洛谷P1908逆序对:序列a中 ai>aj​ 且 i<j 的有序对树状数组和线段树解法类似,因为只需 用到单点修改。解题思路:我们将整个线段树看成桶,每次输入一个ai可以看成单点修改,tree[ai]++,此时,线段树[ai,max]的区间值就是以ai为后者的逆序对数量。因为这题中,ai可能高达1e9,这样线段树作为桶可能会炸空间,但是最多只有50000个数...

2020-02-27 18:03:54 5697 2

原创 离散化

离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如:原数据:1,999,100000,15;处理后:1,3,4,2;原数据:{100,200},{20,50000},{1,400};处理后:{3,4},{2,6},{1,5};有时候,我们要处理的数据范围非常大,但是数据量并不多, 比...

2020-02-27 15:49:29 5143

原创 C++ STL unique去重函数

现有一个数组(因为unique函数针对相邻的重复元素进行操作,因此需要有序):a[10] = {1, 1, 1, 3, 4, 5, 6, 6, 7, 9};unique()有两个参数,需要去重的数组的首尾地址,例如上面的a[]数组去重,只需unique(a,a+10)即可。But,unique不是真正意义上的去重,例如上面给出的数组,经过unique函数之后,会变成:1 3 4 5 6 ...

2020-02-26 16:59:36 4763

原创 C++ STL upper_bound和lower_bound

现有一个不递减的序列a[10] = {1, 1, 1, 3, 3, 5, 5, 5, 5, 6}数组元素n=10; upper_bound(a,a+n,k)返回容器中第一个大于k的元素的地址 lower_bound(a,a+n,k)返回容器中第一个大于等于k的元素的地址没错,两个函数的区别就是lower_bound多了个等于需要注意的是函数返回的都是元素地址因此,这样就...

2020-02-26 15:43:26 4447 1

原创 线段树模板

先给出一个很裸的线段树板子题:开始给你n个数,标号依次为a[1],a[2]…a[n],接下来有m次操作。每次让你执行两个操作:1.将区间[a,b]内的所有数+k。2.查询[a,b]范围内所有数的总和。遇到这种题,我们就可以用线段树解决。(至于暴力会超时,我之前写的树状数组博客中已经提到。)至于线段树比较快的原因,我就不多提了 (很多博客都有提及) ,总之它的区间修改以及区间查询都是log级...

2020-02-26 09:16:43 4964 1

原创 差分数组

例题:HDU 1556 传送门题目大意:给你n个排成一排的气球,标号1,2,3…n。接下来执行n次操作,每次给出两个数a,b,将[a,b]内的气球涂一次颜色。最后问你每个气球分别被涂了几次颜色。这题最暴力的写法就是每次拿到[a,b]区间就for遍历+1,但是操作数稍微多了就会T,这时候,我们就可以用到差分数组,差分数组就是用来解决区间修改和区间查询的操作的。(前提是修改与查询分开,也就是先执...

2020-02-16 14:48:47 4518

原创 组合数+2的幂次方

题目大意:给你n个数,问你有多少种可能使两个数加起来是2的幂次方由于n的范围是1e5,暴力组合判断肯定会T,于是我们用map容器,记录的数出现的次数。//https://blog.csdn.net/hesorchen#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a...

2020-02-14 15:45:29 6159

原创 树状数组(单点修改和区间查询问题)

今天刚学了树状数组,理解还不是很透彻,写点东西加深理解、记忆树状数组的结构(C数组表示树状数组,A数组表示普通的数组)先给出几个概念和性质lowbit:顾名思义,将一个十进制数转换为二进制,最低位1所对应的值就是该数的lowbit值。lowbit(a)=(a&(-a))例如5转换为二进制数为101,最低位1对应的值为1,那么lowbit(5)就是1。其实如果这个二进制数末尾...

2020-02-14 15:09:42 5134 1

原创 codeforces K个末尾0

原题连接题目大意:给你两个整数n,k。让你找出最小的一个可以整除n并且末尾有k个零的数。我们可以设m为1ek,那就是要求x%m=0&&x%n=0,显然是求n,m的最小公倍数AC代码://https://blog.csdn.net/hesorchen// #include <bits/stdc++.h>#include <iostream>#...

2020-02-12 22:03:09 5289

原创 环形序列

原题链接题目大意,给你一个字符串,该字符串首尾相连组成一个环,选择这个环的一个位置作为字符串起点,使得字符串字典序最小。例如EFGABCD,显然从A开始的ABCDEFG字符串字典序最小。由于这题字符串长度最多100,我直接开了一个string数组用来存放每种情况,然后使用sort排字典序即可。AC代码:#include <iostream>#include <...

2020-02-12 21:54:23 6382

原创 123减法

题目大意:给你三个数n,n1,n2,n3。你可以对n做下面三种操作之一:将n减1将n减2将n减3最多做100次操作,且n不能等于n1,n2,n3中的任意一个,问你是否可以将n变成0。因为这题只有三种转移状态,我第一反应想到的是bfs搜索,很好实现,代码如下://https://blog.csdn.net/hesorchen// #include <bi...

2020-02-12 21:44:45 5419

原创 __gcd求最大公约数

使用头文件< algorithm >__gcd(a,b)返回a和b的最大公约数

2020-02-10 19:26:14 5301 1

原创 Codeforces Round #618 (Div. 2) C题

第一次div2三题 挺开心的~!题目链接首先题目给了一个函数:f(x,y)=(x|y)−y问,给你一个n个元素的数组a1,a2…an。怎么样排列该数组可以使f(f(…f(f(a1,a2),a3),…a n−1 ),an)最大|是位或 位运算,也就是当x的该位为1或y的该位为1时,都返回1如下表|运算二进制表示1000140100结果01...

2020-02-10 14:21:19 5227

原创 尺取法

经典尺取:尺取法顾名思义,像尺子一样取一段,尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后根据实际情况不断地推进区间左右端点以得出答案。之所以需要掌握这个技巧,是因为尺取法比直接暴力枚举区间效率高很多,尤其是数据量大的时候,所以尺取法是一种高效的枚举区间的方法,一般用于求取有一定限制的区间个数或最短的区间等等。当然任何技巧都存在其不足的地方,有些情况下尺取法不可行,无法得出...

2020-02-07 16:55:13 6345 4

原创 洛谷 P1498 南蛮图腾

洛谷 P1498 传送门这题规律其实很简单,就是一直复制复制。但是实际实现起来其实还是挺复杂的。我最后是使用string数组解决的既然每个图案都是由前面的图案赋值得到的,那么就要找到源图案,显然是第一个图案由两个字符串构成(注意转义字符’ \ ')。那么第一个图案经过怎么样的变化变成了第二个图案呢?先在底下复制两个图案一,再将图案一前面添上空格(其实后面也要添加,否则下一...

2020-02-03 20:16:10 5502 1

原创 二进制枚举子集

定义子集是一个数学概念:如果集合A的任意一个元素都是集合B的元素,那么集合A称为集合B的子集。A集合有n个元素,那么A的子集个数为2n。我们先来看看3个物品的23取法分别是哪8种用1表示取该物品,0表示不取取法\物品物品1物品2物品3取法1000取法2001取法3010取法4011取法5100...

2020-02-03 16:01:11 6942 2

原创 洛谷P1226 快速幂

洛谷P1226 快速幂 传送门这道题最暴力的写法是while循环p,但是当p大的时候就会TLE。然后就了解到了快速幂。快速幂:顾名思义,快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。不得不说,二进制是一个很神奇的东西任何一个正整数都能转换为二进制数(废话)由上可得,任何一个数都可转化为2a+2b+…+2m。例如7,...

2020-02-03 15:33:04 5683

原创 HDU-2147 kiki‘s game 巴什博弈

HDU-2147 传送门最近小明很闲,找了小华下棋。 棋盘的大小是n*m,小明突然想到一个新的玩法,首先有个卒放在棋盘的右上角(1,m)的位置。 每一次小明或者小华可以将这个卒向左移一步或者向下移一步,或者向左下移一步 谁不能移动谁就输了。小明先移动棋子卒,小明会赢吗?假设玩家都是最优决策。Input多组输入,每行包括两个数字n,m (0 < n , m < = 2000 ...

2020-02-01 12:32:27 7322

空空如也

空空如也

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

TA关注的人

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