ICode9

精准搜索请尝试: 精确搜索
  • 从零开始学数据结构和算法 (五) 分治法 (二分查找、快速排序、归并排序)2022-01-28 18:34:46

    概念 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 优点 查找速度快 缺点 待查表为有序表 算法思路 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如

  • 无列名注入_2 [GYCTF2020]Ezsqli 12022-01-28 02:34:03

    无列名注入_2 在之前,我们使用了select `1` from (select 1,2 union select * from tableX)a这样一个形式来进行无列名注入,原理可以看我之前写的(抄的)一篇https://www.cnblogs.com/AikN/p/15725756.html 在这个形式被过滤了以后,我们还可以使用另一种方式尝试注入。 基本原理 其实也

  • 插值查找法2022-01-27 22:03:32

    插值查找法又称为插补查找法,是二分查找法的改进版,按照数据位置的分布,利用公式预测数据所在的位置,再以二分法的方式渐渐逼近。使用插值查找法时,假设数据平均分布在数组中,而每一项数据的差距相当接近或有一定的距离比例。插值查找法的公式为: mid=low+((key-data[low])/(data[high]

  • 详解归并排序2022-01-27 17:01:20

    1.归并排序 归并排序使用了分治和递归的思想,将具有n的元素的无序序列划分为n个每个含有一个元素的序列,再将n个有序序列采用二路归并等合并方法进行合并排序成一个有序的序列。 2.归并实现步骤 2.1.划分划分左半部分后,合并排序左半部分         2.1.1递归划分左半部分 如图:

  • CF118E2022-01-26 22:03:08

    题意: 判断是否能把一个无向图的所有无向边改成有向边,使得改完后两两点可达,并给出方案。 思路: 可以糊出一个模糊的做法,就是先从图里深度优先遍历一条经过所有点且只经过一次的路径,然后就是有了一条链(请把它看作一个链,而不是生成树)。 那么剩下的边必然连到它的祖先或者直接儿子。 然

  • python实现ATR指标模型 量化策略 python 策略开发2022-01-25 22:35:35

    指标说明 ATR又称 Average true range平均真实波动范围,简称ATR指标,是由J.Welles Wilder 发明的,ATR指标主要是用来衡量市场波动的强烈度,即为了显示市场变化率的指标。 首先提出的,这一指标主要用来衡量价格的波动。因此,这一技术指标并不能直接反映价格走向及其趋势稳定性

  • [SDOI2018]战略游戏2022-01-25 22:32:07

    \(\text{Solution}\) 问题的转化,建成圆方树后,变为询问 \(S\) 在圆方树上对应的连通子图中的圆点个数减去 \(|S|\) 而根据 \(\text{SDOI2015 寻宝游戏}\) 里的一个重要结论 包含 \(S\) 的极小连通子图边权和的两倍等于将 \(S\) 里的点按 \(dfs\) 序排序后 \(dis(a_1,a_2)+dis(a_2,a

  • 【算法笔记】Tarjan 算法 · 下2022-01-24 14:33:27

    本文总计约 10000 字,阅读大约需要 40 分钟。 前言 上篇笔记的 Tarjan 算法笔记讲了求割点,割边等在无向图中的算法,本篇笔记将会介绍求强连通分量这个在有向图中的理论算法。 强连通分量这个算法大多数情况下在 OI 中不会直接考查,但是它的其它用途非常广泛:例如在部分 dp 题中,需要

  • Andrew Stankevich Contest 22 A. Maximal Flows Dimension2022-01-23 23:02:35

    题目链接 Andrew Stankevich Contest 22 A. Maximal Flows Dimension 题目大意 回顾网络流的定义:一张图的流函数 \(f:E\rightarrow \mathbb{R}\),是满足 容量限制、斜对称性、流量守恒性 的函数,即: \[f(u,v) \leq c(u,v)\\ f(u,v) = -f(v,u)\\ \forall x\in V-\{S,T\},\;\sum_{(u,x)

  • 程序设计与算法(二):3. 二分算法2022-01-21 21:34:33

    目录 例 查找p 例 查找lowerbound 例 二分法求方程的根  例 找一对数 例 农夫和奶牛 例子源于慕课课程:程序设计与算法二 二分查找:有序、时间复杂度是log(n) 例 查找p int BS(int a[], int size, int p) { int low = 0, high = size - 1; while (low <= high) { int mid

  • 「THOI」THOI Round1 赛后题解2022-01-21 19:00:40

    A. 出题 题目传送门 该题正解 dp,数据略水,暴力都过了。 完全背包问题,只不过要求刚好装满,所以 \(f\) 数组可以全部赋值为一个特殊的数,只有刚好装到这个容量时才能转移。 代码实现: #include <bits/stdc++.h> using namespace std; int f[4005]; int n,s[4]; int main(){ cin>>n>>s[

  • LeetCode-Java题解 367. Valid Perfect Square2022-01-20 23:04:04

    题目地址:367. Valid Perfect Square 解题思路:有了上一道题69. Sqrt(x)的洗礼,这道题我只能说,没有意思! 除了需要注意1这个特殊值,其他的基本和上一道题目如出一辙,甚至比上一题简单很多,直接二分查找,所以别多说,一把梭。 class Solution { public boolean isPerfectSquare(int num)

  • 圆方树&仙人掌学习笔记2022-01-19 17:03:30

    仙人掌 定义 任意一条边只会出现在一个环里面的无向图(不一定连通) (图源yyb's blog) 解决工具:(狭义)圆方树 定义 把原图分成两类点,一类是圆点,一类是方点。如果一条边在仙人掌中不属于任何一个环中,那么它直接圆方树中的两个圆点。对于仙人掌中的任意一个环,每个环上的点在圆方树上对应的

  • 系统开发视角下的诊断 ———— DTC(Low Byte)2022-01-19 12:32:34

    文章目录 介绍参数DTC Failure CategoryDTC Failure SubtypeDTC Failure Category = "0"DTC Failure Category = "1"DTC Failure Category = "2"DTC Failure Category = "3"DTC Failure Category = "4"DTC Failure Category = &quo

  • 树莓派激光发射器——superlaser2022-01-19 09:05:51

    【好玩】树莓派激光发射器 第一步:接线第二步:代码 第一步:接线 树莓派引脚激光传感器引脚GPIO11(物理编码)SIG(S)GNDGND(-)5VVcc(中间那个) 第二步:代码 本次的说明讲解融入代码中 import RPi.GPIO as GPIO import time laserpin = 11#定义引脚为pin11 GPIO.setmode(GPIO.BOARD

  • 74. 搜索二维矩阵2022-01-18 21:02:18

    题目 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:      ●  每行中的整数从左到右按升序排列。      ●  每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target

  • 最小的k个数2022-01-18 13:03:51

    输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 1.常规解法 class Solution { public int[] getLeastNumbers(int[] arr, int k) { Arrays.sort(arr); int len=arr.length; in

  • 【每日一题】【找到位置返回&升序数组中第K大就是n-K小】2022年1月17日-NC88 寻找第K大2022-01-17 10:34:59

    描述有一个整数数组,请你根据快速排序的思路,找出数组中第 k 大的数。 给定一个整数数组 a ,同时给定它的大小n和要找的 k ,请返回第 k 大的数(包括重复的元素,不用去重),保证答案存在。   方法:快速排序+找到位置就返回 import java.util.*; public class Solution { public in

  • 【每日一题】【快速排序过程、循环过程无=、递归参数】2022年1月16日-NC140 排序2022-01-16 16:04:03

    快速排序   对时间复杂度和空间复杂度有要求 方法1:快速排序-递归 import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 将给定数组排序 * @param arr int整型一维数组 待排序的数

  • acwing-787. 归并排序2022-01-16 13:02:30

    给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼10^9 范围内),表示整个数列。 输出格式 输出共一行,包含 n 个整数,表示排好序的数列。

  • acwing-785. 快速排序2022-01-16 12:02:59

    给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼10^9 范围内),表示整个数列。 输出格式 输出共一行,包含 n 个整数,表示排好序的数列。

  • 1008 数组元素循环右移问题 (20 分)2022-01-15 19:30:29

    整体思路: 整体大概分为三步,第一步将第二行数逆序,然后将逆序后的前M个数和后面所有的数逆序,即可得到输出样例!(数据结构中遇到过) 第一次仅仅得到了12分,有待请教解决   #include <iostream> using namespace std; void swap(int a[],int low,int high) { int temp; while(

  • acwing-2041. 干草堆2022-01-14 23:32:23

    贝茜对她最近在农场周围造成的一切恶作剧感到抱歉,她同意帮助农夫约翰把一批新到的干草捆堆起来。 开始时,共有 N 个空干草堆,编号 1∼N。 约翰给贝茜下达了 KK 个指令,每条指令的格式为 A B,这意味着贝茜要在 A..B 范围内的每个干草堆的顶部添加一个新的干草捆。 例如,如果贝茜收到指令

  • Arduino小车代码前后左右控制2022-01-14 21:34:09

    #include<Servo.h> //有以下几种运动状态 #define STOP 0 //暂停stop #define FORWARD 1 //前进 #define BACKWARD 2 //后退 #define TURNLEFT 3 //左转 #define TURNRIGHT 4 //右转 //需要用到的引脚 //定义电机的输入引脚分别为4,5,6,7,这些引脚是arduino开发板上的数字输入输

  • 数据结构-二分查找法2022-01-14 20:31:57

    public class SequenceSearch02 { public static void main(String[] args) { /* 请对一个有序数组进行二分查找 {1,8, 10, 89, 1000, 1234} , 输入一个数看看该数组是否存在此数,并且求出下标,如果没有就提示"没有这个数"。*/ /*思路分析: * 当

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有