上一页 1 ··· 8 9 10 11 12 13 14 15 下一页
摘要: 原题传送门 适合树剖新手做的题,代码简单,思路稍微有点难理解,便于新手提升水平。 题目大意 给定一棵树,请你给出一种剖分方案(即输出所有结点的重儿子,剖分方案其实就是指对重儿子的判定规则),使所有询问操作总共访问的轻重链总条数最小,由于可能有许多合法方案,请任意输出一种。 解题思路 前置知识: 倍增 阅读全文
posted @ 2021-07-31 22:19 蒟蒻orz 阅读(16) 评论(0) 推荐(0)
摘要: 原题传送门 题目大意 给出一个长度为 nnn 的序列 hhh,和每一个数的 valvalval ,请将 hhh 分成若干段,满足每段数字的 valvalval 之和都不超过 mmm,最小化每段的最大值之和。 解题思路 首先分析题意,得到动态转移方程: fi=min(fj−1+max(hj∼hi)) 阅读全文
posted @ 2021-07-28 22:48 蒟蒻orz 阅读(17) 评论(0) 推荐(0)
摘要: 原题传送门 题目大意 给出一个长度为 nnn 的序列 hhh,请将 hhh 分成若干段,满足每段数字之和都不超过 mmm,最小化每段的最大值之和。 解题思路 首先分析题意,得到动态转移方程: fi=min(fj−1+max(hj∼hi)) (∑k=jihk≤m)f_i=min(f_{j-1}+max 阅读全文
posted @ 2021-07-28 22:47 蒟蒻orz 阅读(5) 评论(0) 推荐(0)
摘要: 题目大意 给你一个 dfs 序和一个 bfs 序,求所有满足这两个序的树的高的平均值( 保留三位小数 ),输入保证至少存在一棵树符合给定的两个序列。 解题思路 首先可以从 bfs 序入手,因为更具 bfs 序的性质,可以发现 bfs 序可以分成 xxx 个段,每一段中的节点都是在同一行中,而这棵树 阅读全文
posted @ 2021-07-26 11:19 蒟蒻orz 阅读(27) 评论(0) 推荐(0)
摘要: 题目大意 给你一个序列 aaa , 选择排列中的任意一段区间 [l,r][l,r][l,r],求将序列 aaa 从小到大排序最少需要排序多少个数。 解题思路 每次输入一个数 xxx ,将其与当前遍历的编号 iii 求最大和最小值。 再用一个差分数组,将区间 [mmin,mmax][mmin,mmax 阅读全文
posted @ 2021-07-12 16:20 蒟蒻orz 阅读(37) 评论(0) 推荐(0)
摘要: 解题思路 简单的数论题 简单的构造一下就行 AC CODE #include <bits/stdc++.h> long long INF = 1e18, mod; int main() { scanf("%lld", &mod); printf("%lld %lld\n", mod - INF % 阅读全文
posted @ 2021-07-12 15:44 蒟蒻orz 阅读(4) 评论(0) 推荐(0)
摘要: 解题思路 素数 指只有 111 和它本身 222 个因数的自然数。 可使用 欧拉筛法 。 复杂度 O(n)O(n)O(n) 。 另外 111 不是素数, 要特判一下。 AC CODE #include<bits/stdc++.h> using namespace std; bool isPrime[ 阅读全文
posted @ 2021-07-12 13:43 蒟蒻orz 阅读(10) 评论(0) 推荐(0)
摘要: 题目大意 如题所述,找第一个只出现一次的字符,用一个桶记录出现次数就能完成了。 解题思路 用一个桶记录出现次数。 顺序遍历,如果一个字母的出现次数为 111,就直接输出。 AC CODE #include<bits/stdc++.h> using namespace std; string s; i 阅读全文
posted @ 2021-07-12 08:47 蒟蒻orz 阅读(108) 评论(0) 推荐(0)
摘要: 本题传送门 题目大意 给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数。 唯一的限制条件是相临的两个结点不能标上相同的权值,要求一种方案,使得整棵树的总价值最小。 解题思路 本题相当于一个染色问题。 本蒟蒻开始以为是 121212 染色。(危 其实可以有一组 Hack 数据。 数据1 阅读全文
posted @ 2021-07-06 18:03 蒟蒻orz 阅读(13) 评论(0) 推荐(0)
摘要: 本题传送门 题目大意 给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数。 唯一的限制条件是相临的两个结点不能标上相同的权值,要求一种方案,使得整棵树的总价值最小。 解题思路 本题相当于一个染色问题。 本蒟蒻开始以为是 121212 染色。(危 其实可以有一组 Hack 数据。 数据1 阅读全文
posted @ 2021-07-06 16:40 蒟蒻orz 阅读(5) 评论(0) 推荐(0)
摘要: 1. vectorvectorvector: 1.1 vectorvectorvector 说明 vectorvectorvector 是向量类型,可以容纳许多类型的数据,因此也被称为容器 (可以理解为动态数组,是封装好了的类) 进行 vectorvectorvector 操作前应添加头文件 #in 阅读全文
posted @ 2021-07-02 20:35 蒟蒻orz 阅读(11) 评论(0) 推荐(0)
摘要: todo 1、算法学习笔记 2、树链剖分详解 阅读全文
posted @ 2021-06-23 22:17 蒟蒻orz 阅读(9) 评论(0) 推荐(0)
摘要: 解方程(洛谷P1022)\mathcal{解方程(洛谷P1022)}解方程(洛谷P1022) 题目大意 对于一个一元一次方程,其中: 包含整数、小写字母及 +、−、=+、-、=+、−、= 这三个数学符号(当然,符号 −-− 既可作减号,也可作负号)。 方程中并没有括号 方程中的字母表示未知数 有唯一 阅读全文
posted @ 2021-06-22 21:53 蒟蒻orz 阅读(33) 评论(0) 推荐(0)
摘要: Description n的阶乘定义为 n!=n∗(n−1)∗(n−2)∗……∗1n! = n*(n-1)*(n-2)*……*1n!=n∗(n−1)∗(n−2)∗……∗1。 n的双阶乘定义为 n!!=n∗(n−2)∗(n−4)∗……∗2n!! = n*(n-2)*(n-4)*……*2n!!=n∗(n 阅读全文
posted @ 2021-06-22 21:53 蒟蒻orz 阅读(47) 评论(0) 推荐(0)
摘要: Description 小L小 L小L 有 nnn 个 CFCFCF 号,每场比赛他会使用一个账号,会得到一个 PerformancePerformancePerformance ,假设原 RatingRatingRating 为 xxx, PerformancePerformancePerform 阅读全文
posted @ 2021-06-22 21:52 蒟蒻orz 阅读(13) 评论(0) 推荐(0)
摘要: Description 给定长度为 nnn 的数列 aaa ,如果 ai​ & aj​≠0a_i​ \ \& \ a_j ​\ne 0ai​​ & aj​​=0(按位与),则在 i,ji,ji,j 之间存在一条长度为 ai​+aja_i​ + a_jai​​+aj​​ 的边,求 111 至所有点的 阅读全文
posted @ 2021-06-22 21:52 蒟蒻orz 阅读(8) 评论(0) 推荐(0)
摘要: DescriptionDescriptionDescription 我们称逆序对为一个序列中满足 i<ji<ji<j 且 ai>aja_i > a_jai​>aj​​ 的二元组 (i,j)(i,j)(i,j)。 若一个排列的逆序对个数为奇数,则称它为一个奇排列,否则它被称为偶排列。 给出一个长度为 阅读全文
posted @ 2021-06-22 21:51 蒟蒻orz 阅读(27) 评论(0) 推荐(0)
摘要: 概念 图 图(Graph)图 (Graph)图(Graph) 是一个二元组 G=(V(G),E(G))G=(V(G),E(G))G=(V(G),E(G))。 其中 V(G)V(G)V(G) 是非空集,称为 点集(Vertex set)点集 (Vertex \ set)点集(Vertex set),对 阅读全文
posted @ 2021-06-22 21:49 蒟蒻orz 阅读(24) 评论(0) 推荐(0)
摘要: 计算程序运行时间计算程序运行时间计算程序运行时间 又来水了 手动计算 namespace Time { clock_t start, finish; // double totaltime; // inline void Start() { start = clock(); // } inline 阅读全文
posted @ 2021-05-25 21:37 蒟蒻orz 阅读(11) 评论(0) 推荐(0)
摘要: log2预处理log2预处理log2预处理 lg[i]=log2(i)+1lg[i]=log2(i)+1lg[i]=log2(i)+1 lg[i]=lg[i−1]+(2lg[i]==i)lg[i]=lg[i-1]+(2^{lg[i]}==i)lg[i]=lg[i−1]+(2lg[i]==i) int 阅读全文
posted @ 2021-05-25 21:36 蒟蒻orz 阅读(29) 评论(0) 推荐(0)
摘要: 1. 什么是 RMQRMQRMQ RMQRMQRMQ 是英文 Range Maximum (Minimum) QueryRange\ Maximum \ (Minimum) \ QueryRange Maximum (Minimum) Query 的缩写,顾名思 义是用来求某个区间内的最大值或最小值 阅读全文
posted @ 2021-05-20 21:39 蒟蒻orz 阅读(15) 评论(0) 推荐(0)
摘要: 1. 什么是线段树 顾名思义 , 线段树是一棵二叉树 , 但不同的是这棵树的结点储存的值是一个数列中 [l,r][l,r][l,r] 的某个需要的值 (例如,求和,求最大值,求最小值) 这是一棵典型的线段树 ,其性质是 : 若其中一子节点编号为 aaa,则该节点左儿子编号为 2a2a2a,其右儿子编 阅读全文
posted @ 2021-05-20 21:23 蒟蒻orz 阅读(11) 评论(0) 推荐(0)
摘要: 树状数组详解树状数组详解树状数组详解 先来看几个问题吧。 1. 什么是树状数组? 顾名思义,就是用数组来模拟树形结构呗。那么衍生出一个问题,为什么不直接 建树?答案是没必要,因为树状数组能处理的问题就没必要建树。和 TrieTrieTrie 树的构造 方式有类似之处。 2. 树状数组可以解决什么问题 阅读全文
posted @ 2021-05-20 20:56 蒟蒻orz 阅读(20) 评论(0) 推荐(0)
摘要: 题目大意题目大意题目大意 题目链接 给定四个数 m,a,c,X0m,a,c,X_0m,a,c,X0​ ,根据公式 : Xn+1=(aXn+c)(modm)X_n+1 =(aX_n +c) \pmod{m}Xn​+1=(aXn​+c)(modm) 求出 Xn(modg)的值X_n \pmod{g} 的 阅读全文
posted @ 2021-05-11 21:59 蒟蒻orz 阅读(15) 评论(0) 推荐(0)
摘要: @TOC 三元上升子序列 洛谷P1637 主要思路 树状数组维护一个桶,记录这个数出现的次数 先对数组去重,再进行数据离散化(这个比较坑,一开始没想到) 正向遍历数组,先查找并 fif_ifi​ 记录比 aia_iai​ 小的数出现的次数,再将 aia_iai​ 插入树状数组 清空树状数组 反向遍历 阅读全文
posted @ 2021-05-11 20:47 蒟蒻orz 阅读(51) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 下一页