07 2021 档案

摘要:原题传送门 适合树剖新手做的题,代码简单,思路稍微有点难理解,便于新手提升水平。 题目大意 给定一棵树,请你给出一种剖分方案(即输出所有结点的重儿子,剖分方案其实就是指对重儿子的判定规则),使所有询问操作总共访问的轻重链总条数最小,由于可能有许多合法方案,请任意输出一种。 解题思路 前置知识: 倍增 阅读全文
posted @ 2021-07-31 22:19 蒟蒻orz 阅读(9) 评论(0) 推荐(0) 编辑
摘要:原题传送门 题目大意 给出一个长度为 nnn 的序列 hhh,和每一个数的 valvalval ,请将 hhh 分成若干段,满足每段数字的 valvalval 之和都不超过 mmm,最小化每段的最大值之和。 解题思路 首先分析题意,得到动态转移方程: fi=min(fj−1+max(hj∼hi)) 阅读全文
posted @ 2021-07-28 22:48 蒟蒻orz 阅读(10) 评论(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 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题目大意 给你一个 dfs 序和一个 bfs 序,求所有满足这两个序的树的高的平均值( 保留三位小数 ),输入保证至少存在一棵树符合给定的两个序列。 解题思路 首先可以从 bfs 序入手,因为更具 bfs 序的性质,可以发现 bfs 序可以分成 xxx 个段,每一段中的节点都是在同一行中,而这棵树 阅读全文
posted @ 2021-07-26 11:19 蒟蒻orz 阅读(12) 评论(0) 推荐(0) 编辑
摘要:题目大意 给你一个序列 aaa , 选择排列中的任意一段区间 [l,r][l,r][l,r],求将序列 aaa 从小到大排序最少需要排序多少个数。 解题思路 每次输入一个数 xxx ,将其与当前遍历的编号 iii 求最大和最小值。 再用一个差分数组,将区间 [mmin,mmax][mmin,mmax 阅读全文
posted @ 2021-07-12 16:20 蒟蒻orz 阅读(17) 评论(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 阅读(1) 评论(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 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题目大意 如题所述,找第一个只出现一次的字符,用一个桶记录出现次数就能完成了。 解题思路 用一个桶记录出现次数。 顺序遍历,如果一个字母的出现次数为 111,就直接输出。 AC CODE #include<bits/stdc++.h> using namespace std; string s; i 阅读全文
posted @ 2021-07-12 08:47 蒟蒻orz 阅读(84) 评论(0) 推荐(0) 编辑
摘要:本题传送门 题目大意 给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数。 唯一的限制条件是相临的两个结点不能标上相同的权值,要求一种方案,使得整棵树的总价值最小。 解题思路 本题相当于一个染色问题。 本蒟蒻开始以为是 121212 染色。(危 其实可以有一组 Hack 数据。 数据1 阅读全文
posted @ 2021-07-06 18:03 蒟蒻orz 阅读(2) 评论(0) 推荐(0) 编辑
摘要:本题传送门 题目大意 给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数。 唯一的限制条件是相临的两个结点不能标上相同的权值,要求一种方案,使得整棵树的总价值最小。 解题思路 本题相当于一个染色问题。 本蒟蒻开始以为是 121212 染色。(危 其实可以有一组 Hack 数据。 数据1 阅读全文
posted @ 2021-07-06 16:40 蒟蒻orz 阅读(4) 评论(0) 推荐(0) 编辑
摘要:1. vectorvectorvector: 1.1 vectorvectorvector 说明 vectorvectorvector 是向量类型,可以容纳许多类型的数据,因此也被称为容器 (可以理解为动态数组,是封装好了的类) 进行 vectorvectorvector 操作前应添加头文件 #in 阅读全文
posted @ 2021-07-02 20:35 蒟蒻orz 阅读(7) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示