09 2020 档案

摘要:题目来源:https://www.acwing.com/problem/content/31/ 思路: 模拟,中序遍历时,本节点的下一个节点分为两种情形讨论 当本节点存在右子树,直接找右子树的最左节点,即是中序遍历的下一个节点。 当本节点不存在右子树,则向上寻找最近可作为左儿子的节点(包含该节点)的 阅读全文
posted @ 2020-09-30 23:59 mohari 阅读(110) 评论(0) 推荐(0) 编辑
摘要:题目来源https://www.acwing.com/problem/content/description/14/ 思路:最直接的想法就是用map记录一下或者用set每次插入一个数判断一下长度有没有变化就好了。 class Solution { public: int duplicateInArr 阅读全文
posted @ 2020-09-27 16:24 mohari 阅读(210) 评论(0) 推荐(0) 编辑
摘要:题目来源https://www.acwing.com/problem/content/16/ 思路:刚开始想对目标数在行、列分别进行二分,但感觉这样是有问题的。 由于行列都是递增序列,观察发现如果目标数比当前数小的话,则当前数的左边必定全部比目标数小。而如果大的话,当前数的下边 必定全部比目标数大, 阅读全文
posted @ 2020-09-27 14:12 mohari 阅读(117) 评论(0) 推荐(0) 编辑
摘要:题目来源https://www.acwing.com/problem/content/23/ 思路:这是很经典的题,根据前序遍历创建根节点,再通过递归创建左右子树,最后根节点指向左右子树。 具体做法是通过在中序遍历中找到根节点的位置k,分别得到中序遍历左右子树的区间,得到左右区间的长度l,r。 而前 阅读全文
posted @ 2020-09-27 13:55 mohari 阅读(83) 评论(0) 推荐(0) 编辑
摘要:传送门 1.01背包 #include<bits/stdc++.h> using namespace std; const int N=1005; int f[N]; int n,V,v,w; int main(){ cin>>n>>V; for(int i=0;i<n;i++){ cin>>v>> 阅读全文
posted @ 2020-09-25 14:49 mohari 阅读(86) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-09-15 11:13 mohari 阅读(0) 评论(0) 推荐(0) 编辑
摘要:传送门 题目描述 输入描述: 一行两个整数 n,d 接下来一行 n 个整数 ai 输出描述: 输出 n 行每行一个整数,第 i 行的整数表示 k=i 时的答案 输入 5 23 4 7 9 8 输出 1996488718984199188984199181996488711 说明 思路: 题目大意是给 阅读全文
posted @ 2020-09-13 17:33 mohari 阅读(187) 评论(0) 推荐(1) 编辑
摘要:传送门 题目描述 输入描述: 第一行两个正整数 n,m 接下来 m 行,每一行三个正整数 u,v,w 表示 u,v 之间有一条长度为 w 的边 输出描述: 示例1 输入 2 1 1 2 3 输出 3 说明 很显然,1,2 或者 2,1 都是合法的 备注: 题解: 题目要求构造一个连通图,使得其中的特 阅读全文
posted @ 2020-09-11 23:05 mohari 阅读(198) 评论(1) 推荐(1) 编辑
摘要:题目描述 某一村庄在一条路线上安装了 n 盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少)。老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯。 为了给村里节省电费,老张记录下了每盏路灯的位置和功率,他每次关灯时也都是尽快地去关,但是老张不知道怎样去 阅读全文
posted @ 2020-09-11 16:30 mohari 阅读(142) 评论(0) 推荐(0) 编辑