自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(901)
  • 资源 (1)
  • 收藏
  • 关注

原创 换根dp详解-------------------------思维

思路:首先这是个在树上用的东西,一般就是不告诉你哪个点作为根,而你就需要求出所有点作为根时的答案,然后才能得到最终的答案。思路也不是什么很神奇的东西:就是一开始先固定一个点作为根,然后 dp 一次求出解,然后利用这个解再做一次 dp——这次 dp我们称为换根,这次 dp 求出其他点作为根时的解。举例子: (此例子将会画图分析换根过程)题意:求1~n节点分别为根的最小深度和是多少解析:#include <bits/stdc++.h>using namespace std;

2020-08-07 12:16:34 1195

原创 互联网大厂Java求职者面试实录——技术深度挑战与代码实战演练

使用AtomicInteger在Java中实现线程安全的计数。幂等性设计防止消费重复,保证数据准确。这套方案体现了互联网大厂对系统高性能、高可靠和可扩展的技术需求,同时结合实际编码案例帮助求职者深入理解和掌握关键技术点。以上内容不仅模拟了一次真实严肃的技术面试,也辅以幽默互动,帮助Java开发者从业务和技术层面系统学习现代互联网核心技术栈。

2025-07-30 00:09:48 238

原创 互联网大厂Java开发面试实战演练:技术深度与业务场景的完美结合

随着互联网技术的迅猛发展,Java依然是大厂招聘的主力语言。本文通过一个虚构的互联网大厂Java开发岗位面试故事,结合实际业务场景,带你深刻理解核心技术点及其应用。面试以严肃的面试官与搞笑的水货程序员谢飞机之间的对话展开,涵盖Java核心技术、框架、微服务、数据库操作及安全等多个层面。文末附带详细答案解析,助力Java小白快速成长。

2025-07-29 23:03:38 589

原创 互联网大厂Java面试场景:从Spring Boot到微服务的技术深度探讨

在一个知名互联网公司的总部面试室,严肃的面试官坐在桌子另一端,对面坐着的是我们的主角——搞笑的“水货程序员”谢飞机。他满脸笑容,却掩盖不住心底的紧张。

2025-07-26 12:00:30 268

原创 大厂面试风云:谢飞机的奇妙面试旅程

SpringBoot通过自动配置(Auto-Configuration)大大简化了Spring应用的配置,它可以根据类路径中的类、定义的bean和各种属性设置,自动配置Spring应用。ArrayList和LinkedList都实现了List接口,ArrayList是基于动态数组实现的,适合随机访问,LinkedList基于双向链表实现,适合频繁插入和删除操作。MyBatis是一个持久层框架,通过XML文件或注解将Java对象映射到数据库的SQL语句中,支持动态SQL和缓存。

2025-07-24 20:12:33 391

原创 互联网大厂Java求职者面试实录:谢飞机的搞笑应答

提供了多种并发工具类,如CountDownLatch、CyclicBarrier、Semaphore等,用于线程间的协调和通信。:JVM啊,就是Java的发动机,内存嘛,分好几块,堆啊栈啊什么的。:HashMap是单线程的,ConcurrentHashMap是多线程的,前者快但不安全,后者慢但安全。:多线程是一种允许多个线程并发执行的编程能力,主要用于提高程序的运行效率和资源利用率。:单例模式是一种常用的设计模式,确保一个类只有一个实例,并提供一个全局访问点。:嗯,基本理解是正确的。

2025-07-24 20:11:25 389

原创 互联网大厂Java面试:程序员谢飞机的搞笑面试之旅

在一个阳光明媚的早晨,程序员谢飞机来到了一家知名互联网公司的面试现场。面对他的是一位目光如炬的面试官,面试即将开始。

2025-07-24 20:06:02 254

原创 互联网大厂Java面试:谢飞机的爆笑求职之旅

它存储键值对,使用哈希函数计算键的哈希值,从而决定键值对在表中的位置。:啊,哈希,哈希就是...嗯,差不多就是把钥匙放进一个大的、很大的盒子里,然后...嗯,就能找到东西了。Spring是一个功能丰富的框架,SpringBoot是Spring的子项目,提供更快的开发和部署体验。在某互联网大厂的面试室内,面试官严肃地坐在桌子一边,谢飞机,一个搞笑的程序员,坐在对面。线程池管理一组工作线程,减少了创建和销毁线程的开销,提高了响应速度和资源利用率。:线程池嘛,就是一堆线程下水游泳,游累了换别人下去。

2025-07-24 20:01:36 274

原创 互联网大厂Java面试:谢飞机的搞笑求职之旅

啊,JVM,就是Java虚拟机嘛,就是个Java程序的搬运工,随叫随到,勤勤恳恳。:Spring是个庞大而复杂的家伙,SpringBoot就是它的迷你版,方便携带。:设计模式啊,就是用来装饰代码的花边,我知道单例模式,就是一个人扛起一片天。:不错,JVM确实是Java程序的运行时环境,那么它的内存结构你了解吗?:呃,内存嘛,就是堆里放数据,栈里放秘密,其他的我就不太记得了。:多线程就是多个线程嘛,要用线程池装起来,省得到处乱跑,哈哈。:Redis嘛,开个小超市,数据想怎么存就怎么存,速度贼快。

2025-07-24 19:56:17 223

原创 互联网大厂Java面试:严肃面试官与搞笑程序员的对决

JUC中的线程池通过Executor框架提供线程管理,允许线程的复用和任务调度,常用的有FixedThreadPool、CachedThreadPool等。:MyBatis是一个持久层框架,通过XML或注解配置SQL语句,将Java对象与数据库中的记录映射,简化数据库操作。:控制反转(IOC)是Spring的核心,通过依赖注入将对象创建和管理的责任交给Spring容器,支持松耦合设计。:嗯,就是...是一个关键词,可以用来修饰变量,确保变量的可见性。:一个是数组,一个是链表,哈哈,一个快一个慢。

2025-07-22 22:27:47 170

原创 程序员谢飞机的面试奇遇记

ThreadPoolExecutor是Java中线程池的核心类,其参数包括corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue等。: Java Virtual Machine,Java虚拟机,是Java程序运行的抽象计算机,实现了Java的跨平台特性。: 是Java中基于哈希表的集合类,通过哈希码存储键值对,解决哈希冲突的方式是链地址法。二级缓存是全局的,需手动配置。面试结束,面试官露出微笑:“好的,今天就到这里吧,回去等通知。

2025-07-22 22:21:56 256

原创 谢飞机的搞笑面试之旅:Java核心技术探讨

Spring的核心是IOC(控制反转)和AOP(面向切面编程),它帮助开发者管理bean的生命周期和切面处理。在互联网大厂的面试现场,面试官严肃地坐在桌子另一侧,而对面坐着的是我们今天的主角——搞笑的水货程序员谢飞机。谢飞机:线程池就是,呃,有很多线程在里面游泳...不不,是有很多线程可以重复使用,节省资源!是个设计模式,呃,挺复杂的,哈哈...(面试官失望地摇头)谢飞机:MyBatis嘛,就是能帮我们写SQL,少写代码,嗯,挺方便的!面试官:好的,谢先生,今天的面试就到这里,我们会尽快通知你。

2025-07-22 22:15:55 343

原创 谢飞机的面试奇遇记:从Java基础到高深技术的挑战

谢飞机(开始冒汗):"ArrayList和LinkedList,呃,ArrayList是连续的,像坐地铁,LinkedList是一节节的,像坐公交车。谢飞机(稍微紧张):"嗯,HashMap,嗯......就像是一个大书架,书名是键,书的内容是值,我们可以通过书名快速找到书。谢飞机(显得有些犹豫):"JUC,嗯,我知道有锁,ReentrantLock,其他的,我记不太清了。谢飞机:"事务隔离......我记得有四种,嗯,读未提交,读提交,重复读,还有那个,嗯,序列化?

2025-07-21 23:25:23 393

原创 互联网大厂Java面试实录:程序员谢飞机的搞笑面试之旅

当然,ArrayList是个动态数组,HashMap是个键值对集合。ArrayList更像一辆没有终点的列车,而HashMap就像一个邮筒,每个邮箱都有自己的钥匙。:谢飞机,你好,先聊聊Java基础吧。:它...它会...先创建一些线程,然后...然后用完不扔,省着用。:呃,这个...它会自动变大吧,就像我的肚子,吃得多就大了。:谢飞机,你今天的表现很有趣,我们会在一周内通知你结果。:Bean就像我小时候,从出生到长大,最后退休。:可以反复进出,就像我家大门,不会锁我在外面。说说线程池的好处吧。

2025-07-19 16:20:27 384

原创 互联网大厂Java面试实录:谢飞机的面试之旅

在某互联网大厂的面试间,一位严肃的面试官正准备对一位名叫谢飞机的求职者进行Java开发岗位的面试。:嗯,HashMap就是一个存放键值对的集合,它会根据键的hashcode去寻找存放的地方。:通过复用线程降低资源消耗,减少线程创建和销毁的开销,提升响应速度并提高线程管理的可控性。:Spring用的是反射机制来搞定的,具体细节嘛,反正就是很神奇的一种自动装配。:线程池就是可以重复利用线程,呃,这样就不用每次都new线程,省事儿。:一级缓存是session级别的,二级缓存是全局的,呃,就是这样。

2025-07-19 16:14:57 332

原创 copy测试文章标题01

这是一篇测试文章。

2025-07-17 23:52:57 236

原创 通过cursor生成,发送测试发表题123

测试发表题。

2025-07-15 00:08:43 230

原创 通过cursor生成,发送测试发表题123

测试发表题。

2025-07-15 00:01:54 255

原创 测试文章标题01

这是一篇测试文章。

2025-07-14 23:51:08 213

原创 测试发表题1

测试发表题。

2025-07-14 22:08:50 294

原创 测试发表题

测试发表题。

2025-07-14 22:05:52 67

原创 计算几何-----------思维(差分)

解析:求区间[L,R]满足条件的个数?直接前缀和[0,R]-[0,L-1]设区间[0,x],二进制下1的个数为奇数的总和为⌊x2⌋\lfloor\frac{x}{2}\rfloor⌊2x​⌋+count(x)count(x):表示x的二进制1的个数是否为奇数按分类讨论x是偶数 答案⌊x2⌋\lfloor\frac{x}{2}\rfloor⌊2x​⌋+count(x)x是奇数 答案⌊x+12⌋\lfloor\frac{x+1}{2}\rfloor⌊2x+1​⌋#include<bit..

2021-05-26 11:17:22 386

原创 追求女神------------思维(奇偶性)

解析:t秒内,从(0,0)走到(x,y) 说明t和(x+y)的奇偶性必须保持一致性且t>=(x+y)#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int t,n;int dx[4]={1,0,-1,0};int dy[4]={0,1,0,-1};struct node{ int k,x,y;}a[N];bool check(int time ,int x,int y,int las..

2021-05-26 11:05:39 353

原创 树状数组维护LIS--------------------思维(树状数组)

注意: 必要时需要离散化#include<bits/stdc++.h>using namespace std;const int N=1e5+10000;int c[N];int n,a[N];int f[N];int lowbit(int x){ return x&(-x);}void add(int i,int val){ while(i<N) { c[i]=max(c[i],val); i+=lowbit(i); }}int su

2020-12-08 20:25:30 483

原创 Java注意点

http://127.0.0.1:8080/MVC/index.dogetServletPath():index.dogetContextPath():/MVC

2020-11-20 10:48:27 184

原创 B. Johnny and Grandmaster----------------------思维(贪心)

题意:给定n个数和p,现在你需要将n个数分成两个集合A,B 使得两个集合差值绝对值最小解析:一贯的套路我们把pk[i] 当成p进制下,第k[i]位为1.那么就出现了一个性质 25 > 20 + 21 + 22 + 23 +24所以我们按照k[i] 从大到小排第一步找到最大的k[i] ,ans+=pk[i] 相当于把k[i] 放到A集合中第二步 ans-=pk[i] 相当于把k[i]放到B集合中, 直到ans=0 再回到第一步去即可最后还有一个问题,就是an..

2020-11-17 16:49:04 320 1

原创 D. Johnny and Contribution---------------------------思维(贪心)

题意:给定n个点,m条边。每个点都有一个权值ai。问你如何遍历图,使得当前节点为u,与u相连的节点集合{v1,v2,v3,v4,v5…}求出mex{v1,v2,v3,v4…v5} 为 x 判断 a[u]是否等于x 。如果存在序列输出,如果不存在输出-1解析:肯定是贪心的从小到大遍历。所以我们只要把ai排好序。当轮到i节点时,判断与i节点相邻的数的mex是否等于a[i] 如果不等于直接输出-1 即可 。剩下的模拟即可#include<bits/stdc++.h>us..

2020-11-17 15:36:39 303

原创 freemarker-------------------学习笔记(容器类型)

容器类型ContainersHash遍历方法:数据类型Hash: Map<String,Object> score = new HashMap<>(); score.put("chinese",90); score.put("english",87); score.put("math",93); model.put("score",score);freemarker 遍历模板model中的score

2020-11-17 09:16:36 241

原创 freemarker--------------------------学习笔记(标量类型)

标量类型 ScalarsStringNumberBooleanDate-like标量的显示格式Built-ins标量在显示时,可以用一个内置的格式转换方法例如:${id?c}${birthdat?date}${sex?then('男','女')}容器类型 ContainersHash 哈希类型:Map,HashMapSequence 顺序类型:List,ArrayListCollection 集合类型:如Set...

2020-11-17 08:56:50 192

原创 B. Catching Cheaters-----------------------思维(dp)

题意:给定a,b两个串,求最大的S(c,d) = 4 * lcs(c,d) -|c| - |d| 。c和d为a,b串的子串。lcs(c,d) 为c,d的最长公共子序列。解析:设f[i][j]:表示a串以i结尾 和b以j结尾的最长公共子序列长度。当a[i]==b[j]转移方程:f[i][j]=max(f[i][j],f[i-1][j-1]+2)因为a[i]==b[j] 那么前一个状态就是f[i-1][j-1] 。 |c|和|d|的长度都-1了 lcs(c,d)也-1了那么 4x -..

2020-11-16 19:59:50 372

原创 A. Knapsack------------------------------------思维(贪心)

题意:给定n个数和w,每个数都有一个权值ai. 问你如何选择使得权值之和在[(w+1)/2,w] 之间。如果满足输出选择数的下标。如果不行输出-1解析:贪心,从大到小贪。例:n=6 w=121 1 1 1 1 11如果从小到大贪,这个样例会输出-1.必须从大到小贪#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e6+1000;ll w;struct node..

2020-11-16 19:44:17 520 2

原创 B. Identify the Operations-----------------------思维(组合数学)

题意:给定长度为n的数组A和长度为k的数组B现在需要从A中取出k个数 要和B数组一样。取数规则1.选择ti Ati-1或Ati+1可以加入到B数组2.把选择的ti 踢出去 Ati+1~Atn 各左移一位3.重复1直到选出k个数问?问有多少种不同的取法使得取出k个数和数组B完全一致解析:一眼看上去就是组合数,突破口就是从B数组中的每一位进行讨论因为bi 只可能来自 Ati-1 ,Ati+1 这2种可能分情况第一种情况 :假设bi在A数组的下标为x ,如果A[x-..

2020-11-11 16:09:45 267

原创 C. The Delivery Dilemma---------------------思维(贪心排序)

解析:因为A数组是快递并发执行的,所以只需取最大值B数组是需要自己去的时间之和那么我们排序A数组讨论每个位置i,那么A数组[1,i]快递的时间为Ai那么[i+1,n]为我们自己去取的时间,维护一个前缀和即可然后从两个操作取得最大值,然后整体最小即可#include<bits/stdc++.h>using namespace std;const int N=2e5+1000;typedef long long ll;ll b[N]; int t,n;struct n..

2020-11-05 23:18:16 383

原创 B. Saving the City---------------------------思维(贪心+模拟+套路)

题意:给定01串,1代表需要爆破的点。爆破1当前位置连通块需要花费a的代价如果把0变成1 需要花费b的代价问最少需要花费多少使得全部变成0题解贪心(套路题):如果在全都不是0的情况下,最少爆破一次。那我们就枚举每两个连通块之间0的个数 然后贪心计算是把0转换成1爆破划算,还是按照连通块个数爆破划算 。假设 区间0的个数为x那么总的修改次数贡献为 :x * b再加上还要爆破一次:x * b+a所以判断一下 x * b+a < 2 * a 如果小于我们就贪心的把这段0都变为..

2020-11-05 21:14:01 339

原创 Easy Equation-------------------------思维(差分+前缀和)

解析:由于N非常大,只能O(N)做法所以我们利用前缀和来求出 a+b+c例如求a+b我们只要a即可只要让[i,i+b ]区间+1 代表这个区间里面的数都可以由a,b构造而出所以利用差分 f[i]++,f[i+b+1]–;最后求一遍前缀和即可#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;type...

2020-11-01 21:50:52 483

原创 Intelligent Warehouse----------------------思维(dp+素数筛)

题意:给定n个数,选除最多的数,使得任何两个数都是倍数关系解析:设f[i]表示当前选的所有数都是i的约数得最大值假设当前f[4]=2 表示当前有2个数是4的约数那么f[4x]=max(f[4x],f[4]) (2<=x<=N/4) 4*x的约数也一定是2个但是x不能这样枚举 肯定TLE想一想任何一个合数都能由若干个素数乘积得到所以我们只需要乘素数倍即可总的时间复杂度(3e7+nloglogn)解析:#include<cstdio>#include&..

2020-10-31 21:16:06 198

原创 D. Destiny--------------------------思维(主席树+贪心剪枝)

题意:查询[l,r]区间中出现的次数大于(r-l+1)/2 的最小数解析:主席树板子题对于查询的时候需要贪心剪枝因为我们求的是最小值一开始肯定先遍历左子树,如果左子树不满足再到右子树上#include<bits/stdc++.h>using namespace std;const int N=3e5+10;int n,q;struct node{ int l,r,cnt;}tr[N*40];int a[N],b[N],root[N*20],idx,num,l,r..

2020-10-30 17:25:04 274

原创 P2617 Dynamic Rankings-------------------------思维(动态主席树/树套树)

解析:把每个主席树当作成树状数组的一个节点,区间更新的时候,利用树状数组更新,然后在更新到每个版本的主席树#include<bits/stdc++.h>using namespace std;const int N=1e5+10000;int root[N*2],t1[N],t2[N],ls[N*400],rs[N*400],idx;int a[N],b[N*3],num;int n,m,n1,n2;int l[N],r[N],d[N];int val[N*400];in..

2020-10-26 20:29:38 279

原创 Greedy Sequence---------------------------------思维(主席树+贪心)

解析:假设当前位置为x 距离不超过k那么我们可以在[x-k,x] 和 [x,x+k] 去找小于a[x]且最大的数那么可以利用主席树去解决因为要找最大的,所以我们贪心地先遍历到右子树,否则再去左子树#pragma GCC optimize(3 , "Ofast" , "inline")#pragma GCC optimize("Ofast")#pragma GCC target("avx,avx2,fma")#pragma GCC optimization("unroll-loops"...

2020-10-26 15:45:47 273

原创 MySqL学习记录(增删改查)

创建表CREATE TABLE sample ( id INT NOT NULL,`sample` stringname VARCHAR(20) NOT NULL)删除表IF EXISTS // 判断当前表是否存在DROP TABLE IF EXISTS sample ;插入数据INSERT INTO 表名 ( 列1, 列2, ..., 列N)VALUES ( 值1, 值2, ..., 值N)简化写法INSERT INTO stud

2020-10-23 09:40:07 296

组合数学.pdf

1.1 排列 (1)在没有其他条件的情况下,从 个不同元素中选取 个不同的元素的排列数为 ,当 > 时, =0 (2)在 个不同元素中选取 个元素的圆排列的个数为 1.2 组合 (1)在在没有其他条件的情况下,从 个不同元素中选取r个不同的元素的排列数为 , 当 > 时, =0

2019-11-07

空空如也

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

TA关注的人

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