牛客训练赛55 E 树】的更多相关文章

很妙的一个树形DP问题,简单考虑了一下就过了 https://ac.nowcoder.com/acm/contest/2927/E 主要就是推公式(公式有点长呀) 大概就是这样,其实挺简单的. #include<iostream> #include<cstring> #include<algorithm> #include<vector> using namespace std; typedef long long ll; const int maxn =…
Governing sand 题意 森林里有m种树木,每种树木有一定高度,并且砍掉他要消耗一定的代价,问消耗最少多少代价可以使得森林中最高的树木大于所有树的一半 分析 复杂度分析:n 1e5种树木,并且砍树肯定是从便宜的砍,有区间性,可以考虑线段树,每次枚举一种高度,先把高于其高度的全部砍掉,再砍低于他的使得满足大于一半的条件,砍低于他的肯定是从花费低的开始砍,所以就是一个选前k小的问题,这样就是一颗权值线段树的事情了 坑点:不同种的树木可能高度相同 #include<bits/stdc++.h…
https://www.nowcoder.com/acm/contest/158#question 这题问最长的严格连续递增序列的最长长度是多少? 最开始感觉这道题不可做,因为有1e5个点,还有1e5的操作数 可是后来发现...这题水的一匹a[i]和y都是在1-100的范围内部 不如这样,我用一个d[i]数组记录连续递增的长度大小,用cnt[i]数组表示数组里面这个长度的连续递增序列的个数,由于这个序列a[i]范围很小,因此最长连续的长度一点小于等于100, 我们可以直接改变单点值,后面减去这单…
题目链接https://www.nowcoder.com/acm/contest/158/A 无语...这题很迷啊,原谅我的菜,刚开始想用预处理欧拉筛和前缀和,可是这题太血崩了,这样一样要遍历,1-e9的范围,后来翻网上题解,发现其实是个还算经典的问题 这题可以用离散和做嘛,如何离散和???先别着急,我们先想想,为啥这题不用欧拉函数做... 我们平时欧拉函数的题,都还能算比较难的题了,这题不仅仅加大了范围,还要求1-n的因数个数,我们只有另寻其它方法 我们不如写出1-10的因数组成(比赛一定要动…
题目描述   https://www.nowcoder.net/acm/contest/78/E 已知有一个n+1个数的数列,对于给定的A0和An ,当i满足当1<=i<=n-1时有        现在小星想知道对于这个数列一段区间的和.   输入描述: 第一行输入四个数 n,A0,An,Q 接下来Q行 每行输入两个数l,r 0=< n,A0,An<=1e9,Q<=100000 0<=l<=r<=n 输出描述: 对于每组查询输出Al到Ar的和 示例1 输入…
牛客练习赛28 - B 传送门 题目 qn姐姐最好了~ ​ qn姐姐给你了一个长度为n的序列还有m次操作让你玩, ​ 1 l r 询问区间[l,r]内的元素和 ​ 2 l r 询问区间[l,r]内的 元素的平方 和 ​ 3 l r x 将区间[l,r]内的每一个元素都乘上x ​ 4 l r x 将区间[l,r]内的每一个元素都加上x 输入描述: 第一行两个数n,m 接下来一行n个数表示初始序列 就下来m行每行第一个数为操作方法opt, 若opt=1或者opt=2,则之后跟着两个数为l,r 若op…
牛客编程巅峰赛S2第6场 A-StringⅡ 题目 题目描述 给出一个仅包含小写字母的字符串s,你最多可以操作k次,使得任意一个小写字母变为与其相邻的小写字母(ASCII码差值的绝对值为1),请你求出可能的最长相等子序列(即求这个字符串修改至多k次后的的一个最长子序列,且需要保证这个子序列中每个字母相等). 子序列:从原字符串中取任意多个字母按照先后顺序构成的新的字符串. 示例1 输入 2,"abcde" 返回值 3 示例2 输入 10,"acesxd" 返回值 4…
链接:https://www.nowcoder.com/acm/contest/85/F来源:牛客网 题目描述 Etéreo 拿出家里的许多的立方体积木,堆成了一个三维空间中的模型.既然你高考选了技术, 那想必你一定想知道,这个模型的三视图是什么吧!  图中, 轴. 轴和  轴的方向已经标明.现在规定,图中的红色面为主视面,蓝色面为右视面(注意输出中应为左视而非右视),黄色面为俯视面.具体方向可以观察样例.  输入描述: 第一行四个数 ,表示该三维空间大小为 ,且有 个立方体. 接下去 行,每行…
链接:https://www.nowcoder.com/acm/contest/134/J 来源:牛客网 思路:把数列排序,把每一个重复的元素和最后一个数想加得到新数,在删掉这一元素即为去重的最少步骤,重复此过程可知最小步骤数即为多余的重复元素个数. 例:1 2 2 4 4 8 8 10 多余的重复元素为:2 4 8 ,所以答案为3 #include <bits/stdc++.h> using namespace std; #define N 100005 long a[N]; int n;…
链接:https://www.nowcoder.com/acm/contest/134/A来源:牛客网 题目描述 铁子从森林里收集了n根木棍,她开始将它们按顺序的排成一排,从左到右依次为1到n,她回想起 在数学课上老师教她的三角形知识,她开始从这些木棍中间找三根木棍来组成一个周长最大的三角形, 这时她的兄弟顺溜偷偷的溜了过来,偷走了第i根木棍,现在她想知道现在能够组成周长最大的三角形 的周长是多少? 输入描述: 第一行两个整数n和q.(1 ≤ n, q ≤ 105)第二行n个整数表示第i根木棍的…