- 博客(13)
- 收藏
- 关注
原创 前后端分离:现代Web开发的最佳实践
前后端分离开发是一种将前端和后端功能完全解耦的开发模式。它不仅提高了开发效率,还改善了团队协作、技术栈选择、扩展性和维护性。通过清晰的API接口,前端和后端可以独立开发、部署,且能支持多平台客户端。随着前端技术的飞速发展、移动互联网的需求和云计算的普及,前后端分离已经成为现代Web应用开发的主流模式。
2025-01-20 18:53:35
963
原创 「var、let 和 const,你选对了吗?」
是 JavaScript 最早用于声明变量的关键字,但它存在一些易混淆的特性。声明时必须同时赋值,且引用类型的变量不能更改引用本身,但可以修改其内容。的问题,就是JavaScript 的变量声明方式有何不同?声明的变量会被提升到当前作用域的顶部,初始值为。的声明会被提升,但在声明之前的区域不可访问,称为。 在同一作用域中,不能重复声明相同名字的变量。一样存在 TDZ,需要在声明之后使用。变量可以在声明之前被访问,但值为。可以在同一作用域内多次声明同名变量。基础不牢,地动山摇。一致,不能重复声明。
2025-01-16 21:36:41
288
原创 牛客练习赛130 B
分析:这题一眼就是构造题,那么好,我们分析一下不合法的情况,首先h是正数,那么l>=0肯定不合法,h永远不会等于零,同时我们要保证h+l*k<=0;最难的是构造合法序列,我们可以令sum=h+k*r,什么意思呢,我们先假设从1到k步我们都走r,那么最好的情况是sum,sum肯定大于0,我们从k往1遍历,如何sum>r-l,就可以将a[i]赋值为l,直到sum==0。但是只过了85%的数据,思考了一下,发现我初始设a[i]=0,万一0不在l和r之间呢,所以这个做法不对。如果可以构造,输出合法数列;
2024-10-19 21:02:04
450
原创 Codeforces Round 966 (Div. 3) C. Numeric String Template
我当时想的是用map来存,键是数组的值,值是相同数组的下标,然后我逐步遍历,来判断两个map的值是否相同,但是我过样例的时候发现有点样例不对,我思考了一下,因为map是自动按值的升序来排列的,那我们值相等的情况呢,所以我们需要自定义map排列函数来实现。例如,如果数组中有两个相同的数字,这两个数字必须在字符串中对应两个相同的字符。第三个测试用例中,"aaaa" 和 "cbcb" 符合模板,而 "bcbc" 和 "aba" 不符合。第二个测试用例中,"ab" 和 "aa" 符合模板,而 "abc" 不符合。
2024-09-18 20:41:17
422
原创 Codeforces Round 972 (Div. 2)
(3) 最后我们讨论大卫在两名老师的中间,那么老师肯定会往中间追,大卫往离着最远老师的方向跑,在即将相遇的时候再往回跑,直到有一刻,两名老师同时抓到大卫,时间是(max(x,y)-min(x,y))/2。(2) 老师全在大卫的左边,那么好,我们很容易想到大卫往右边跑直到n为止,离大卫最近的老师追,追到为止,那么时间就是 n-max(x,y);(1)老师全在大卫的右边,那么好,我们很容易想到大卫往左边跑直到1为止,离大卫最近的老师追,追到为止,那么时间就是 min(x,y)-1;
2024-09-15 11:59:16
783
原创 Codeforces Round 971 (Div. 4)E. Klee‘s SUPER DUPER LARGE Array!!!
Klee 有一个长度为 n的数组 a ,其中按顺序包含整数 [k,k+1,...,k+n−1]。克利希望选择一个索引( 1≤i≤n),使得 x=|a1+a2+⋯+ai−ai+1−⋯−an|最小。前言:当时D题没思路先做到E题,感觉是个等差数列,推了会公式,写出代码过了样例就交了,感觉可以过,结果。每个测试用例包含两个整数 n和 k( 2≤n,k≤10^9)--数组的长度和数组的起始元素。废话少说,我之所以超时的原因是没注意到n,k的数据范围是0-1e9 超时是在所难免的。输出 x 的最小值。
2024-09-05 12:29:51
447
原创 Codeforces Round 971 (Div. 4) D. Satyam and Counting
思路:刚开始看到这个题无从下手,我们先读一遍题,**题目的突破点是0≤yi≤1,**,y轴的坐标只能是0或者1,那么好,我们第一种想到的情况是两个点的x坐标相同,y的坐标一个是0一个是1,那么这两个点和其他任何的点构成的三角形都是直角三角形,我们就找这种点,找到一个答案就加上n-2。接下来的 n 行包含两个整数 xi和 yi ( 0≤xi≤n , 0≤yi≤1)--Satyam 可以选择的 i'th 点。只要有三个点的x在范围内,并且其中两个点的y轴和另外的一个点的y轴不同即可,找到一个,答案就加上1。
2024-09-05 11:18:04
814
原创 牛客小白月赛99 C 迷宫
幸运的是,你拥有一种超能力——在迷宫中移动时(移动方向为上、下、左、右四个方向之一),可以在当前位置朝任一方向(上、下、左、右四个方向之一)释放激光。字符只包含 "#"、"."、"S" 和 "E",并且起点与终点有且仅有一个。给定一个 n×m的迷宫,迷宫由 "#"与"." 两种字符组成。其中 "#" 代表障碍物,"." 表示空地。迷宫中还有一个起点 "S" 和一个终点 "E" ,它们都可以视为空地。显然可以从起点出发,到达(1,2)处并向下方使用超能力,此时可以从起点到达终点。
2024-08-26 02:11:20
315
原创 最长上升子序列
贪心:考虑一个简单的贪心,如果我们要使上升子序列尽可能的长,则我们需要让序列上升得尽可能慢,因此我们希望每次在上升子序列最后加上的那个数尽可能的小。否则,在 d 数组中二分查找,找到第一个比 nums[i] 小的数 d[k] ,并更新 d[k+1]=nums[i]。用 len 记录目前最长上升子序列的长度,起始时 len 为 1,d[1]=nums[0]。基于上面的贪心思路我们可以用d[i] 代表长度为i的最长上升子序列的末尾的最小值。,所以d[k]不是最小的,与题设相矛盾,因此可以证明其单调性。
2024-08-18 00:49:26
899
1
原创 2024牛客暑期多校训练营9 K题 Kill The Monsters
本人在做这道题的时候,第一眼就感觉是贪心,但和队友一直不知道如何维护贪心的过程,最后用暴力测试了思路一下,思路是对的,但超时了qwq。思路:我们最开始肯定是想先用方法二来把大的怪物的值除k逐渐接近一个数,最后用方案一全部带走。补题的时候真想给自己一耳屎。
2024-08-16 00:04:02
430
原创 900. 整数划分
一个正整数 n𝑛 可以表示成若干个正整数之和,形如:n=n1+n2+…+nk𝑛=𝑛1+𝑛2+…+𝑛𝑘,其中 n1≥n2≥…≥nk,k≥1𝑛1≥𝑛2≥…≥𝑛𝑘,𝑘≥1。我们将这样的一种表示称为正整数 n𝑛 的一种划分。现在给定一个正整数 n𝑛,请你求出 n𝑛 共有多少种不同的划分方法。
2024-06-10 20:46:00
376
原创 C. Trading
题面:二十年前,广州的北京路步行街北段出土了自唐代直到民国时期的十一层路面,南段则发掘出宋代至明 清时期共五层的拱北楼建筑基址,佐证了北京路自宋代以来作为商业步行街的悠久历史;在步行街中,有 n 间商店买卖同一种商品,第 i 间商店一件商品的收购价和出售价均为 ai 元。对于接下来 n 行,第 i 行输入两个整数 ai 和 bi(1 ≤ ai , bi ≤ 106),分别表示第 i 间商店的商品价格, 以及该商店可以交易的最大次数。Output 每组数据输出一行一个整数,表示在步行街中赚到的最大总利润。
2024-06-10 20:41:47
288
原创 95. 费解的开关
我们依次枚举第一行的32种情况,递推2,3,4行,最后判断第五行是否都开即可。假设2,3,4行中的灯为关,则我们改变正下方的灯的状态来改变这个灯的状态。每行5个灯,每个灯有开和不开两种情况,则共32种(2^5)主要算法是递推(宽搜也可以)最后取32次中步数最小的即可。
2024-05-23 17:44:46
199
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人