07 2020 档案
摘要:线段树是算法竞赛中常用的用来维护 区间信息 的数据结构。 相关阅读:树状数组 线段树可以在 的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。 线段树维护的信息,需要满足可加性,即能以可以接受的速度合并信息和修改信息,包括在使用
阅读全文
摘要:一、内容 题意:给定【1,8000】区间,给定n组操作,每次将一段区间修改成某种颜色(对上一次颜色进行覆盖),最后问你能看到多少种颜色,且每种颜色有多少段。 二、思路 题目给定的区间是**(x, y】左开右闭的区间** 进行对区间的修改即可,每次记录下lazy,修改时候pushdown。 查询的时候
阅读全文
摘要:简介 离散化本质上可以看成是一种 哈希 ,其保证数据在哈希以后仍然保持原来的全/偏序关系。 通俗地讲,就是当我们只关心数据的大小关系时,用排名代替原数据进行处理的一种预处理方法。离散化本质上是一种哈希,它在保持原序列大小关系的前提下把其映射成正整数。当原数据很大或含有负数、小数时,难以表示为数组下标
阅读全文
摘要:Mayor's posters https://vjudge.net/problem/POJ-2528#author=szdytom 线段树 + 离散化 讲解:https://blog.csdn.net/qq_35802619/article/details/98326267 #include<io
阅读全文
摘要:敌兵布阵 HDU - 1166 多组输入,注意清除tr数组 维护一个前缀数组,耗时有点大 #include <cstdio> #include <cstring> using namespace std; const int maxn = 5e4 + 5; int t, n; int sum[max
阅读全文
摘要:转载自:https://www.itrhx.com/2019/08/01/A27-image-hosting/ 写在开头,之前我是使用Gitee作为图床和Picgo搭配使用的 (图片不允许超过1MB),但因为最近的几篇文章所需的图片大多超过了 1MB导致经常无法加载,所以需要更新图床,为记录方法所以
阅读全文
摘要:对于科研工作者来说,Github 是不可多得的利器,那么Octotree 插件的使用将会让用户在使用 Github 时拥有更好的体验,提高学习工作的效率。但是笔者在使用的过程中遇到以下这样的问题,下面将介绍遇到的问题以及解决办法。 1. 问题描述 在 Github 中使用 Octotree遇到以下两
阅读全文
摘要:题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某区间每一个数加上 k。 求出某区间每一个数的和。 输入格式 第一行包含两个整数 n,,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 n 个用空格分隔的整数,其中第 ii 个数字表示数列第 i 项的初始值。 接下来 m 行每行包含
阅读全文
摘要:During the Warring States Period of ancient China(476 BC to 221 BC), there were seven kingdoms in China they were Qi, Chu, Yan, Han, Zhao, Wei and Qin
阅读全文
摘要:The Cow Prom POJ - 3180 题意: 奶牛圆舞:N头牛,M条有向绳子,能组成几个歌舞团(团内奶牛数 n >= 2)?要求顺时针逆时针都能带动舞团内所有牛。 分析: 所谓能带动,就是舞团构成一个强连通分量,就是赤裸裸的SCC。 代码实现:很好的一道题,有利于理解 korasaju 算
阅读全文
摘要:CF 1374A. Required Remainder You are given three integers x,y and n. Your task is to find the maximum integer k such that 0≤k≤n that kmodx=y, where mo
阅读全文
摘要:P1379 八数码难题 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实
阅读全文
摘要:POJ 1236 Network of Schools 校园网:给定N所学校和网络,目标是分发软件其他学校都可收到,求①所需最少分发学校数;②若任选学校都能收到,最低新增边数。 思路:同一个强连通分量内的顶点合并为一个,在这个DAG上计算出度和入度。①其实是求入度为0的顶点数,②则是求0出度和0
阅读全文
摘要:本文由labuladong原创,本博文仅作为知识点学习,不会用于任何商业用途! 动态规划技巧对于算法效率的提升非常可观,一般来说都能把指数级和阶乘级时间复杂度的算法优化成 O(N^2),堪称算法界的二向箔,把各路魑魅魍魉统统打成二次元。 但是,动态规划本身也是可以进行阶段性优化的,比如说我们常听说的
阅读全文
摘要:kuangbin专题链接:https://vjudge.net/article/752 kuangbin专题十二 基础DP1 题解+总结:https://www.cnblogs.com/RioTian/p/13110438.html 最小生成算法 介绍 和 模板 次最小生成树:介绍及模板 总结: 文
阅读全文
摘要:思路 关于次小生成树,首先求出最小生成树,然后枚举每条不在最小生成树上的边(在原本的节点上添加一个vis属性进行判断即可),并把这条边放到最小生成树上面,然后就一定会形成环,那么我们在这条环路中取出一条(除了新加入的那一条边)最长的路(这里可以用d[u][v]来维护)。最终得到的权值就是次小生成树的
阅读全文
摘要:关于最小生成树的话,其实很早之前就接触了,当时也写了一篇关于最小生成树的文章,但一直没有好好刷题。 接下来几天会持续更新维护KB-最小生成树专题 最小生成树的算法没有其他算法那么复杂,算法思想比较简单,代码也比较容易。 常见的最小生成树算法由Kruskal算法和Prim算法。 1.Kruskal算法
阅读全文
摘要:这一次的Div.2 大多数学思维。。 A. Park Lightingtime https://codeforces.com/contest/1358/problem/A 题意:给一个n,m为边的矩形,问最少的灯使得整个矩形照亮 思路:n * m 为总区域数一个灯最多能照亮两块区域,贪心做:每次都取
阅读全文
摘要:一、内容 You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now g
阅读全文
摘要:MPI Maelstrom POJ - 1502 实验室有很多台计算机,由于每个人计算机的性能不同,导致计算机之间发送信息的速度不同,所以花费时间不同。 消息从第一台电脑发送到第二台电脑后,这两台电脑能再向其他电脑发送消息,就是一种类似二叉树的结构。 当然并不是真正的二叉树——我们的计算机有一些特殊
阅读全文
摘要:定义 边有向,无环。 英文名叫 Directed Acyclic Graph,缩写是 DAG。 性质 能 拓扑排序 的图,一定是有向无环图; 如果有环,那么环上的任意两个节点在任意序列中都不满足条件了。 有向无环图,一定能拓扑排序; (归纳法)假设节点数不超过 的 有向无环图都能拓扑排序
阅读全文
摘要:在 OI 中,想要对图进行操作,就需要先学习图的存储方式。 约定 在本文中,用 代指图的点数,用 代指图的边数,用 代指点 的出度,即以 为出发点的边数。 直接存边 方法 使用一个数组来存边,数组中的每个元素都包含一条边的起点与终
阅读全文
摘要:A.Common Subsequence 题意 给你两组数,问你有没有相同 的书,有的话,输出最短的那组(大家都知道,1是最小的) AC #include<bits/stdc++.h> using namespace std; const int N = 1005; int a[N], x, n,
阅读全文
摘要:POJ 3259 http://poj.org/problem?id=3259 题意: 农夫 FJ 有 N 块田地【编号 1...n】 (1<=N<=500) 田地间有 M 条路径 【双向】(1<= M ⇐ 2500) 同时有 W 个孔洞,可以回到以前的一个时间点【单向】(1<= W ⇐200) 问
阅读全文
摘要:运算符重载 + 和 +=:连接字符串 =:字符串赋值 >、>=、< 和 ⇐:字符串比较(例如a < b, aa < ab) ==、!=:比较字符串 <<、>>:输出、输入字符串 注意:使用重载的运算符 + 时,必须保证前两个操作数至少有一个为 string 类型。例如,下面的写法是不合法的: #in
阅读全文
摘要:试除法判定质数 bool is_prime(int x) { if (x < 2) return false; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) return false; return true; } 试除法分解质因数 void
阅读全文
摘要:树与图的存储 树是一种特殊的图,与图的存储方式相同。 对于无向图中的边ab,存储两条有向边a->b, b->a。 因此我们可以只考虑有向图的存储。 (1) 邻接矩阵: 存储边a->b (2) 邻接表: // 对于每个点k,开一个单链表,存储k所有可以走到的点。h[k]存储这个单链表
阅读全文
摘要:KMP —— 模板 // s[]是长文本,p[]是模式串,n是s的长度,m是p的长度 求模式串的Next数组: for (int i = 2, j = 0; i <= m; i ++ ){ while (j && p[i] != p[j + 1]) j = ne[j]; if (p[i] == p[
阅读全文
摘要:快速排序算法模板 —— 模板题 AcWing 785. 快速排序 void quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j
阅读全文
摘要:什么是正则表达式? 正则表达式是一组由字母和符号组成的特殊文本, 当你想要判断许多字符串是否符合某个特定格式;当你想在一大段文本中查找出所有的日期和时间;当你想要修改大量日志中所有的时间格式,在这些情况下,正则表达式都能帮上忙。 简单来说,正则表达式描述了一系列规则,通过这些规则,可以在字符串中找到
阅读全文
摘要:简单的日期正则表达式 一个简单的日期解析程序,从yyyy-mm-dd格式的日期字符串中,分别获取年月日。 先设置一个简单的正则表达式,4位数字的“年”,1-2位数字的“月”和同样1-2位数字的“日”,中间‘-’作为分隔符。程序代码: #include <iostream> #include <reg
阅读全文
摘要:https://codeforces.com/problemset/problem/455/A 题意: 给出n个元素,让我们来挑选,如果选了 ,获得 点数,同时与 相等的元素都要被删除,问选完所有元素后的所能获得的最大点数 解题思路: 首先输
阅读全文
摘要:kuangbin带你飞:点击进入新世界 文章目录 1.Max Sum Plus Plus 原题链接:传送门 2.Ignatius and the Princess IV 原题链接:传送门 思路:hash存储(感觉和dp没啥关系啊。。) #include<bits/stdc++.h> using na
阅读全文
摘要:之前在师哥在讲动态规划的时候就推荐我们阅读一下这个在知乎下的一个回答,当时并不放在心上,现在做了一些动态规划的题目,经常产生一些疑惑与迷茫,现在拜读了这篇文章,觉得自己获益匪浅,于是做一下分享。 知乎关于这篇文章的链接https://www.zhihu.com/question/23995189/a
阅读全文
摘要:A new e-mail service "Berlandesk" is going to be opened in Berland in the near future. The site administration wants to launch their project as soon a
阅读全文
摘要:Xenia lives in a city that has n houses built along the main ringroad. The ringroad houses are numbered 1 through n in the clockwise order. The ringro
阅读全文
摘要:题目链接 Polycarpus has a ribbon, its length is n. He wants to cut the ribbon in a way that fulfils the following two conditions: After the cutting each r
阅读全文
摘要:算年龄 英国数学家德摩根出生于19世纪初叶(即18xx年)。 他年少时便很有才华。一次有人问他的年龄,他回答说: “到了x的平方那年,我刚好是x岁”。 请你计算一下,德摩根到底出生在哪一年。 题中的年龄指的是周岁。 请填写表示他出生年份的四位数字,不要填写任何多余内容。 1806 //手写下 0 -
阅读全文
摘要:事实上只是因为有人直接 #define int long long 了。。。然后int main改成signed main就行了 #define int long long ... signed main() { ... return 0; }
阅读全文
摘要:Codeforces Round #656 (Div. 3)题解 A.Three Pairwise Maximums 解题思路: 依照题意和样例,三个整数x,y,z必须有两个相同且都比第三个数大。 如果x==y则说明a为最大值,此时需要满足a>=z,如果不满足该条件,则无解,因为z=max(b,c)
阅读全文
摘要:VS以及C++开发使用注意事项 在vs2013版本开始出现安全检查 最好提前禁用错误4996 制表符问题:Visual Studio中设置Tab键对应空格数的方如下:依次选择:工具-〉选项 -〉文本编辑器->所有语言->制表符 改 插入空格 或 制表符大小为4(作用保证在不同人不同编译器有正确的缩进
阅读全文
摘要:在VS2017中创建C++的代码块模板 有任何问题,请留言!!! 在VS2017中有工具–>代码片段管理器,方便我们使用固有的代码块模板,同时我们也可以自定义模板。 在VS2017中代码片段的模板是xml文件,后缀为snippet格式,不知道怎么写,但是它已有一些现成的代码块,可以仿照它来写。 首先
阅读全文
摘要:题意:有三个好朋友的家都住在x轴的不同坐标,问新年的时候三个朋友之间问候走的最短距离 max{(a,b,c)} - min{(a,b,c)} 即可 编译器由 VS2017 切换到VScode使用,纪念下 Examples input 7 1 4 output 6 #include<bits/stdc
阅读全文
摘要:https://codeforces.com/problemset/problem/489/C C. Given Length and Sum of Digits... You have a positive integer m and a non-negative integer s. Your
阅读全文
摘要:题意:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。 分析与解法 一个数组中有很多数,现在我们要找出其中那个出现次数超过总数一半的数字,怎么找呢?大凡当我们碰到某一个杂乱无序的东西时,我们人的内心本质期望是希望把它梳理成有序的。所以,我们得分两种情况来讨论,无序和有序。 解法一 如果
阅读全文
摘要:试题 A: 平方和 本题总分:5 分 【问题描述】 小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。注意,平方和是指将每个数分别平方后求和。 请问,在 1 到 20
阅读全文
摘要:介绍下概念:简单来说,启发式搜索就是对取和不取都做分析,从中选取更优解(或删去无效解) 例题:P1048 采药 所有的启发式搜索都会有一个估价函数。下面是这一题的估价函数。 const int N = 105; struct Node { int a, b; // a代表时间,b代表价值 doubl
阅读全文
摘要:A. 每组给一个和个数(),每次操作可以给一个加2,求是否能使n个数相等 4 3 1 1 3 4 1 1 2 1 2 11 11 1 100 YES NO YES YES 直接扫一遍,记录最大值与当前的差是否能被2整除。 #include<bits/stdc++.h> using namespace
阅读全文
摘要:解题思路 题目说的意思是,给一个2n个数的数组,注意n为奇数,将这个数组平均分为2份,假设为c1和c2。 c1和c2是奇数个元素的数组,比如数组[1,2,3],那么中位数就是2。 那么如何求得中位数差值最小的两个数组呢? 对于数组[1, 2, 3, 4, 5, 6],显然只要一个数组的中位数是3,另
阅读全文
摘要:51node 上的一道题目 01 串[1] 给定一个 01 串 S,求出它的一个尽可能长的子串 S[i..j],满足存在一个位置 i<=x <j, S[i..x]中 0 比 1 多,而 S[x + 1..j]中 1 比 0 多。求满足条件的最长子串长度。 输入 一行包含一个只由 0 和 1 构成的字
阅读全文
摘要:题意:不同奶茶店里同样的奶茶价格不同,问在当天Yuki持有的零钱能在几家店购买 思路:对价格数组排序,先优先判断是否会比较最大值和最小值,然后二分查找 #include<bits/stdc++.h> using namespace std; int main() { int n, q, m, a[1
阅读全文