- 博客(130)
- 收藏
- 关注
原创 读书笔记:Head First Java实战(第三版)
面向对象并不是最简洁的,但它将数据和操作合并在一个模块种,易于管理,容易构建大型程序。但是当需求不断补充、拓展、变化时,需要不断修改逻辑代码,伤筋动骨。Java9开始,版本号只有数字,没有开头的“1”,也就是说Java9就是版本9,而不是1.9.Java速度与C和Rust不相上下,JVM可以在运行时优化代码,无需刻意写高性能代码。Java一切都在类中,这种类似全局的方法和数据,仅仅是一种例外,而不是规则。从版本5开始,省略前缀"1."。1996年首次发布,编程时会遇到很多古老代码,Java向后兼容。
2023-10-24 22:46:25
1512
原创 剑指offer 接雨水(单调栈、前缀和、双指针)
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
2022-09-24 17:20:50
359
原创 剑指offer 圆圈中最后剩下的数字(约瑟夫环,dfs)
(约瑟夫环O(n)复杂度求最后剩下数字编号)0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。
2022-09-21 22:43:23
443
原创 剑指offer 丑数(dp、指针)
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第n个丑数。
2022-09-04 23:17:53
320
原创 剑指offer 数组中出现次数超过一半的数字
描述链接给一个长度为 nnn 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为 999 的数组 [1,2,3,2,2,2,5,4,2][1,2,3,2,2,2,5,4,2][1,2,3,2,2,2,5,4,2] 。由于数字 222 在数组中出现了 555 次,超过数组长度的一半,因此输出 222。数据范围:n≤50000n \le 50000n≤50000,数组中元素的值 0≤val≤100000 \le val \le 100000≤val≤10000要求
2022-05-23 21:39:34
130
原创 剑指offer 表达数值的字符串(正则表达式)
题目链接:leetcode 链接牛客链接题目描述:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。数值(按顺序)可以分成以下几个部分:若干空格一个 小数 或者 整数(可选)一个 'e' 或 'E' ,后面跟着一个 整数若干空格小数(按顺序)可以分成以下几个部分:(可选)一个符号字符('+' 或 '-')下述格式之一:至少一位数字,后面跟着一个点 '.'至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字一个点 '.' ,后面跟着至少一位数字
2022-05-18 14:43:36
133
原创 剑指offer 数组中只出现一次的两个数字(位运算,空间复杂度限制)
题目链接:剑指 Offer 56 - I. 数组中数字出现的次数剑指 Offer 56 - II. 数组中数字出现的次数 II数组中数字出现的次数 题目描述:一个整型数组 nums\text{nums}nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是 O(n)O(n)O(n),空间复杂度是 O(1)O(1)O(1)。输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]输入:nums = [1,2,10,4,1,4,3,3]
2022-05-13 22:30:48
264
原创 剑指OfferJZ38字符串的排列(next_permutation实现、康托展开)
剑指offer JZ38题目描述输入一个长度为 nnn 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。例如:输入字符串 ABC\text{ABC}ABC ,则输出由字符 A,B,C\text{A,B,C}A,B,C 所能排列出来的所有字符串 ABC\text{ABC}ABC , ACB\text{ACB}ACB , BAC\text{BAC}BAC , BCA\text{BCA}BCA , CBA\text{CBA}CBA 和 CAB\text{CAB}CAB。数据范围
2022-05-08 01:16:21
528
原创 天梯赛 L3-028 森森旅游 (Dijkstra,反向建图)
链接题目描述:好久没出去旅游啦!森森决定去 Z 省旅游一下。Z 省有 nnn 座城市(从 111 到 nnn 编号)以及 mmm 条连接两座城市的有向旅行线路(例如自驾、长途汽车、火车、飞机、轮船等),每次经过一条旅行线路时都需要支付该线路的费用(但这个收费标准可能不止一种,例如车票跟机票一般不是一个价格)。Z 省为了鼓励大家在省内多逛逛,推出了旅游金计划:在 iii 号城市可以用 111 元现金兑换 aia_iai 元旅游金(只要现金足够,可以无限次兑换)。城市间的交通即可以使用现金支付路费,
2022-04-11 10:45:01
513
原创 天梯赛 L2-030 冰岛人(LCA,树上倍增)
链接题面描述:2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名。好事者发现冰岛人的名字后面似乎都有个“松”(son),于是有网友科普如下:冰岛人沿用的是维京人古老的父系姓制,孩子的姓等于父亲的名加后缀,如果是儿子就加 sson,女儿则加 sdottir。因为冰岛人口较少,为避免近亲繁衍,本地人交往前先用个 App 查一下两人祖宗若干代有无联系。本题就请你实现这个 App 的功能。输入格式:输入首先在第一行给出一个正整数 NNN(1<N≤1051<N≤10^51<N≤
2022-03-26 22:15:38
483
原创 天梯赛 L3-007 天梯地图(Dijkstra变形:多权重,保存路径)
题目描述:链接本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线。题目保证对任意的查询请求,地图上都至少存在一条可达路线。输入格式:输入在第一行给出两个正整数 NNN(2≤N≤5002 ≤ N ≤ 5002≤N≤500)和 MMM ,分别为地图中所有标记地点的个数和连接地点的道路条数。随后 MMM 行,每行按如下格式给出一条道路的信息:V1V_1V1 V2V_2V2 one-way length time
2022-03-21 13:04:47
544
原创 天梯赛 L3-005 垃圾箱分布(单源最短路Dijkstra及其二叉堆优化)
链接大家倒垃圾的时候,都希望垃圾箱距离自己比较近,但是谁都不愿意守着垃圾箱住。所以垃圾箱的位置必须选在到所有居民点的最短距离最长的地方,同时还要保证每个居民点都在距离它一个不太远的范围内。现给定一个居民区的地图,以及若干垃圾箱的候选地点,请你推荐最合适的地点。如果解不唯一,则输出到所有居民点的平均距离最短的那个解。如果这样的解还是不唯一,则输出编号最小的地点。输入格式:输入第一行给出 444 个正整数:NNN(≤103≤10^3≤103)是居民点的个数;MMM(≤10≤10≤10)是垃圾箱候选地点的
2022-03-18 08:00:00
430
原创 天梯赛L3-015 球队“食物链”(状态压缩、记忆化搜索)
链接题目描述:某国的足球联赛中有 NNN 支参赛球队,编号从 111 至 NNN。联赛采用主客场双循环赛制,参赛球队两两之间在双方主场各赛一场。联赛战罢,结果已经尘埃落定。此时,联赛主席突发奇想,希望从中找出一条包含所有球队的“食物链”,来说明联赛的精彩程度。“食物链”为一个 111 至 NNN 的排列 {T1,T2,…,TNT_1,T_2,\dots,T_NT1,T2,…,TN},满足:球队 T1T_1T1 战胜过球队 T2T_2T2 ,球队 T2T_2T2 战胜过球队 T3T_3T3
2022-03-03 09:11:36
494
原创 天梯赛L2-018 多项式A除以B
链接题目描述:这仍然是一道关于 A/BA/BA/B 的题,只不过 AAA 和 BBB 都换成了多项式。你需要计算两个多项式相除的商 QQQ 和余 RRR,其中 RRR 的阶数必须小于 BBB 的阶数。输入格式:输入分两行,每行给出一个非零多项式,先给出 AAA,再给出 BBB。每行的格式如下:N e[1] c[1] … e[N] c[N]其中 NNN 是该多项式非零项的个数,e[i]e[i]e[i] 是第 iii 个非零项的指数,c[i]c[i]c[i] 是第 iii 个非零项的系数。各项按
2022-03-01 22:17:37
408
原创 天梯赛L2-016 愿天下有情人都是失散多年的兄妹
题目链接题目描述:大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人、父母、祖父母、曾祖父母、高祖父母)则不可通婚。本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚?输入格式:输入第一行给出一个正整数 NNN(2≤N≤1042 ≤ N ≤10^42≤N≤104),随后 NNN 行,每行按以下格式给出一个人的信息:本人ID 性别 父亲ID 母亲ID其中 ID 是 555 位数字,每人不同;性别 M 代表男性、F 代表女性。如果某人的父亲或母亲已经不可考,则相应的 I
2022-02-28 11:23:28
196
原创 开平方算法的C++实现
开方算法的设计与实现问题求解非线性方程 x2−c=0x^2-c=0x2−c=0 要求至少设计 555 种算法进行求解给出算法的收敛性理论分析构造数值算例并实验比较每种算法的求解效率求非线性方程一个解的方法有很多:二分法、不动点法、牛顿法(切线法)、简化牛顿法(平行弦法)、牛顿下山法、弦截法、抛物线法。这次实验只求解 x2−c=0x^2-c=0x2−c=0 这个方程,也就是实现一下开平方算法。在做实验之前看了这篇文章:sqrt函数实现(神奇的算法).属于 “我看不懂,但是大受震.
2021-12-17 18:42:32
5879
原创 逐次超松弛迭代法 ( SOR ) 的C++实现
随机生成若干个 nnn 阶方阵与 nnn 阶向量构成 Ax=bAx=bAx=b建议直接生成对称正定矩阵取 0<ω<20<\omega<20<ω<2 的若干值进行收敛代数对比用充分条件判断该矩阵 AAA 是否对 SOR 迭代法收敛实现用 SOR 法解该方程组与精确解对比并计算误差首先生成一个对称正定矩阵。由对称阵的三角分解定理,先随机生成一个下三角矩阵 L,再生成一个元素均为正数的对角矩阵 DDD,计算 LDLTLDL^TLDLT 就可以得到一个对.
2021-12-16 17:55:42
4548
原创 雅可比迭代与高斯-赛德尔迭代的C++实现,及判断收敛性
随机生成若干个 nnn 阶方阵与 nnn 阶向量构成 Ax=bAx=bAx=b分别判断J法和GS法的收敛性是否能收敛报告中应生成部分不收敛的矩阵估计J法和GS法收敛速度哪个更快实现用J法和GS法解该方程组实验判断J法和GS法的收敛速度,并与理论估计作对比首先随机生成矩阵,判断它是否非奇异、判断对角矩阵D是否非奇异、判断J法和GS法是否都收敛,如果不满足就重新生成。复杂度很高得到矩阵后,通过 ρ(J)\rho(J)ρ(J) 与 ρ(G)\rho(G)ρ(G) 的大小可以估计.
2021-12-15 20:29:31
5789
2
原创 楚列斯基分解法、求矩阵范数的C++实现
随机生成一个 n 阶方阵与 n 阶向量构成 Ax=b构建 n 阶对称正定矩阵1. 使用楚列斯基分解求 x2. 使用改进的楚列斯基分解求 x构建 n 阶对角占优不可约的三对角矩阵1. 使用简化计算的 LU 分解求 x求以上矩阵的条件数1. 包括 1-范数、2-范数和 ∞\infty∞-范数的条件数总结一下难点:快速生成 n 阶对称正定矩阵矩阵求逆计算矩阵最大特征值解决过程如下:快速生成 n
2021-12-14 21:28:44
2020
原创 高斯消元法、LU分解法与克莱姆法则解方程组的C++实现
数值分析老师布置了这样的实习作业:随机生成一个 n 阶方阵与 n 阶向量构成Ax=b至少生成 5 个方程并取不同的 n编程实现克莱姆法则求 x编程实现高斯消去法基本方法求 x编程实现高斯消去法的 LU 分解求 x编程实现列主元高斯消去法求 x列表比较并分析以上方法的运算时间与效率
2021-12-08 15:51:22
1714
1
原创 2020ICPC南京 Evil Coordinate(几何,模拟,构造)
链接题目描述A robot is standing on an infinite 2-dimensional plane. Programmed with a string s1s2⋯sns_1s_2\cdots s_ns1s2⋯sn of length nnn, where si∈{’U’,’D’,’L’,’R’}s_i \in \{\text{'U'}, \text{'D'}, \text{'L'}, \text{'R'}\}si∈{’U’,’D’,’L’,’R’}, the robot
2021-12-01 21:27:13
1049
原创 2020ICPC济南 A Matrix Equation(高斯消元、自由元数量)
链接题目描述We call a matrix “01 Square” if and only if it’s a N×NN\times NN×N matrix and its elements are all 000 or 111.For two 01 Squares XXX,YYY, we define two operators X×YX\times YX×Y and X⊙YX\odot YX⊙Y. The value of them are also 01 Square matrices and
2021-11-28 08:00:00
242
原创 2020ICPC南京 F Fireworks(概率,三分)
链接题目描述Kotori is practicing making fireworks for the upcoming hanabi taikai1. It takes her nn minutes to make a single firework, and as she is not really proficient in making fireworks, each firework only has a probability of p×10−4p \times 10^{-4}p×10−4
2021-11-27 22:06:57
308
原创 2021ICPC沈阳 J Luggage Lock(BFS)
链接题目描述Eileen has a big luggage and she would pick a lot of things in the luggage every time when A-SOUL goes out for a show. However, if there are too many things in the luggage, the 4-digit password lock on the luggage will be hard to rotate.The state
2021-11-27 08:00:00
885
原创 2020ICPC上海 I Sky Garden(思维,几何)
链接题目描述Prof. Du and Prof. Pang plan to build a sky garden near the city of Allin. In the garden, there will be a plant maze consisting of straight and circular roads.On the blueprint of the plant maze, Prof. Du draws n{n}n circles indicating the circular
2021-11-25 11:30:53
566
原创 2020ICPC上海 B Mine Sweeper II(思维)
链接题目描述A mine-sweeper map X{X}X can be expressed as an n×mn\times mn×m grid. Each cell of the grid is either a mine cell or a non-mine cell. A mine cell has no number on it. Each non-mine cell has a number representing the number of mine cells around it.
2021-11-25 08:00:00
371
原创 EL表达式取值与类的get方法
今天在写 JavaEE 作业的时候,出了些 bug ,最初以为是 MyBatis 的映射问题,后来发现与 EL 表达式的取值原理有关。写篇文章记录一下这个小经验。背景用 MyBatis 获取数据库中的书籍信息(books表),然后用 EL 表达式,将查询结果显示在 jsp 界面上。在 books 表中,有一个 book_name 属性,在 Book 类中也有同名属性。在 jsp 中用 EL 表达式 ${book.book_name} 输出 book 对象的属性值。问题报错显示找不到 Book 中
2021-11-23 08:00:00
801
原创 2020ICPC上海 D Walker(思维、二分、三分)
链接题目描述As a world-famous traveler, Prof. Pang’s research interest is to travel as many places as possible in his life.We have a segment [0,n]{[0, n]}[0,n]. There are two travelers on it. The first one is on position p1p_1p1 with velocity v1v_1v1 (which
2021-11-22 16:12:50
952
原创 Insertion Sort(推公式、排列组合)
链接Insertion sort is a simple sorting algorithm that builds the final sorted array one item at an iteration.More precisely, insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. At each iteration, insertio
2021-10-30 20:19:09
255
原创 Milk Patterns(后缀数组)【模板】
链接Farmer John has noticed that the quality of milk given by his cows varies from day to day. On further investigation, he discovered that although he can’t predict the quality of milk from one day to the next, there are some regular patterns in the daily
2021-10-15 17:10:03
135
原创 Kattis - taboo(AC自动机,DAG上DP)
链接Taboo is a popular party game. In this game one player, the Clue Giver, prompts his/her teammates to guess a keyword by giving clues. The Clue Giver is also given a list of taboo strings that must not appear in the clues. For example, if the keyword is
2021-10-09 16:57:55
176
原创 Doors(计算几何)
链接思路当角 aaa 小于 π2\frac\pi22π 时,计算点到直线距离。当角 bbb 小于 π2\frac\pi22π 时,分两种情况:垂足在线段上,计算点到直线距离。垂足在线段延长线上,计算两点间距离(红色部分)。当角 bbb 大于 π2\frac\pi22π 时,计算点到直线距离:当角 aaa 和角 bbb 都小于 π2\frac\pi22π 时,分两种情况:当角 α\alphaα 小于 π2\frac\pi22π 时,计
2021-10-07 17:48:08
109
原创 Playing with Numbers
链接思路求最大值当执行 000 次 lcmlcmlcm 时,答案显然为 amin,bmina_{min},b_{min}amin,bmin.当执行 ≥2\ge2≥2 次 lcmlcmlcm 时,答案为 amax,bmaxa_{max},b_{max}amax,bmax.当执行 111 次 lcmlcmlcm 时。因为对两个数执行 gcdgcdgcd 操作,只会将两个数缩小或变为较小的一个数。所以,要想得到最大值,需要保留一个数,使它不和任何数执行 gcdgcdgcd 操作,将这个..
2021-10-07 15:32:08
101
原创 Magic Potion(二分图多重匹配)
链接思路首先考虑二分图,将 nnn 个英雄和 mmm 个怪物看作是两个集合中的结点,英雄打怪兽的关系看作是边。那么求最大匹配就行了。考虑到一个英雄最多还能吃一瓶药,所以,将 nnn 个英雄结点,拆为 2n2n2n 个英雄结点。前 nnn 个结点代表吃药前的英雄,后 nnn 个结点代表对应的吃药后的英雄。显然,一个英雄,吃药后的边与吃药前的边连接的怪兽相同。(暂时考虑有无数瓶药)先求 nnn 个英雄没吃药前的最大匹配 ans1ans1ans1,再求 nnn 个吃药后的英雄的最大匹配 ans2ans2.
2021-10-07 14:51:32
136
原创 Prime Game(素数、质因子)
链接设有十个数字,其中下标为 333、777、101010 (蓝色部分)的数字都有相同的质因子 xxx 。那么,以 111 为左端点的所有区间中,有 888 个区间中包含质因子 xxx :[1,3][1,3][1,3]、[1,4][1,4][1,4]、[1,5][1,5][1,5]、[1,6][1,6][1,6]、[1,7][1,7][1,7]、[1,8][1,8][1,8]、[1,9][1,9][1,9]、[1,10][1,10][1,10]。同理,以 222、333 为左端点的区间中,也各有 .
2021-10-05 16:28:46
546
原创 Scholomance Academy(模拟)
链接思路比较长的一道阅读题,大致题意为:一个程序,它给每个物品评分,然后设置一个参数 θ\thetaθ ,若评分大于等于 θ\thetaθ ,则程序判定结果为阳性,否则判定结果为阴性。这样的程序会有误判,FPFPFP 代表把原本为阴性的物品,错判为阳性的次数。TPTPTP 为正确判断阳性的次数。FNFNFN 与 TNTNTN 的定义类似。再定义正确率 TPR=TPTP+FNTPR=\frac{TP}{TP+FN}TPR=TP+FNTP,错误率 FPR=FPTN+FPFPR=\fr
2021-10-03 17:55:07
1249
原创 Kobolds and Catacombs(思维)
题目描述链接Kobolds are rat-like, candle-loving cave folk, digging deep beneath the surface for millennia. Today, they gather together in a queue to explore yet another tunnel in their catacombs!But just before the glorious movement initiates, they have to ar
2021-10-03 11:45:40
528
原创 Limit(泰勒展开)
链接思路给出 aia_iai , bib_ibi ,ttt,要求 limi→0∑i=1nailn(1+bix)xtlim_{i \to 0}\frac{\sum^n_{i=1}a_i ln(1+b_ix)}{x^t}limi→0xt∑i=1nailn(1+bix). 将分子泰勒展开为多项式的形式,分子分母就可以约分了。f(x)=f(x0)0!(x−x0)0+f′(x0)1!(x−x0)1+f′′(x0)2!(x−x0)2+⋯+f(n)(x0)n!(x−x0)nf(x)=\frac...
2021-10-02 15:09:23
329
原创 Parallel Sort(思维)
题目描述As a master of parallel computing, schwer is recently considering about the method to achieve quick sorting on parallel computers. He needs your help!Given a permutation (p1,⋯ ,pn)(p_1,\cdots,p_n)(p1,⋯,pn), you need to sort the permutation with min
2021-09-26 12:36:28
512
原创 mahjong(模拟)
链接思路题目比较长,不过题意很清晰:给一副麻将,判断有没有胡。如果没有,那么输出有多少种出牌的方法,使得出牌后可以听。对于每种方法,按顺序输出它胡哪张牌。总共就 343434 张牌,一般来说不存在超时的问题。给出一副牌,直接深搜可以判断有没有胡。这个复杂度并不高,搜索深度最大在 444 左右。没胡的话,还需判断它出哪张牌后可以听,听哪些牌。可以双重循环,枚举这次出的牌,下次得到的牌,再通过上面的深搜判断经过这些操作后能不能胡,记录答案。不要开mp[26],也不要开mp[30],
2021-09-22 23:46:28
168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人