09 2020 档案
摘要:小技巧—双向边快速枚举 在与图有关的题中,我们可能会建立双向边。那么如果我们想要对这条双向边(也就是两条有向边)同时做操作。咋整? 第一种方法:从2开始存边的编号,然后异或1即可。 第二种方法:新开数组记录双向边编号是谁。 第三种方法:直接暴力再开个循环判一下。(它死了 着重讲解一下第一种方法,也是
阅读全文
摘要:ZJOI 2008 骑士 洛谷传送门 JDOJ传送门 Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英。他们劫富济贫,惩恶扬善,受到社会各界的赞扬。 最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争。战火绵延五百里,在和平环境中安逸了数百年的Z
阅读全文
摘要:小技巧—指数形式的枚举 指数形式的枚举一般使用递归来实现。 通常,求一个集合的全组合(也就是全部子集)的时候,常用指数型枚举。 原理很简单,每层递归只有两个分支:选还是不选。 然后对于每次到达递归出口的时候,对当前的组合判断一下合不合法即可。 对于回溯来讲,可以使用各种STL实现(反正都是暴力,不用
阅读全文
摘要:小技巧—滚动数组 滚动数组是常见的一种空间优化方式。 应用是递推算法,动态规划(其实现方式是递推)。 举个栗子: 斐波那契数列是递推的一个最好的例子,它的递推公式是: 也就是说,我们只需要知道n-1和n-2项就能知道第n项,第n项跟前面
阅读全文
摘要:刷题心得—背包问题的枚举方式 以0/1背包为例,到底正序枚举还是倒序枚举? 正序枚举还是倒叙枚举的原则取决于0/1背包的性质,即一个阶段的状态(1个物品)不能被放进背包两次。如果正序枚举的话,当前阶段被上一个阶段更新,而下一个阶段仍然可能被上一个阶段更新。多以就相当于一个物品被放进了背包两次。违背0
阅读全文
摘要:洛谷 P2014 [CTSC1997]选课 洛谷传送门 JDOJ传送门 Description 学校实行学分制。每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分。学校开设了N(N< 300)门的选修课程,每个学生可选课程的数量M是给定的。学生选修了这M门课并考核通过就能获得相应的学分。
阅读全文
摘要:小技巧—对于深搜森林的处理 所谓森林(请读者收起邪恶的笑容),就是很多棵互相独立的树。是一张不连通的图,其中每个连通块都是一个树。 所以我们发现,如果对这张图进行遍历的话,要先记录每个树的根节点,然后才可行。 感觉很麻烦很耗时。 怎么办呢? 新建一个0节点为所有树根的父亲,相当于一个虚的节点把所有节
阅读全文
摘要:JDOJ 1070: phoneline JDOJ传送门 Description 小h最近准备给家里新装条电话线,好让他在奥运假期能够天天上网冲浪,不用再忍受那昂贵的无线上网。 电信局的工作人员对小h说,电话线网络上有n个站点,它们用m条边来连接,小h家的站点在1号,连接的终点在n号,站点之间有电线
阅读全文
摘要:浅谈卡特兰数 本篇随笔浅谈一下数学中的卡特兰数。 卡特兰数博大精深,由于博主时间、精力、水平都非常非常有限,所以只挑干货讲。 引入: 给定个0,个1,按某种顺序排成长度为的序列,求满足任意前缀中0的个数不少于1的个数的序列的数量。 答案即卡特兰数。 设第项卡特兰数为$Cat
阅读全文
摘要:CSP-S2019 D1T2 括号树 洛谷传送门 题目背景 本题中合法括号串的定义如下: () 是合法括号串。 如果 A 是合法括号串,则 (A) 是合法括号串。 如果 A,B 是合法括号串,则 AB 是合法括号串。 本题中子串与不同的子串的定义如下: 字符串 S 的子串是 S 中连续的任意个字符组
阅读全文
摘要:CF165E Compatible Numbers 洛谷传送门 题目描述 Two integers xx and yy are compatible, if the result of their bitwise "AND" equals zero, that is, aa & b=0b=0 . F
阅读全文
摘要:CF19B Checkout Assistant 洛谷传送门 题目描述 Bob came to a cash & carry store, put nn items into his trolley, and went to the checkout counter to pay. Each ite
阅读全文
摘要:小技巧—DP过程中序列的记录 一道例题: CF10D LCIS 求最长公共上升子序列的题。算是比较基础和经典的DP题目。 但是这道题目为什么是蓝了呢。。。可能就是因为它还需要维护一个序列的记录。 怎么维护呢? 我们开一个数组,表示当前状态的前一个位置是什么。即当前状态是由哪个状态新转移过来
阅读全文
摘要:CF4D Mysterious Present 洛谷传送门 题目描述 Peter decided to wish happy birthday to his friend from Australia and send him a card. To make his present more mys
阅读全文
摘要:USACO Empty Stalls 洛谷传送门 JDOJ传送门 Description Problem 1: Empty Stalls [Brian Dean, 2013] Farmer John's new barn consists of a huge circle of N stalls (
阅读全文
摘要:USACO Longest Prefix 洛谷传送门 JDOJ传送门 Description 在生物学中,一些生物的结构是用包含其要素的大写字母序列来表示的.生物学家对于把长的序列分解成较短的(称之为元素的)序列很感兴趣. 如果一个集合 P 中的元素可以通过串联(允许重复;串联,相当于 Pascal
阅读全文
摘要:USACO Dining Cows 洛谷传送门 JDOJ传送门 Description The cows are so very silly about their dinner partners. They have organized themselves into two groups (co
阅读全文
摘要:洛谷 P4180 [BJWC2010]严格次小生成树 洛谷传送门 JDOJ 1059: 次小生成树 JDOJ传送门 Description 小C最近学了很多最小生成树的算法,Prim算法、Kurskal算法、消圈算法等等。正当小C洋洋得意之时,小P又来泼小C冷水了。小P说,让小C求出一个无向图的次小
阅读全文
摘要:重谈MST及Kruskal算法 当初学MST(Minimum Spanning Tree)最小生成树的时候,还是懵懵懂懂,不求慎解。所以只记下了模板,狂拍了几道板子题和板子题加一点点变形的题目。所以今天来温故而知新一下。 MST的一些性质 这里有一个定理,就是MST一定包含全图权值最小的边。用反证法
阅读全文
摘要:小技巧—边权转点权 很多算法,比如树链剖分,是在点权上进行计算和统计的。 详解树链剖分 但是有些题会比较狗,只给你边权。 这时就要想办法把边权转为点权。 以一棵树为例。边权转点权一般是把边权转为深度较深的节点(也就是儿子节点)的点权。 这么做很好理解,因为对于一棵树来讲,一个点有很多个儿子(出边),
阅读全文
摘要:JDOJ 1062 过路费 JDOJ传送门 Description 在某个遥远的国家里,有n个城市。编号为1,2,3,…,n。这个国家的政府修建了m条双向道路,每条道路连接着两个城市。政府规定从城市S到城市T需要收取的过路费为所经过城市之间道路长度的最大值。如:A到B长度为2,B到C长度为3,那么开
阅读全文
摘要:总结—二分答案求解问题 我们经常会犯的一个错误就是不求慎解,只觉得“会了”就轻轻放下,其实根本没有真正的搞懂这些东西。 二分,简单算法,文化课都要学的东西。 当初对它的理解就是:很方便地求“最大值最小”/“最小值最大”。 当然,这也是二分答案算法的一个标志。但是我们需要思考的是:为什么二分可以求解“
阅读全文
摘要:CF10D LCIS 洛谷传送门 题目描述 This problem differs from one which was on the online contest. The sequence a_{1},a_{2},...,a_a1,a2,...,a**n is called increasin
阅读全文
摘要:NOIP 2012 摆花 洛谷传送门 JDOJ传送门 题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共mm盆。通过调查顾客的喜好,小明列出了顾客最喜欢的nn种花,从11到nn标号。为了在门口展出更多种花,规定第ii种花不能超过a_ia**i盆,摆花时同一种花放在一起,且不同种
阅读全文
摘要:SDOI 2014 旅行 洛谷传送门 JDOJ传送门 Description S国有N个城市,编号从1到N。城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市。每个城市信仰不同的宗教,如飞天面条神教、隐形独角兽教、绝地教都是常见的信仰。为了方便,我们用不同的正整数代表各种宗教。 S
阅读全文
摘要:CF550C Divisibility by Eight 洛谷传送门 题目描述 You are given a non-negative integer nn , its decimal representation consists of at most 100100 digits and doe
阅读全文
摘要:CF509A Maximum in Table 洛谷传送门 题目描述 An n×nn×n table aa is defined as follows: The first row and the first column contain ones, that is: a_{i,1}=a_{1,i}
阅读全文
摘要:USACO Closing the Farm 洛谷银 洛谷金 JDOJ银 Description Farmer John and his cows are planning to leave town for a long vacation, and so FJ wants to temporari
阅读全文
摘要:VIJOS-P1190 繁忙的都市 洛谷传送门 JDOJ传送门 Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造。城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道路相连接。这些道路是
阅读全文
摘要:VIJOS-P1034 家族 JDOJ传送门 Description 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也
阅读全文
摘要:JDOJ 1046 亲戚 JDOJ传送门 Description 或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱,判断两个人是否亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所
阅读全文
摘要:重谈并查集 当初学并查集的时候记得是森哥讲的@zcs0724。但是没太学明白(是因为蒟蒻太菜,跟森哥没半毛钱关系),于是今天来重新捋一下并查集,顺便补个讲解。就叫重谈并查集吧。(没有爆粗)(滕总笑) 并查集的概念 并查集(Disjoint-Set)是一种可以维护若干个不重叠的集合,并支持集合合并与查
阅读全文
摘要:ZJOI 2008 树的统计 洛谷传送门 JDOJ传送门 Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t 😗* 把结点u的权值改为t** II. QMAX u v: 询问从点u到点
阅读全文
摘要:2020全学科竞赛游记 Part 0 前言 ,一只坐标吉林的蒟蒻OIer(他非常不喜欢用这个称号,他觉得这是给这个群体丢脸)。 他非常菜。被学长、同学、学弟学妹们各种吊打。 他是在上初三下学期的时候初入OI的。并且,在高一上学期的时候选择脱产淦OI,一点没有提前学过文化课的
阅读全文
摘要:USACO Hotel 洛谷传送门 JDOJ传送门 Description The cows are journeying north to Thunder Bay in Canada to gain cultural enrichment and enjoy a vacation on the s
阅读全文
摘要:USACO Checker Challenge 洛谷传送门 JDOJ传送门 Description 检查一个如下的6 x 6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行,每列,每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 5 来描述,第i
阅读全文
摘要:VIJOS-P1083 小白逛公园 洛谷传送门 JDOJ传送门 Description 小新经常陪小白去公园玩,也就是所谓的遛狗啦…在小新家附近有一条“公园路”,路的一边从南到北依次排着n个公园,小白早就看花了眼,自己也不清楚该去哪些公园玩了。 一开始,小白就根据公园的风景给每个公园打了分。小新
阅读全文
摘要:小技巧—数组初始化 简单说一下memset函数的使用方法。 memset函数会把一个类型的东西按字节清空,一个字节是8位,所以按理讲memset对int数组实现统一赋值的操作的时候只能赋值0或者-1。如果不这样的话,就会导致一个循环出现。比如,你想对整个数组赋值2的话,因为2的二进制是10,八位的话
阅读全文
摘要:洛谷 P1605 迷宫 洛谷传送门 题目背景 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。 题目描述 无 输入格式 第
阅读全文
摘要:USACO Meteor Shower 洛谷传送门 JDOJ传送门 Description Bessie hears that an extraordinary meteor shower is coming; reports say that these meteors will crash in
阅读全文
摘要:小技巧—取模防负 本篇随笔介绍取模防负数的小技巧。 这个应用在减法取模的过程中。我们为了保证在计算过程中的答案不溢出,一定会选择在算法执行过程中反复对其进行取模,显而易见这种做法也能保证最终答案的正确性,而不需要把整个算法执行完之后再统一取模。 但是,减法稍有不同。我们在这个连续取模的过程中,有可能
阅读全文
摘要:CSP-S2019 D2T1 Emiya家今天的饭 洛谷传送门 题目描述 Emiya 是个擅长做菜的高中生,他共掌握 nn 种烹饪方法,且会使用 mm 种主要食材做菜。为了方便叙述,我们对烹饪方法从 1 \sim n1∼n 编号,对主要食材从 1 \sim m1∼m 编号。 Emiya 做的每道菜都
阅读全文
摘要:重谈DFS序、时间戳和欧拉序 本篇随笔复习总结一下算法竞赛中的DFS序、时间戳、欧拉序的相关知识。 DFS序的部分抄的是本蒟蒻今年年初的博客,链接放在下面: 浅谈DFS序 DFS序的概念 先来上张图: 树的DFS序列,也就是树的深搜序,它的概念是:树的每一个节点在深度优先遍历中进出栈的时间序列。 树
阅读全文
摘要:JDOJ 1842 Magictree 题目传送门 Description Fox住在魔法岛上,他种了一排N棵魔法树(标号0..N-1,高度Ai),接下来的M天,每天Del都会来(Del是Fox的朋友),或者问Fox一些问题,或者帮助Fox对这些树施魔法.于是有两种形式: 1.询问第a棵树到第b棵树
阅读全文
摘要:CSP-S2019 D1T1 格雷码 洛谷传送门 题目描述 通常,人们习惯将所有 nn 位二进制串按照字典序排列,例如所有 2 位二进制串按字典序从小到大排列为:00,01,10,11。 格雷码(Gray Code)是一种特殊的 nn 位二进制串排列法,它要求相邻的两个二进制串间恰好有一位不同,特别
阅读全文
摘要:洛谷 P3919 【模板】可持久化线段树 1(可持久化数组) 洛谷传送门 题目描述 如题,你需要维护这样的一个长度为 NN 的数组,支持如下几种操作 在某个历史版本上修改某一个位置上的值 访问某个历史版本上的某一位置的值 此外,每进行一次操作(对于操作2,即为生成一个完全一样的版本,不作任何改动),
阅读全文
摘要:详解主席树(可持久化线段树) 本篇随笔详细解读一下算法竞赛中的一种数据结构:主席树。(可持久化线段树) 前置知识当然是线段树,也应该有动态开点。 如果没有掌握请移步: 简单线段树详解 权值线段树详解 动态开点详解 一、关于可持久化 可持久化数据结构是一个家族,可持久化线段树只是其中的一部分。 关于可
阅读全文
摘要:小技巧—计算内存 本篇随笔记录一下如何计算程序需要使用的内存。 一个int类型的变量是4个字节,4 B. 一个字符型变量char是1个字节,1B. 换算规律是: 1G=1024M 1M=1024K 1K=1024B 后面的零头24可以忽略了。那么我们最后的计算就是:(以整型数组为例) 数组大小*4/
阅读全文
摘要:浅谈启发式合并 本篇随笔简单浅谈一下启发式合并。 启发式合并的概念 顾名思义,启发式合并解决的是合并类的问题。 现在给一个最基本的合并问题。 我们要把个集合,总共个元素合并成一个大集合。 很容易得出,最坏的情况下需要合并次,每次合并个元素,也就是的时间复杂度。
阅读全文
摘要:浅谈换根DP 本篇随笔浅谈一下算法竞赛中的换根DP。 换根DP概念 换根DP其实是树形DP的一种延伸技巧或者说是方法。 它的使用范围是,对树上的每个点跑树形DP。这样的话,不用换根DP一点一点跑的复杂度就是,必炸。那么换根DP应运而生。简单来讲,就是我们会通过推理发现,我们先以一个选定
阅读全文
摘要:POJ 3585 Accumulation Degree 题目传送门 Description Trees are an important component of the natural landscape because of their prevention of erosion and th
阅读全文