- 博客(88)
- 收藏
- 关注
原创 不要以为Intellij里灰色的没用到的包就不会有影响了
这里有两个我刚才写代码的时候用提示快速创建属性的时候导入的没见过的包。后面发现不是这个包,但是没有去管,以为没什么事。本来苍穹外卖写得好好的,结果突然爆出来一个没见过的错误。我查了一会发现解决问题的方法很难就没有马上去试。没有想到运行的时候给我报错了。
2025-04-29 14:02:55
187
原创 B3647 【模板】Floyd
对于 $100\%$ 的数据,$n \le 100$,$m \le 4500$,任意一条边的权值 $w$ 是正整数且 $1 \leqslant w \leqslant 1000$。接下来 $m$ 行,每行三个整数 $u,v,w$,代表 $u,v$ 之间存在一条边权为 $w$ 的边。第 $i$ 行的第 $j$ 个整数代表从 $i$ 到 $j$ 的最短路径。给出一张由 $n$ 个点 $m$ 条边组成的无向图。输出 $n$ 行每行 $n$ 个整数。# B3647 【模板】Floyd。## 输入输出样例 #1。
2025-03-29 11:15:56
213
原创 # P1873 [COCI 2011/2012 #5] EKO / 砍树## 题目描述伐木工人 Mirko 需要砍 $M$ 米长的木材。对 Mirko 来说这是很简单的工作,因为他有一个漂亮的
例如,如果一排树的高度分别为 $20,15,10$ 和 $17$,Mirko 把锯片升到 $15$ 米的高度,切割后树木剩下的高度将是 $15,15,10$ 和 $15$,而 Mirko 将从第 $1$ 棵树得到 $5$ 米,从第 $4$ 棵树得到 $2$ 米,共得到 $7$ 米木材。请帮助 Mirko 找到伐木机锯片的最大的整数高度 $H$,使得他能得到的木材至少为 $M$ 米。第 $1$ 行 $2$ 个整数 $N$ 和 $M$,$N$ 表示树木的数量,$M$ 表示需要的木材总长度。
2025-03-25 08:55:14
241
原创 P1102 A-B 数对
对于 $100\%$ 的数据,$1 \leq N \leq 2 \times 10^5$,$0 \leq a_i <2^{30}$,$1 \leq C < 2^{30}$。给出一串正整数数列以及一个正整数 $C$,要求计算出所有满足 $A - B = C$ 的数对的个数(不同位置的数字一样的数对算不同的数对)。相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈!找好的老师,这次找了——会code的小金鱼——几乎是马上就学会了二分!出题是一件痛苦的事情!
2025-03-24 16:10:03
236
原创 版本管理确实包含对软件版本兼容性问题的管理
无论是API、组件还是系统,都需要通过版本控制工具、兼容性策略和自动化测试来确保新旧版本的平滑过渡。如果遇到兼容性问题,可以通过版本回退、并行支持或模块化设计快速解决。如果需要更具体的场景分析或工具配置示例,可以进一步说明!版本兼容性是指不同版本的软件、组件或系统之间能够。版本管理的核心目标之一就是。(如知识库[7]提到的。
2025-03-16 18:59:46
1303
原创 lombok不起作用
在 IntelliJ 中,打开任意 Java 文件,查看是否提示 `Lombok 需要配置`,或通过 `Ctrl + Shift + A` 搜索 **Lombok** 确认插件状态。- **关键**:通过 `<annotationProcessorPaths>` 告诉 Maven 编译器在哪里找到 Lombok 的注解处理器(即使依赖是 `provided` 作用域)。- **作用**:显式指定 Lombok 的注解处理器路径,确保编译时能够识别 `@Slf4j` 等注解。
2025-03-16 18:57:37
558
原创 P1747 好奇怪的游戏
它们得从点 $x_1,y_1$ 和 $x_2,y_2$ 走到 $(1,1)$。通过研究不难发现一个马可以绕开阻塞的同样两部走到没有阻塞情况下走的两步走到的最短路点上,最边边上的走不到,可以用上面的归谬法同样证明,因为另外一颗棋子也完全可以返回去走个点到达最短。因为达到最短路上面的一个点的本质就是从那个点可以最短的走到(1,1),但是对方在这样一个可以最短走到的点上却还要花更多的路程走到对面的点上再去走最短路,这是矛盾的,所以是不行的。注意不能走到 $x$ 或 $y$ 坐标 $\le 0$ 的位置。
2025-03-12 20:44:49
455
原创 【无标题】
已知 $n$ 个整数 $x_1,x_2,\cdots,x_n$,以及 $1$ 个整数 $k$($k<n$)。从 $n$ 个整数中任选 $k$ 个整数相加,可分别得到一系列的和。第二行 $n$ 个整数,分别为 $x_1,x_2,\cdots,x_n$($1 \le x_i \le 5\times 10^6$)。第一行两个空格隔开的整数 $n,k$($1 \le n \le 20$,$k<n$)。例如上例,只有一种的和为素数:$3+7+19=29$。## 输入输出样例 #1。**【题目来源】**
2025-03-07 17:22:55
348
原创 易错点abc
在同一个输入流上重复创建Scanner实例可能会导致一些问题,包括但不限于输入流的混乱。尤其是在处理标准输入(System.in)时,重复创建Scanner对象通常不是最佳实践,因为这可能导致某些输入数据丢失或者顺序出错。
2025-02-27 20:56:33
407
原创 子串简写1
程序猿圈子里正在流行一种很新的简写方法:对于一个字符串,只保留首尾字符,将首尾字符之间的所有字符用这部分的长度代替。给定一个字符串 SS 和两个字符 c1c1 和 c2c2 ,请你计算 SS 有多少个以 c1c1 开头 c2c2 结尾的子串可以采用这种简写?对于 100100 的数据,2≤K≤∣S∣≤5×1052≤K≤∣S∣≤5×105。c1c1 和 c2c2 都是小写字母。对于 2020 的数据,2≤K≤∣S∣≤100002≤K≤∣S∣≤10000。∣S∣∣S∣ 代表字符串 SS 的长度。
2025-02-26 14:53:11
330
原创 初学者不要死扣细节
这类不常用的方法细节就不要去探索了,快点学,学完好做项目。老韩本来想重写构造器的,但是他说没有用就演示了。细节是一个无底的黑洞,你永远都扣不完。
2024-12-03 13:58:59
233
原创 做项目要自己去分析需求
这样的好处就是可以使用抽象不仅不用再去理解代码——再去整个检查代码,前面是对的就可以了,错了只用改前面的,如果是都错了就要重新改掉全部东西了(就比如之前cs61b里面的那个实践作业233)重写的父类的但是只是在父类上面加了东西可以super.父类方法来重复使用父类的方法。所以直接用set方法就好了,更好的灵活性(虽然可以设置默认值但是构造器显然回事设置默认值的好地方)需要增加各个类特有的就行(没说重写的是输出的,返回字符串的就可以这样做)科学家的奖金也是不确定的,要自己动态去改。
2024-11-25 21:33:01
249
原创 零钱通小项目里的Java技巧
可以输出换行,并且没有长度限制(不像数组有固定长度!学东西经常会遇到还没学到但是用起来不太需要理解的东西就先用着。这是一般的做法,直接在while里面判断。一个代码块只完成一个任务。
2024-11-22 18:56:41
158
原创 编程思想)
一开始用的是 int[ ][ ]偷的values[ ][ ],后面莫名觉得Tile[ ][ ]更加方便,就用了。后来发现,Borad里面的move(int col ,int row,Tile tile)方法要实时的Tile,但是迭代器是按一定顺序的。Board里面的tile()方法!一开始是按照迭代器的顺序,强硬的凑,凑出来了一些答案,迭代器加上merged数组虽然可以防止二次merge,但是却 不能阻止后面的先合并(直接传去tile)后来右发现,move()方法只是改变了类的引用。
2024-11-02 14:37:42
291
原创 Java思想
当我在写镂空的标志时想到了是j循环在控制*的输出,所以以j的数值为依据,1和最有一个数字的j才打印*符号。这很好地展现了数学中代数学的控制思想,没想到在计算机中也有。当我们要修改程序使得它更加符合需求的时候不妨这样一步一步来拆解程序。这样就能更加清楚地了解如何解决问题。再写了加入空格的实心金字塔程序,最后写了这个镂空的金字塔。然后写了输出靠墙的1到n,n排n个的*符号输出程序。一步一步拆解需求,先写死的再写活的。首先我只是写了个输出一个*的程序。学习韩老师的java课程。
2024-11-01 17:24:08
278
原创 善于运用网络信息
但是照着做,克隆不了仓库,问了AI,AI也不会,以为完蛋了。难过了好一会,想到去查网络,去找真人。想要学CS61B,做作业,卡在这里。去网上搜,知乎还有遗产。又出问题了,又上网查了。
2024-10-26 18:47:37
226
原创 学习《啊哈,算法!》的时候的感想
就比如说我在大一看的书里面写的——写代码之前可以写一下流程图,大一升大二的暑假自学算法,我最初看代码老是错误,便想起来减少代码错误的一种大佬用的方法,写代码之前先想明白来怎么写,如何落实。但是其实提前想好相当于做了一遍了,这时候我想起来了流程图这个方法(我之前就试过流程图的方法,我当时以为这样十分麻烦,把写代码的任务给抢了),只有这个高强度的思考辅助工具可以解决我的问题。开始很慢,后面熟了,流程图、代码写的就十分的快了,有的时候甚至不需要流程图了。方法,看完要想一想怎么用到学习中来。
2024-10-07 23:19:41
436
原创 关于计算机算法设计方法的思考
想成男女配对,除了最开始最容易想到的列举全部情况的方法,我们其实还可以就是如“啊哈算法”里面描述的那样,给出一个情景。这时就可以多余的人去找有伴的人,问他能不能去找自己另外的熟人。相反的是我认为这反而是设计的根本。人能思考的逻辑问题计算机一般都可以实现,重要的是如何把问题掰碎扔给计算机解决。但是我们只要能让多余的人去找有伴的人,问他能不能去找自己另。只要配对的人中有一个人能找到自己一个没人配对的可以配对的伴侣就可以了。暴力枚举其实一般人人最开始想到的也是这个,而不是计算机的独有的。关注最后配对的情况。
2024-10-01 12:40:35
253
原创 排序算法的理解
计算机不能直接继承不等式的传递性特征,这个时候才用递归调用去人为的分成不同的部分。或者说,一部分已经大致排序好的数放在一边,另外一边再排。排序算法借鉴了数学里面的不等式的思想。
2024-10-01 08:16:03
386
原创 汉诺塔的理解
一张牌的时候放在C区域,2张若第一张放B区域了,2张的第二张就是C区域了,B区域的那张牌只能放在C区域的第一张牌上面了,不然就只能按大到小给放回牌堆了,或者无意义的乱。(还可以这样解释,堆起来空起来的位置可以是要目标大盘放置的位置,只是没有物理的把盘子给交换,所以只需要调整位置即可,圆盘 A B C,C堆起来了,把B和C交换位置A C B,如果不看标记,把A的牌堆第一张牌放到大盘B上,C再借A再放一次自己的造型到B上,就是牌堆数量为n + 1的情况了)两张牌则是B区域开始,三张又是C区域开始了。
2024-09-25 17:58:01
377
原创 减少代码错误的方法
这也是看似是,而实际上,你若去举个例子很快就能发现问题。等价是需要证明的,而不是想当然的以为然就可以的。就如下面这个求割点的。
2024-09-20 14:40:30
351
原创 C语言字符录入的一些问题
在这个例子中,当 i 等于 2 时,break 语句会被执行,循环会立即结束。因此,i++ 在最后一次迭代中不会被执行,但循环会在 i 等于 2 时提前终止,所以实际上 i 的最终值将是 2。
2024-08-20 08:45:27
232
原创 还是解救小哈但是bfs
但是我发现自己老早之前试验了几个很近的点(给的标准输入和输出的改动下)都是对的,我就觉的是把墙算进去了,因为按照数学归纳法的启示,这应该像多米诺骨牌一样证明正确性的,毕竟直接判断对错都是正确的,唯一特殊的可能就是比较近的地方没有墙壁。还有这提示我即使前面几个是对的最后答案是错的也有可能是从一开始就是错的。后来printf输出结果的方法才找对了问题的关键所在。这次用了之前总结的经验果然得到了很大的解决,只有。
2024-08-16 15:16:22
477
原创 变量的注意或许需要调试
错误类型还是一样的,还是要多练。另外就是变量值这里,举例子的时候可能也只是逻辑上的,而忽视了具体的,最好把变量的值的变化写下来或者使用IDEL的debug功能。输入一个自然数N(1
2024-08-13 10:27:12
212
原创 一些错误(凑字数)
原本想减枝的,但是忽略了逻辑上就是减去所有的数的“笔画”(前期没思考完整,随随便便画一下就完了)后来边做边“优化”就出现了这样的问题。这里也是,本来是break的,就是前期规划没做好,做的的时候想不到全局,于是就以为break就对了,其实只有i 和j最开始的break是对的,这里的是continue才对,继续到后面的。等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0)只有一行,表示能拼成的不同等式的数目。
2024-08-11 13:58:56
499
原创 在写代码时的一些错误(2)
由于我的设计是这样,所以和第一个和stk1.data[1]相同的数才会出现这种情况。这个操作里面的可能错误的部分(如果两个(if else)都有就不知道是谁的问题了)这里面的问题,但是我没有看出来,所以动用了printf打印结果的方式来检查错误。突然发现这里的5直接跑到栈里面了,本来收完一轮牌后是到2号线出牌了。stk1.top --导致stk1.top == 0,所以启动了。因为5是收完牌给出去的 stk.top搜索到1的位置的时候。看了这么多问题——其实都是临界值问题。放牌的顺序调整过来了后。
2024-08-04 14:58:39
381
原创 在写代码时的一些错误
我的本意就是tail放在head的后面先,再在给q1.data[head]赋值的过程中tail,然后我用i来了个等效替代,毕竟head走不开,但是我忽略了第一次head在的位置就是没有的,赋值进去的时候,这个时候tail更不需要走。这样的错误后面还有。这是正确的代码(1 1 1 1 1 1 1 1 1 1 1 1这样的例子当然会死循环 ),但是刚写出来的时候却有十分多的错误。也是忽略了第一次的空栈是要先录入的,stk1.top不需要移动。我想别的情况去了结果把这个情况——把回收的牌给放回自己牌堆的情况。
2024-08-04 14:16:35
242
原创 一个题目多用几个解法可能会领会新的东西
乍一看桶排序法去重很难,但是若是先学过桶排序法,这里试图运用桶排序法就容易些。如果想到的话一定要积累。一个题目多用几个解法,反而会更好。可以领会这个方法的其他优点。全凭名词搜索会很累的。
2024-07-29 18:26:36
169
原创 Eclipse的一些使用
The local variable XXX may not have been initialized意思是该变量没有进行初始化,解决这个错误就是赋初值。原因是if判断会阻隔。
2024-07-27 11:07:52
490
原创 做好程序前设计
这里aa[12]=a[12]-'0';即使aa[12]='X'-'0'==40;((sum - (--k)*aa[12])%11)有X的时候也根本不需要,因为for(i=0;一定一定一定要想好之后再动手!
2024-06-16 20:33:10
476
原创 如何纠错?
看起来没什么问题 但是如果自己代入3 、7就可以知道第一个满足后但是n变了,要经过第二个if判断这时就坏菜了。解决方法就是在每个括号里加上return;但是这个函数的if外面必须要有一个return 所以删掉。或者删掉后面两个if直接在输入之前对数据进行判断。
2024-06-06 20:13:19
213
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅