- 博客(323)
- 收藏
- 关注
原创 HashMap源码解析
HashMap源码解析: hash函数 JDK1.8hash函数: static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);//进行扰动 } JDK1.7hash函数 final int hash(int h) { h ^= k.hashCode();
2020-09-01 16:18:08
338
原创 MySQL学习笔记
事务 什么是事务 事务就是将一组SQL语句放在同一批次内去执行 如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行 MySQL事务处理只支持InnoDB和BDB数据表类型 原子性(Atomic) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生 一致性(Consist) 事务前后数据的完整性必须保持一致 隔离性(Isolated) 事务的隔离性是指多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰 多个并发事务之间要相互隔离 持久性(
2020-08-25 21:43:20
320
转载 Redis底层数据结构
文章目录 一、简单动态字符串 1、SDS的结构定义 2、SDS和c字符串的区别 1)SDS获取字符串长度复杂度为常数 2)SDS杜绝了缓冲区溢出 3)减少内存重分配次数 4)二进制安全 5)SDS兼容部分c字符串函数 二、双向链表 1、双向链表结构: 2、链表节点结构: 3、Redis的链表实现的特性: 三、字典 1、字典的实现结构 1)哈希表节点 2)哈希表 3)字典 2、哈希算法 MurmurHash2算法
2020-08-20 21:13:42
394
转载 DNS协议
DNS协议 我们之前已经了解过ARP协议。如果说ARP协议是用来将IP地址转换为MAC地址,那么DNS协议则是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。 我们都知道,TCP/IP中使用的是IP地址和端口号来确定网络上某一台主机上的某一个程序,不免有人有疑问,为什么不用域名来直接进行通信呢? 1. 因为IP地址是固定长度的,IPv4是32位,IPv6是128位,而域名是变长的,不便于计算机处理。 2. IP地址对于用户来说不方便记忆,但域名便于用户使用,例如www.baidu.com
2020-08-18 19:00:19
217
原创 MySQL索引
索引概念:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息 索引的作用: 提高查询速度 确保数据的唯一性 可以加速表和表之间的连接,实现表与表之间的参照完整性 使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间 全文检索字段进行搜索优化 索引分类: 主键索引(Primary Key) 唯一索引(Unique):聚集索引,也叫聚簇索引 常规索引(Index) 全文索引(FullText) 主键索引: 主键:某一个属性组能唯一标识一条记录 特点:
2020-08-17 20:28:30
164
原创 计算机网络
计算机网络 应用层 典型设备:应用程序 DNS协议:域名服务协议,在udp协议之上,端口号53,万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串 FTP协议:文件传输协议,端口号21,减少或消除不同操作系统下处理文件的不兼容性 HTTP协议:超文本传输协议端口号 80,面向事务的应用层协议 SMTP协议 :简单邮件传输协议端口号25,用于发送邮件。 SNMP协议:简单网络管理协议 .
2020-07-21 18:23:34
612
原创 TCP和UDP
TCP和UDP的比较 TCP提供可靠的服务,TCP连接传送的数据,无差错,不丢失,不重复,且按顺序到达,UDP尽量交付,即不保证可靠交付 TCP面向字节流,UDP面向报文 TCP只能1对1,UDP支持1对1,1对多,多对1 TCP首部开销20字节,UDP8字节,UDP首部开销小 UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速度降低(一把用作实时应用,IP电话,实时视频等) UDP如何实现可靠性传输 传输层无法保证数据的可靠性,只能通过应用层来实现,实现的方式可以参照tcp可靠性传输的方式,只
2020-07-11 02:34:14
367
原创 Redis学习笔记2
事务 Redis事务本质:一组命令的集合!一个事务中的所有命令都是被序列化的,在事务执行过程中,会按照顺序执行 一次性,顺序性,排它性,执行一些命令 Redis单条命令式保存原子性的,但是事务不保证原子性 所有的命令在事务中,并没有直接执行,只有发起执行命令的时候才会执行!Exec Redis事务没有隔离级别的概念 redis的事务 开启事务(multi) 命令入队() 执行事务() 测试: 127.0.0.1:6379> multi //开启事务 OK 127.0.0.1:6
2020-07-06 21:16:52
528
原创 Redis学习1
1.nosql讲解 2.阿里巴巴架构演进 3.nosql数据模型 4.nosql四大分类 5.cap 6.base 7.redis入门 8.redis安装(window&&linux服务器) 五大基本数据类型 String,List,Set,Hash,Zset 三种特殊数据类型 geo hyperloglog bitmap redis配置详解 redis持久化 rdb aof redis事务操作 redis实现订阅发布 redis哨兵模式 缓存穿透及
2020-07-06 20:54:12
495
原创 RestFul风格
链接:https://www.nowcoder.com/questionTerminal/1bf5b56583f747e98741e37652e5a63e?toCommentId=1451625 来源:牛客网 一闪一闪亮晶晶,满天都是小星星,牛牛晚上闲来无聊,便躺在床上数星星。 牛牛把星星图看成一个平面,左上角为原点(坐标为(1, 1))。现在有n颗星星,他给每颗星星都标上坐标(xi,yi...
2020-06-29 18:05:01
150
原创 JVM学习笔记
JVM探究 1.JVM的位置 2.JVM的体系结构 3.类加载器 4.双亲委派机制 5.沙箱安全机制 6.Native 7.PC寄存器 8.方法区 9.栈 10.三种JVM 11.堆 12.新生区,老年区 13.永久区 14.堆内存调优 15.GC(垃圾回收机制)[常用算法] 16.JMM 17.总结 JVM体系结构 类加载器 作用:加载Class文件~ new Student(); 1.虚拟机自带的加载器 2.启动类(根)加载器 3.扩展类加.
2020-06-28 01:09:03
356
原创 使用@WebServlet注释
在servlet3.0以后,我们可以不用再web.xml里面配置servlet,只需要加上@WebServlet注解就可以修改该servlet的属性了 相当于一个小插件,包含的属性如下: 例子: @WebServlet("/Myservlet")//使用@WebServlet注释,不需要在web.xml里面配置servlet了,默认是value public class MyServl...
2019-11-27 10:02:01
936
原创 注解与反射
Person类: public class Person { public String name; public Integer age; private String gender; public Person(){ super(); } public Person(String name, Integer age) { ...
2019-11-25 22:46:35
202
原创 进制转换
比赛的时候想用c写,写了好久放弃,用java秒了 代码: #include <bits/stdc++.h> using namespace std; const int maxn = 1100; #define fir(a,b,c) for (int a=b;a<=c;a++) int t[maxn],A[maxn],n,m,i,len,k; char str1[maxn]...
2019-10-29 23:03:26
276
原创 宁夏f题
宁夏区域赛f题 不会插入公式!! 求 sum(a=2->n)sum(b=a->n)a*log a(b),结果对998244353取模 n的范围:n<=1e12 loga (b)向下取整。 解析: n的范围非常大,但如果a>sqrt(n),呢么loga(b)只为1. 所以我们预处理sqrt(n)产生的影响 对于(sqrt(n)+1,n),我们另外直接计算 ...
2019-10-29 22:49:43
233
原创 Power Products
链接:https://codeforces.com/contest/1247/problem/D 题意: 给定n个数组,a[i],求其中有多少个二元组(i,j),i!=j,a[i]*a[j]=x^k,x可以为任意数 解析: 如果a[i]*a[j]==x^k,呢么a[i]*a[j]的素因子和x的素因子相同,且a[i]*a[j]的素因子的幂次全部为k的倍数 我们把a[i]素因子分解,如果一个...
2019-10-27 23:38:23
311
原创 有向图的连通问题
有向图的强连通分量: SSC:给定一个有向图,若图中任意两个点星x,y,存在x->y,且存在y->x,呢么这个图就是强连通分量图. tarjan求强连通分量: 时间戳:dfn[i],表示搜索的时候首次搜索到i位置的顺序 追溯值:low[i],i的所以孩子存在一条有向边指向i,连接i 1.当结点首次被访问,x入栈,初始化low[x]=dfn[x] 2.(1)扫描从x出发的所以...
2019-10-03 21:23:22
1662
原创 后缀数组&&后缀自动机题集
后缀数组: hdu-6704:https://vjudge.net/problem/HDU-6704 题意: 求(l,r)区间子串在母串中第k次出现的位置 解析: 一个子串必定是某个后缀的前缀 排序相邻的后缀他们的前缀一定最相似 => 一种子串必定是一些排序相邻的后缀的公共前缀 用后缀数组得到sa,height,rk等. 对于求子串(1,3)的第k个...
2019-09-19 18:29:38
293
原创 2019徐州网络赛
链接:https://www.jisuanke.com/contest/3005?view=challenges A. Who is better? 拓展欧几里得+斐波那契博弈 #include<algorithm> #include<iostream> #include<cstdio> #define ll long long using namesp...
2019-09-07 20:52:04
291
原创 构造题
http://codeforces.com/contest/1208/problem/C 题意: 构造一个矩阵,矩阵的每列和每行的异或和相同 解析: n=4: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 每行相对前一行,每个数+4,结果不变 没列相对前一列,每个数+1,结果不变 构造的矩阵是若干的4*4的矩阵合并结果 ac: #include&...
2019-08-26 16:07:48
671
原创 数论题集
链接:https://ac.nowcoder.com/acm/contest/903/B 来源:牛客网 解析: 一开始想用逆元,但发现q-1不一定和mod互质,所以不能用直接逆元 ac: #include<bits/stdc++.h> #define ll long long using namespace std; ll n,q,p; ll mult(ll a,ll b,...
2019-08-19 21:14:26
527
原创 最小环
无向图最小环: http://acm.hdu.edu.cn/showproblem.php?pid=1599 ac: #include<bits/stdc++.h> #define ll long long #define MAXN 1005 using namespace std; ll dp[MAXN][MAXN]; ll dis[MAXN][MAXN]; /* 无向图的...
2019-08-19 14:35:06
583
原创 概率
条件概率:P(B|A) = P(AB) / P(A) 为事件A发生条件下,事件B发生的条 件概率 全概率公式: 概率期望 https://blog.youkuaiyun.com/consciousman/article/details/73730834 概率DP https://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html 概...
2019-08-12 11:20:11
371
原创 概率期望
数学期望 E(x)=Σ每一种状态*对应的概率 状态很多,有时候不能完全枚举. 大多数题都是找公式,规律,动态规划计算,数学期望的dp一般要逆推,处理好边界 一般的dp是到dp[x]状态有多少,答案为dp[n] 而数学期望的dp[x]已经在状态x,距离n还差多少,答案为dp[0]. 学习:https://www.cnblogs.com/kuangbin/archive/2012/10/02/...
2019-08-05 20:56:52
318
原创 树形dp题集
Binary Apple Tree 题意: 树枝上间连接着一些苹果,给定留下m根树枝,问最后剩下的最多苹果是多少 解析: 树上背包,要求一定要选1,选择的物品要连通 把树枝上的苹果赋到子节点上. 先求子树最大点数,然后遍历求值,要从大到小背包求结果 dp[u][j]代表以u为根结点,选取j个子节点的树的权值和. dp[u][j]=max(dp[u][j],dp[u][j-k]+dp[v...
2019-07-29 10:27:18
338
原创 篮球校赛(状压dp||贪心+深搜||费用流)
链接:https://cometoj.com/contest/59/problem/G?problem_id=2697 教练my手下有n名队员,现在他要挑选5人组成一个篮球队来参赛。众所周知,一个篮球队伍有五个不同的位置(控球后卫,得分后卫,小前锋,大前锋,中锋),现在教练my给出每名队员在每个位置的能力。 注:如果一个队员作为控球后卫出战,则他只能发挥他的控球后卫的能力值。(其他位置...
2019-07-29 03:51:09
282
原创 树形dp学习
树的重心 树的直径 树的最大独立集 E. Tree Painting(树形dp换根) 1:给出一棵树 每个节点有权值 要求父节点和子节点不能同时取 求能够取得的最大值 (hdu1520) 2:给出一棵树,求离每个节点最远的点的距离(hdu2196) 3:1>在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中允许攻克M个城堡并获得里面的宝物。但由于 ...
2019-07-28 14:49:10
210
原创 F Planting Trees(单调队列,尺取)
Planting Trees 题意: 给一个矩阵,求一个面积最大的子矩阵,该子矩阵内部任意元素之差小于等于k 求有极差限制的最大面积子矩阵 解析: 考虑n^3的算法 遍历上边,遍历下边 遍历右边,维护最大区间范围 我们在这个范围存在一个单调性,如果l1>l2,(l2,r)不行,呢么(l1,r)肯定不行 所以我们用两个个单调队列维护区间最大和最小值 我们不断入队,如果(区间...
2019-07-27 11:16:59
231
原创 单调队列
单调队列 Sliding Window 题意: Window position Minimum value Maximum value [13-1]-35367 -1 3 1[3-1-3]5367 -3 3 13[-1-35]367 -3 5 ...
2019-07-25 20:54:25
278
原创 筛法例题
https://vjudge.net/problem/HDU-2136 题意: 给定一个n,求n的最大素因子是第几个素数 直接用素因子筛 ac: #include <iostream> #include <cstdio> using namespace std; #define MAXN 1000000+5 int a[MAXN]; int main() { ...
2019-07-24 11:53:18
205
原创 最大团&最大独立集
给定无向图G=(V,E),其中V是非空集合,称为顶点集;E是V中元素构成的无序二元组的集合,称为边集,无向图中的边均是顶点的无序对,无序对常用圆括号“( )”表示。如果UV,且对任意两个顶点u,v∈U有(u,v)∈E,则称U是G的完全子图。G的完全子图U是G的团。G的最大团是指G的最大完全子图 最大独立集:一个图中最大的互相没有边相连的点集 结论:原图的最大独立集等于补图的最大团(补图:图...
2019-07-23 19:52:35
1867
原创 Vus the Cossack and Strings(位运算)
Vus the Cossack and Strings 题意: 给定两个串a,b 求a中所以子串和b匹配数位偶的情况个数 解析: 这题只需要判断是否为偶就可以,不需要求出多少个匹配 用异或前缀和,可以直接求出最前面一段 然后ans^(a[i-len_b])可以消掉最前面呢个,再^a[i],即又加入一个元素,完成移动操作 ans^a[i-len_b]^a[i],即完成一次移动,判断a...
2019-07-20 21:34:49
286
原创 E. Tree Painting(树形dp换根)
题意: 给定一棵树,树上每个节点都是白色. 操作:可以选择一个节点涂黑,然后加上它的子节点的数目的值(包括自身) 直到涂满整棵树,求能获得的最大值 解析: 树形dp换根,两个dfs 第一个dfs求各节点的子节点数目,第二个dfs换根,每次换相邻节点的为根.siz(v)是为根的节点子节点数,n-siz(v)是是v->u方向的子节点数,即siz(u) sum(v)=sum(u)...
2019-07-19 20:33:32
510
原创 ABBA
链接:https://ac.nowcoder.com/acm/contest/881/E 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 Bobo has a string of length 2(n + m) which consists of characters ...
2019-07-19 10:19:54
609
原创 凸包
模板: #include<bits/stdc++.h> #define inf 1000000000 #define ll long long using namespace std; int n,top; double ans; struct node { int x,y; }p[5005],s[5005]; node operator-(node a,node b)...
2019-07-18 21:23:51
143
原创 最短路题集
链接:https://ac.nowcoder.com/acm/contest/949/J 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 小雨所在的城市一共有 mm 条地铁线,分别标号为 1 号线,2 号线,……,m 号线。整个城市一共有 nn 个车站,编号为 1∼n1...
2019-07-17 17:53:52
421
原创 C. Flag(简单dp)
C - Flag 题意: 给定1片高为n,宽为m的矩形,每个格由一种颜色构成. 在矩形中最多可以找到的旗子数目. 旗子:由三种颜色构成,且三种颜色宽度相同,每个颜色横方向颜色全相同 解析: 预处理每个点下方相同颜色最大,右边相同颜色最大 然后遍历每个点,对于同一点,如果呢里有棋子,呢么它的旗子高度是确定的,高度等于该点down[i][j]*3 有三个要求满足,才能有1面棋子: 1...
2019-07-12 15:59:49
211
原创 序列自动机
序列自动机: scanf("%s",pp+1); for(int i=n;i>=1;i--){ for(int j=0;j<26;j++){ nt[i-1][j]=nt[i][j]; } nt[i-1][pp[i]-'a']=i; } int st=0;//检索序列从0开始 https://nanti.jisuanke.com/t/41...
2019-07-11 18:29:16
229
原创 Two Pizzas(状压压缩,贪心)
F - Two Pizzas 题意: 披萨只有9种部位 有n个人,他们每个人需要一些部位,如果他所需要的部位都有,呢么他就满足 有m个披萨,每种披萨有若干部位,每种披萨有一定的价钱 只能购买2个披萨,在满足最多人满足的情况下,选择花费最小的两个披萨 解析: 贪心+二进制优化,处理的细节较多 一共9个部位,可以用二进制压缩,披萨最多512种 输出的结果可能是两个不同类型的披萨,也可...
2019-07-11 16:40:51
470
原创 Max Power(特殊背包)
链接:https://ac.nowcoder.com/acm/contest/221/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 小卤蛋刚把dnf的技能点重新洗了一遍,现在他要重新加点,假设他的技能树一共有n层,第i层有n-i+1个 技能,每个技能只能够学习...
2019-07-10 23:49:30
312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅