duangsuse::Echo
改造是基本完成(我甚至觉得,以后我可以拿这些插件扩展自己的博客了... 写的时候感到自己的智商反应速度 模拟能力降低了) 开始内容了
笑话:我也是第一次知道还有一种编程方法是拿命去 堆 🤪
这个,我脑子里是一个原型都没有,思路完全乱的,然后暴力 REPL 暴力改 CSS 做出来的... 居然看起来还不那么差
这个,我脑子里是一个原型都没有,思路完全乱的,然后暴力 REPL 暴力改 CSS 做出来的... 居然看起来还不那么差
现在除了 Music player(需要 WebAudio... 和使用数值信号模型的内容,心虚) 和 Reflink preview(我觉得也不太需要,而且它需要我弄什么悬浮窗,HTML/CSS 框架有点大了我根本应付不过来...)
目前准备写点新内容上去
目前准备写点新内容上去
duangsuse::Echo
改造是基本完成(我甚至觉得,以后我可以拿这些插件扩展自己的博客了... 写的时候感到自己的智商反应速度 模拟能力降低了) 开始内容了
很严重的降低,但是我不捉鸡,反正也没用(跑
但是我真的对 Event model, Grid, Box model 很头疼,看起来好像很复杂
以后我再也不敢歧视前端惹... QAQ
以后我再也不敢歧视前端惹... QAQ
duangsuse::Echo
這三小。
不可能,我用了至少八九个小时
打算完整回复之前 drakeet (我找到的已经列在上面了)所有的广播,反正没有字数限制了
絮絮叨叨
duangsuse::Echo
感觉这个色调还不错
其实考虑到 drakeet 的性格我不该在这个东西上纠缠太久(所以我希望他永远不要看到吧,免得难受),可是新内容除了加这里外我不知道该放在哪里了...
我根本无意继续想这个事情,但是我有时候要写点励志(迫真)....
不得不说,他之前的行为真的是很好的负面案例,很难找到第二个啊....
我根本无意继续想这个事情,但是我有时候要写点励志(迫真)....
不得不说,他之前的行为真的是很好的负面案例,很难找到第二个啊....
Forwarded from 神奇的笔记 (神楽坂 立音)
我刚知道如果你的程序是静态编译的话,打包 Docker 镜像时可以直接
FROM scratch 这样不带有任何系统文件..
duangsuse::Echo
最干货的一部分(跑,说起来曾经的 C 语言之父 Ken 怎么还一起开发了 Google 的 Go 啊
duangsuse 的算法不是很好,我看看会不会 Dijkstra... 这还是个 template 不过直觉还是有的,能够看到 link cost, base cost, 路径回溯 什么的
在使用 Dijkstra 算法的时候,你需要一个输入图 (包含
Dijkstra 是经典的 BFS 广度优先搜索算法(这样就不需要太多栈空间),所以我们需要一个 Queue。
Dijkstra 的思路是对每个节点得到从起点最近的路径,然后倒过来回溯
如果利用栈的话,就可以把最短路径铺平在栈上了,不过这里不得不记录比较...
Dijkstra 算法有效于加权(weighted) DAG(Directed Acyclic Graph)
此外,为了能够完成判断寻最短和路径回溯的任务,还需要
+ 一个
+ 一个
当然,其实我应该用
+ 每次从中取出一个 node, 对其所有 target
首先我拿出当前 node 的开销
+ 若 curcost + linkcost(next) < cost(next),则设置 cost(next) = curcost + linkcost(next)
然后加入 BFS 队列
+ 否则,什么都不干,继续(摒弃掉当前可达的非最短 succeeder)...
完全结束时,回溯出路径即可
— 等等,我好像从书上看到了一个例外... 不能不对非当前最短路径的节点 不搜索
我不知道 DFS 和 Dijkstra 对节点开销的计算量是不是一致的,累...
书上说,Dij 是对每个可达节点,都确保计算出了它的最小开销,这样就能保证最终回溯的是最小开销的路径
(书是《算法图解》 不准喷为什么不是 《算法导论》)
实现时好像还有一点: 不能扫描已经扫描过的点,这样用 Flag 副作用即可吧...
在使用 Dijkstra 算法的时候,你需要一个输入图 (包含
Map<Node, List<Pair<Cost, Node>>>, 也可以分开来记录 Cost) 和一个起始节点 Node、一个目标节点 Node
这样我通过 get(startPoint) 就可以拿到接下来能走到下一点的路径,对任何一个 Node 都是如此Dijkstra 是经典的 BFS 广度优先搜索算法(这样就不需要太多栈空间),所以我们需要一个 Queue。
Dijkstra 的思路是对每个节点得到从起点最近的路径,然后倒过来回溯
如果利用栈的话,就可以把最短路径铺平在栈上了,不过这里不得不记录比较...
Dijkstra 算法有效于加权(weighted) DAG(Directed Acyclic Graph)
此外,为了能够完成判断寻最短和路径回溯的任务,还需要
+ 一个
Map<Node, Cost>, 它记录到达节点的最短开销+ 一个
Map<Node, Node>, 它记录最短开销的前驱(succeeder)节点当然,其实我应该用
typealias RouteSelect = Map<Node, Pair<Cost, Node>>
+ 开始时,把 startPoint 加进去,它的开销被置为 0+ 每次从中取出一个 node, 对其所有 target
首先我拿出当前 node 的开销
+ 若 curcost + linkcost(next) < cost(next),则设置 cost(next) = curcost + linkcost(next)
然后加入 BFS 队列
+ 否则,什么都不干,继续(摒弃掉当前可达的非最短 succeeder)...
完全结束时,回溯出路径即可
— 等等,我好像从书上看到了一个例外... 不能不对非当前最短路径的节点 不搜索
0 >6> A这样的话 B 的最短路径就没戏了... 理解不够深刻,这是 Dij 不是那种 每次取最短 (我这个 dfs 的设计是错的... 应该取和才对,但是这样就又弱智了,不如 Dij 的)
0 >2> B
A >1> #
B >5> #
我不知道 DFS 和 Dijkstra 对节点开销的计算量是不是一致的,累...
书上说,Dij 是对每个可达节点,都确保计算出了它的最小开销,这样就能保证最终回溯的是最小开销的路径
(书是《算法图解》 不准喷为什么不是 《算法导论》)
实现时好像还有一点: 不能扫描已经扫描过的点,这样用 Flag 副作用即可吧...
算法实现, 和《算法图解》版本不一样的地方在于,不是
costs.filter { !it.second.walked }.minBy { it.second.cost }, 只有队列自动忽略走过的节点,没有『最便宜』,只是全部队列处理完(虽然在无环的情况下未必得记住哪些已经处理过)