- 博客(10)
- 收藏
- 关注
原创 从零开始的数据结构:李超线段树
在平面上加入一条线段。记第 i 条被插入的线段的标号为 ,该线段的两个端点分别为(x0,y0),(x1,y1)(x_0,y_0),(x_1,y_1)(x0,y0),(x1,y1) 。给定一个数 k ,询问与直线 x=k 相交的线段中,交点纵坐标最大的线段的编号(若有多条线段与查询直线的交点纵坐标都是最大的,则输出编号最小的线段)。特别地,若不存在线段与给定直线相交,输出 0;对于上面这个问题普通的线段树并不好解决,这时就需要李超线段树。李超线段树我们像线段树一样建立节点,每个节点维护一个.
2021-10-15 21:52:02
492
1
原创 2021CCPC网络选拔赛(重赛)补题
1005题意:输入n,m;接下来n个数,让我们从第一个数出发,一直循环走下去,每次加上这个位置的数。然后是m个询问,每次输入一个整数,问是否能走出这个数字,如果可以输出最小步数,否则输出-1。显然我们第一步要去求n个数的前缀和以及走完一圈的增值res(最后一个前缀和)ps:如果询问是0,直接输出0即可(要特判)。显然如果res==0的话很明显直接记每个前缀和的位置即可。然后再看res不为0的情况:我们发现如果能出现这个数字sss的话,∃i\exists i∃i 满足 sum[i]+K∗res=s
2021-10-11 22:41:21
254
1
原创 zjnu 组队罚坐赛补题 21-10-6~21-10-7
第一场 B题题意:给定一个n和n-1条边的信息,求每两个叶子节点之间距离的平方和。思路:树形dp;3个状态:sum1[i]表示以i为根的子树所有的叶子节点到该节点的距离sum2[i]表示以i为根的子树所有的叶子节点到该节点的距离平方之和siz[i]表示以i为根的子树所有叶子节点的个数假设u,v是我们要合并的两个子节点每次答案ans应该要加上∑1siz[u]∑1siz[v](ui+vi)2\sum_1^{siz[u]} \sum_1^{siz[v]}(u_i+v_i)^2∑1siz[u]∑
2021-10-07 22:05:00
158
2
原创 从零开始的数据结构:种类并查集
众所周知并查集可以表示一些东西是否在一个集合里。const int N = 2e6 + 10;int fa[N],n;void init(){for (int i = 1; i <= n; i++)fa[i] = i; }int find(int x) { return fa[x] == x ? x:fa[x] = find(fa[x]); }void merge(int a, int b) {if(find(a)!=find(b))fa[find(a)] = find(b); }上面就
2021-09-28 10:39:19
74
2
原创 网络流基础题
网络流24题题解(有些差不多的就不重复写了)数字梯形问题题目链接这道题的三个操作,感觉比较全面的包括了建图的想法,也算比较基础的网络流入门题。对理解网络流应该比较有帮助吧题目描述给定一个由 nnn 行数字组成的数字梯形如下图所示。梯形的第一行有 mmm 个数字。从梯形的顶部的 mmm 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形的顶至底的路径。分别遵守以下规则:1.从梯形的顶至底的 mmm 条路径互不相交;2.从梯形的顶至底的 mmm 条路径仅在数字结点处相交;3
2021-08-08 21:00:43
165
1
原创 数据结构基本概念和术语总结
目录基本概念算法和算法分析线性表基本概念数据(data)—能输入到计算机中并被计算机处理的符号的总称数据元素(data element)—数据的基本单位,也称节点(node)或记录(record)数据项(data item)—有独立含义的数据最小单位,也称域(field)数据对象(Data Object)—性质相同的数据元素的集合。数据结构(data structure)—相互之间存在一种或多种特定关系的数据元素的集合。(带有结构的数据元素的集合)(集合):数据元素间除“同属于一个集合”外,
2021-03-07 13:26:27
692
1
原创 数据结构笔记
线性表前面貌似没什么营养,直接去顺序表和链表就行(-_-||)emmmmm回想起短学期的恐惧线性表定义零个或多个数据元素的有限序列线性表有序序列,数据元素具有相同的特性,线性表可以有无性线性表特点1.有序性数据元素之间是(一对一)的关系2.有限性线性表的元素个数是有限的ps 零个数据元素线性表叫空表线性表存储结构有顺序结构和链式存储结构前者是 顺序表,后者是链表。1.顺序表这里看看就好了,主要还是链表部分吧。。。。(因为大部分我都是直接上模板的,没怎么看过,应该不难吧,如果
2021-02-15 15:25:31
390
原创 短学期实践
学生成绩管理系统现在用的结构体数组,(才不是链表改不来,到时候再看看吧=。=)菜单转跳的两个方式1 switch的while(1) { system("cls"); //清屏 printf(" 主菜单--********* \n"); printf("| 1.******** |\n"); printf("| 0.退出系统 |\n"); printf(" 请输入菜单编号:"); scanf("%d", &n); while(
2021-01-19 09:41:31
1116
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人