自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 024.02.04char数组(字符串)入门

【代码】024.02.04char数组(字符串)入门。

2024-02-04 16:11:59 408

原创 2024.02.04二维前缀和差分

(消除多了一块,要剪掉)外加P8218 P3406。

2024-02-04 15:52:49 898

原创 2024.02.03动态规划基础之暴力DP

由于动态规划并不是某种具体的算法,而是一种解决特定问题的方法,因此它会出现在各式各样的数据结构中,与之相关的题目种类也更为繁杂。了解动态规划(Dynamic Programming, DP)及其解决的问题、根据其设计的算法及优化。动态规划是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划与其它类型的递推的确有很多相似之处,学习时可以注意它们之间的异同。二分:构造上升目标数组:大数尾部添加,否则局部替换 时间效率。P1091 [NOIP2004 提高组] 合唱队形。

2024-02-04 15:14:30 900

原创 2024.02.03链表

链表是一种用于存储数据的线性数据结构,通过如链条一般的指针来连接元素。它的特点是插入与删除数据十分方便,但寻找与读取数据的表现欠佳。链表和数组都可用于存储数据。与链表不同,数组将所有元素按次序依次存储。但也因为这样,寻找、读取数据的效率不如数组高,在随机访问数据中的操作次数是。插入:先新节点的next赋值为p的next,后p的next赋值为新节点。链表因其链状的结构,能方便地删除、插入数据,操作次数是。数组可以方便地寻找并读取数据,在随机访问中操作次数是。删除:p的next赋值为p的next的next。

2024-02-04 10:28:23 897

原创 FFT NTT模板

fft、ntt

2022-11-22 22:20:55 138 1

原创 求最小交换次数

排序的最小交换次数

2022-11-19 15:27:39 355

原创 7-3 哈夫曼树与哈夫曼编码

为使不等长编码为前缀编码(即要求一个字符的编码不能是另一个字符编码的前缀),可用字符集中的每个字符作为叶子结点生成一棵编码二叉树,为了获得传送报文的最短长度,可将每个字符的出现频率作为字符结点的权值赋予该结点上,显然字使用频率越小权值越小,权值越小叶子就越靠下,于是频率小编码长,频率高编码短,这样就保证了此树的最小带权路径长度效果上就是传送报文的最短长度。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。记录着本题的符号表。

2022-11-10 18:35:39 3318 1

原创 浅挖路由跟踪工具的原理

tracert and traceroute

2022-05-25 22:34:02 123

原创 PPP与PPPoE的学习

PPP与PPPoE

2022-05-03 01:14:35 2328

原创 codeforces 1625.C. Road Optimization DP

https://codeforces.com/contest/1625/problem/CC. Road Optimizationtime limit per test3 secondsmemory limit per test128 megabytesinputstandard inputoutputstandard outputThe Government of Mars is not only interested in optimizing space flights, but also

2022-01-15 21:28:28 540

原创 ST表模板

#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 100;int f[N][100];int mn[N];int n, m;int rmq(int l, int r){ int k = mn[r - l + 1]; return max(f[l][k], f[r - (1 << k) + 1][k]);}int main(){ scanf("%d%d", &amp

2022-01-15 21:02:40 236

原创 洛谷 P3369 【模板】普通平衡树--平板电视stl大法

题目描述您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:插入 xx 数删除 xx 数(若有多个相同的数,因只删除一个)查询 xx 数的排名(排名定义为比当前数小的数的个数 +1+1 )查询排名为 xx 的数求 xx 的前驱(前驱定义为小于 xx,且最大的数)求 xx 的后继(后继定义为大于 xx,且最小的数)输入格式第一行为 nn,表示操作的个数,下面 nn 行每行有两个数 \text{opt}opt 和 xx,\text{opt}opt 表示操作的序号( 1

2021-12-14 18:20:06 823 1

原创 biweekly_contest_67_leetcode2102. 序列顺序查询

一个观光景点由它的名字 name 和景点评分 score 组成,其中 name 是所有观光景点中 唯一 的字符串,score 是一个整数。景点按照最好到最坏排序。景点评分 越高 ,这个景点越好。如果有两个景点的评分一样,那么 字典序较小 的景点更好。你需要搭建一个系统,查询景点的排名。初始时系统里没有任何景点。这个系统支持:添加 景点,每次添加 一个 景点。查询 已经添加景点中第 i 好 的景点,其中 i 是系统目前位置查询的次数(包括当前这一次)。比方说,如果系统正在进行第 4 次查询,那么需要返

2021-12-13 20:46:24 369

原创 weekly_contest_271_leetcode2106. 摘水果

在一个无限的 x 坐标轴上,有许多水果分布在其中某些位置。给你一个二维整数数组 fruits ,其中 fruits[i] = [positioni, amounti] 表示共有 amounti 个水果放置在 positioni 上。fruits 已经按 positioni 升序排列 ,每个 positioni 互不相同 。另给你两个整数 startPos 和 k 。最初,你位于 startPos 。从任何位置,你可以选择 向左或者向右 走。在 x 轴上每移动 一个单位 ,就记作 一步 。你总共可以走 最多

2021-12-13 20:35:52 390

原创 weekly_contest_271_leetcode2104. 子数组范围和

给你一个整数数组 nums 。nums 中,子数组的 范围 是子数组中最大元素和最小元素的差值。返回 nums 中 所有 子数组范围的 和 。子数组是数组中一个连续 非空 的元素序列。示例 1:输入:nums = [1,2,3]输出:4解释:nums 的 6 个子数组如下所示:[1],范围 = 最大 - 最小 = 1 - 1 = 0[2],范围 = 2 - 2 = 0[3],范围 = 3 - 3 = 0[1,2],范围 = 2 - 1 = 1[2,3],范围 = 3 - 2 = 1[

2021-12-13 19:42:14 908

原创 特殊拓扑排序

字典序最小:正向建图,小根堆取数.优先考虑编号小者:反向建图,大根堆取数,反向输出.

2021-12-09 21:03:23 243

原创 2021_CCPC_harbin_I. Power and Zero

传送门:https://codeforces.com/gym/103447/problem/I二分+二进制拆分题目大意:给定一个数组,每次操作可以选择任意个元素(可重复选择),对这多个元素分别 -1,-2,-4,-8…。求最少操作多少次使得数组变为全0数组。I. Power and Zerotime limit per test1 secondmemory limit per test512 megabytesinputstandard inputoutputstandard output

2021-12-02 20:52:17 1418

原创 可持久化线段树--主席树

洛谷P3834题目背景这是个非常经典的可持久化权值线段树入门题——静态区间第 kk 小。数据已经过加强,请使用可持久化权值线段树。同时请注意常数优化。题目描述如题,给定 nn 个整数构成的序列 aa,将对于指定的闭区间 [l, r][l,r] 查询其区间内的第 kk 小值。输入格式第一行包含两个整数,分别表示序列的长度 nn 和查询的个数 mm。第二行包含 nn 个整数,第 ii 个整数表示序列的第 ii 个元素 a_iai​。接下来 mm 行每行包含三个整数 l, r, kl,r,

2021-11-17 11:25:08 335

原创 7-57 表达式树括号 (10 分)

7-57 表达式树括号 (10 分)请编写程序将表达式树按中缀表达式输出,并填加必要的括号,要求括号不能冗余,即保证正确运算次序所需的最少括号。如a∗(b+c)和a+(b−c)中的括号是必要的,而a+(b∗c) 的括号则是冗余的。假定表达式树中的运算均为二元运算,只涉及加、减、乘、除运算。输入格式:输入为一行字符串,表示带空指针信息的表达式树先根序列,空指针信息用#表示,操作数为a-z的小写字母,运算符为+、-、*、/。输出格式:输出为一行字符串,表示填加必要括号后的中缀表达式。输入样例1:a

2021-11-17 10:35:33 578 1

转载 3-1 括号匹配 (20 分)

数据结构实验_20软件03班实验3-1 括号匹配 (20 分)检查一段C语言代码的小括号( )、 中括号 [ ] 和大括号{ } 是否匹配。输入格式:在一行中输入一段C语言代码,长度不超过1000个字符(行末以换行符结束)。输出格式:第一行输出左括号的数量和右括号的数量,中间以一个空格间隔。若括号是匹配的,在第二行打印YES,否则打印NO。输入样例1:for(int i=0; i<v; i++){ visited[i] = 0; for(int j=0; j<v; j++) s

2021-11-15 11:48:48 1306

原创 3-2 层序遍历二叉链表 (25 分)

数据结构实验_20软件03班实验3-1 括号匹配 (20 分)检查一段C语言代码的小括号( )、 中括号 [ ] 和大括号{ } 是否匹配。输入格式:在一行中输入一段C语言代码,长度不超过1000个字符(行末以换行符结束)。输出格式:第一行输出左括号的数量和右括号的数量,中间以一个空格间隔。若括号是匹配的,在第二行打印YES,否则打印NO。输入样例1:for(int i=0; i<v; i++){ visited[i] = 0; for(int j=0; j<v; j++) s

2021-11-15 11:43:57 1872

原创 欧拉筛与素数判定

欧拉筛模板for(int i=2;i<=n;i++){ if(!vis[i]){ prime[++tot]=i; } for(int j=1;j<=tot && prime[j]*i<=n;j++){ vis[prime[j]*i]=1; if(i%prime[j]==0) break; }}

2021-09-12 09:52:18 84

原创 二分模板(整数、浮点)

划分成[l, mid]和[mid + 1, r]int bsearch_1(int l, int r){ while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; else l = mid + 1; } return l;}划分成[l, mid - 1]和[mid, r]时int bsearch_2(int l, int r){

2021-07-16 22:31:51 95

原创 并查集(加入、查找、删除)

并查集题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入格式第一行包含两个整数 N,M ,表示共有 N 个元素和 M 个操作。接下来 M 行,每行包含三个整数Z i ,X i ,Y i​ 。当Z i =1 时,将 X i​ 与Y i 所在的集合合并。当 Z i =2 时,输出 X i​ 与 Y i​ 是否在同一集合内,是的输出 Y 否则输出 N。输出格式对于每一个Z i =2 的操作,都有一行输出,每行包含一个大写字母,为 Y 或者 N 。输入输出样例输入 #1复制4

2021-06-18 20:46:48 389

原创 差分 算法

差分----------------来源acwing输入一个长度为 n 的整数序列。接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数序列。接下来 m 行,每行包含三个整数 l,r,c,表示一个操作。输出格式共一行,包含 n 个整数,表示最终序列。数据范围1≤n,m≤100000,1≤l≤r≤n,−1000≤c≤1000,

2021-06-17 23:41:37 109

原创 快速幂(一般数字快速幂、矩阵快速幂)

矩阵快速幂--------------题目来源洛谷题目背景矩阵快速幂题目描述给定 n×n 的矩阵 A,求 A^k 。输入格式第一行两个整数 n,k 接下来 n 行,每行 n 个整数,第 i行的第 j的数表示 A i,j 。输出格式输出 A^k共 n 行,每行 n 个数,第 i行第 j个数表示 Ai,j,每个元素对 10^9+7取模。输入输出样例输入 #1复制2 11 11 1输出 #1复制1 11 1说明/提示【数据范围】对于 100% 的数据:1≤n≤100,0≤

2021-06-17 21:25:07 78

原创 最长上升子序列(线性DP)

最长上升子序列------来源acwing给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数 N。第二行包含 N 个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤1000,−10^9≤数列中的数≤10 ^ 9输入样例:73 1 2 1 8 5 6输出样例:4代码#include<bits/stdc++.h>using namespace std;const int N = 1e3+10;

2021-06-08 20:30:16 97

原创 最小路径重复点覆盖(沃舍尔算法,匈牙利算法)

捉迷藏-------来源acwingVani 和 cl2 在一片树林里捉迷藏。这片树林里有 N 座房子,M 条有向道路,组成了一张有向无环图。树林里的树非常茂密,足以遮挡视线,但是沿着道路望去,却是视野开阔。如果从房子 A 沿着路走下去能够到达 B,那么在 A 和 B 里的人是能够相互望见的。现在 cl2 要在这 N 座房子里选择 K 座作为藏身点,同时 Vani 也专挑 cl2 作为藏身点的房子进去寻找,为了避免被 Vani 看见,cl2 要求这 K 个藏身点的任意两个之间都没有路径相连。为

2021-06-08 13:13:20 458

原创 背包问题求方案数

背包问题求方案数-------来源acwing有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出 最优选法的方案数。注意答案可能很大,请输出答案模 109+7 的结果。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示

2021-06-08 01:16:24 84

原创 匈牙利算法、二分图的最大匹配数

过山车来源--------DDURPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐。但是,每个女孩都有各自的想法,举个例子把,Rabbit只愿意和XHD或PQK做partner,Grass只愿意和linle或LL做partner,PrincessSnow愿意和水域浪子或伪酷儿做partner。考虑到经费问题,boss刘决定只让找到partner的人去坐过山车,其他的人,嘿

2021-06-07 16:44:50 181

原创 完全背包问题

完全背包问题-------来源acwing有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 种物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,

2021-06-07 16:20:55 50

原创 01背包问题

问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000输入样例4 51 2

2021-06-07 16:15:16 75

TeamViewer_Setup_x64.exe

TeamViewer_Setup_x64.exe

2022-08-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除