数据结构
夢懵緣遠
这个作者很懒,什么都没留下…
展开
-
浮点数二分-剪绳子
剪绳子有N根绳子,第i根绳子长度为Li,现在需要M根等长的绳子,你可以对N根绳子进行任意裁剪(不能拼接),请你帮忙计算出这M根绳子最长的长度是多少。输入格式第一行包含2个正整数N、M,表示原始绳子的数量和需求绳子的数量。第二行包含N个整数,其中第 i 个整数Li表示第 i 根绳子的长度。输出格式输出一个数字,表示裁剪后最长的长度,保留两位小数。数据范围1≤N,M≤100000,0<Li<109输入样例:3 43 5 4输出样例:2.50样例解释第一根和第三根分别裁原创 2021-01-16 14:30:14 · 385 阅读 · 0 评论 -
子矩阵的和 二维前缀和
输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1, y1, x2, y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。输入格式第一行包含三个整数n,m,q。接下来n行,每行包含m个整数,表示整数矩阵。接下来q行,每行包含四个整数x1, y1, x2, y2,表示一组询问。输出格式共q行,每行输出一个询问的结果。数据范围1≤n,m...原创 2019-12-15 20:25:03 · 170 阅读 · 0 评论 -
数的范围 二分
题目描述给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。如果数组中不存在该元素,则返回“-1 -1”。输入格式第一行包含整数n和q,表示数组长度和询问个数。第二行包含n个整数(均在1~1000010000范围内),表示完整数组。接下来q行,每行包含一个整数k,表示一个询问元素。输出格式共q行,每行包...原创 2019-12-15 19:33:44 · 224 阅读 · 0 评论 -
STL set的用法
set的重要作用就是去重,且时间复杂度很低;而且一旦进入set数据就会变为有序;1:定义一个set:set<int> myset;set<string> myset;2:各类接口: 1:插入数据:insert();myset.insert(int); //插入int类型的数据myset.insert(string);//插入string类型的数据...原创 2019-11-25 15:39:28 · 145 阅读 · 0 评论 -
C++文件读入读出和随机数
#include <iostream>#include <time.h>#include <stdlib.h> //随机数用到该头文件 using namespace std;int main(){ srand(time(NULL));// freopen("test1.txt","r",stdin);//文件读入 freopen("tes...原创 2019-11-16 20:57:53 · 179 阅读 · 0 评论 -
并查集
**并查集**在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集 (Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union find algorithm)定义了两个用于此数据结构的操作:①初始化:将每个节点的父节点(根节点)都设为自身;②Find:查询该节点的根节点,循环或递归直到某个节点的父节点自身;③uni...原创 2019-11-13 13:56:10 · 113 阅读 · 1 评论 -
树状数组_1
C[1]=A[1];C[2]=A[1]+A[2];C[3]=A[3];C[4]=A[1]+A[2]+A[3]+A[4];C[5]=A[5];C[6]=A[5]+A[6];C[7]=A[7];C[8]=A[1]+A[2]+A[3]+A[4]+A[5]+A[6]+A[7]+A[8];有如下两公式:1:C[i]=A[i-temp+1]+A[i-temp+2]+……A[i];其中tem...原创 2019-10-11 10:41:57 · 99 阅读 · 0 评论 -
前缀差分
有前缀数组q[N],差分数组d[N];有原数组a[N];若有操作对a数组的i位到j位加上某个数x;求之后某个位置的某个数,和i到j位置的和;此时用到差分数组(将原数组后面一个数减去前一个数得到)如a[N]:1 3 5 9 , d[N]=1 2 2 4;要在第1位到第4位同时加2;做4次加法(O(n))是 3 5 7 11而在数组d上操作:只需改动两个位置第1位,和第5位;即...原创 2019-10-11 11:37:27 · 210 阅读 · 0 评论