搜索结果
查询Tags标签: mid,共有 942条记录-
中国地质大学(武汉)第十九届程序设计大赛 - D - 弗林戒指
传送门题意简述: 你可以佩戴 \(n\) 个武器 以及 最多 \(1\) 个饰品, 你拥有 \(m\) 个武器进行选择, 每个武器有三个属性,重量、伤害以及武器的蓄力时间。你只能进行一次攻击,求出你可以杀死 一个 \(100\) 血量 的 \(boss\) 的最小花费时间,如果无论如何也杀不死,输…
2022/6/10 1:19:53 人评论 次浏览 -
【1498. 满足条件的子序列数目】二分查找
import java.util.Arrays;class Solution {public int numSubseq(int[] nums, int target) {Arrays.sort(nums);int len = nums.length;long ans = 0l;for (int i = 0; i < len; i++) {if( nums[i]*2 <= target){int idx = upperBound(nums,0,len,target-nums[i]);i…
2022/6/8 23:21:53 人评论 次浏览 -
BZOJ4919 大根堆(树形dp+线段树合并)
用 multiset 启发式合并贪心维护 LIS 的做法就不多说了,网上题解一大堆,着重讲一下线段树合并维护 \(dp\)。 \(O(n^2)\) 的 \(dp\) 非常显然。离散化后,设 \(dp[u][i]\) 表示节点 \(u\) 的子树中,最大值为 \(i\) 时最多取多少个节点。转移时考虑是否将节点 \(u\) 加入…
2022/6/2 23:20:25 人评论 次浏览 -
八大排序算法代码实现
八大排序算法代码实现 tip 本文所有排序算法均为升序排序 基本数据结构 typedef int dataType; //这里主要针对整型数据进行排序 typedef struct {vector<dataType> key; //顺序表关键字int length; //顺序表长度 }List;一、插入排序 原始版本 void InsertSort_0(…
2022/6/2 1:20:19 人评论 次浏览 -
力扣刷题 二分法 leetcode 刷题 27,26,283,844,977
力扣刷题 二分法专题 二分法第一种写法 第一种写法,我们定义 target 是在一个在左闭右闭的区间里,也就是[left, right] (这个很重要非常重要)。 区间的定义这就决定了二分法的代码应该如何写,因为定义target在[left, right]区间,所以有如下两点:while (left <=…
2022/5/30 23:21:34 人评论 次浏览 -
归并排序C++实现
思想:先进行判断是否为一个元素数组; 取中间值进行分区(递归到分区键值为1) 每个分区的各个数据利用双指针进行比较大小,小者存到tmp数组暂存 处理分区剩下的值,直接存入tmp 将tmp暂存值导入到原数组中。代码实现:#include<iostream> using namespace std; c…
2022/5/30 1:19:44 人评论 次浏览 -
【Coel.解题报告】【权值线段树初探】三元上升子序列
题前闲话 第一次写绿题解题报告,多少有点膈应quq 反正这个也是主席树和树套树的前置操作,就当是水博客了! 反正整个五月也没写几个博客 题目简介 洛谷传送门 最近洛谷出了个一键复制 markdown 的功能,这下方便多了! 题目描述 Erwin 最近对一种叫 thair 的东西巨感兴趣…
2022/5/28 23:21:31 人评论 次浏览 -
剑指Offer-第4天 查找算法(简单)
第一题 题目链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/ 个人题解:索引法我们可以将数字和下表进行对应,每次把索引和下标一样的数字记录(强行变成) 当我们再次遍历的时候如果下标一样,就一定会有重复,返回其中一个即可。代码:…
2022/5/6 11:42:48 人评论 次浏览 -
磊磊零基础打卡算法:day05
5.5 快速排序模板类型主要思想:分治;对于这种边界容易出错的,直接背过模板就好这里是需要先找出x分界点对其进行比较,然后比较,最后递归,void quick_sort(int q[], int l, int r) {if (l >= r)//如果左边大于有右边那么不符合条件,退出return;int x = q[l], i =…
2022/5/6 9:12:58 人评论 次浏览 -
LiberOJ 10014 数列分段 II 二分
题意 给定长度为 \(N\) 的序列 \(A\),要将其划分为连续的 \(M\) 段,并最小化每一段总和的最大值。 输入格式 第1行包含两个正整数 \(N,M\) 第2行包含 \(N\) 个空格隔开的非负整数 \(A_i\),含义如题目所述。 输出格式 仅包含一个正整数,即每段和最大值最小为多少。 Inp…
2022/5/6 6:12:43 人评论 次浏览 -
算法笔记
>> 表示右移,如果该数为正,则高位补0,若为负数,则高位补1。 >>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。ticket: 求中间值:mid = L + ((R - L) >> 1) // mid = (L + R) / 2 …
2022/5/5 20:42:39 人评论 次浏览 -
二分查找/搜索使用方法
难点:二分查找的难点在于细节,不等号是否应该带等号如mid加一还是减一,while到底用<=还是<; 常用使用场景:寻找一个数,寻找左侧边界,寻找右侧边界 0.二分查找框架 注意点: 1. 不要出现else,把所有的情况用else if写清楚 2. “...”标记的地方,是可能出现细…
2022/5/4 23:19:57 人评论 次浏览 -
AcWing 802.区间和
AcWing 802.区间和 题目描述 假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。 现在,我们首先进行 n次操作,每次操作将某一位置 x 上的数加 c。 接下来,进行 m次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] 之间的所有数的和。 输入格式 第一行包…
2022/5/4 23:16:13 人评论 次浏览 -
复习算法总结
一、二分法 找到数组中第一个数, 和最后一个数。 关键点: 找第一个数-> 那么小于target的都可以舍弃 , 找最后一个数, 大于target的都可以舍弃 当left = mid 时, 要加1, int mid = left + (right - left + 1)/2 ; private int findFirstPosition(int[] nums…
2022/5/4 14:12:57 人评论 次浏览 -
二分查找非递归Algorithm(java)
二分查找的适用条件 二分查找只适用于有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找 二分查找的运行时间为对数时间O(LONG2 N) 二分查找非递归的实现 /** * @param arr 待查找的数据 升序排列 * @param target 需要查找的数 * @return 返回对应下标,-…
2022/4/25 1:13:47 人评论 次浏览