# crazycloudcc > 算法图解动画、浏览器内 C11 / C++17 Playground 与中文实践笔记。clang / lld 编译为 WebAssembly,程序通过 WASI 在浏览器 Worker 中运行。 这是精选阅读索引,不是完整站点导出。文档由现有公开笔记和课程数据生成;引用时请使用文档内的原文地址。不能访问来源或来源没有说明时,请明确说明未知,不要猜测支持范围。此索引不改变抓取、训练或内容使用权限,也不承诺搜索收录、排名或 AI 引用。 ## 使用与限制 - [在浏览器里编译运行 C++,不用装编译器](https://crazycloud.cc/blog/liulanqi-bianyi-cpp/index.md): 打开就能 Run。clang 在浏览器 Worker 里把 C++ 编成 WebAssembly,无需把源码上传到编译服务器。 - [空 stdin 上 scanf 立刻得到 EOF](https://crazycloud.cc/blog/scanf-stdin/index.md): 输入框空着不是卡住。browsercc 0.1.1 里这段 stdin 是已经给完的文件,scanf("%d") 马上返回 -1。 - [浏览器里 clang 报错怎么读](https://crazycloud.cc/blog/clang-diagnostics/index.md): 四则用 browsercc 0.1.1 实际编译得到的诊断:缺分号、未定义符号、异常被禁用、找不到头文件。 ## 算法图解 索引页:https://crazycloud.cc/learn - [坐标压缩图解:保留顺序,别弄丢长度](https://crazycloud.cc/learn/coordinate-compression/index.md): 用原坐标与压缩秩的双尺动画,看懂端点排序去重、差分事件与区间覆盖长度。压缩保留先后,不保留距离;三格可以代表2、1、5个单位。 - [单调子序列构造图解:块内下降,块间上升](https://crazycloud.cc/learn/monotone-subsequences/index.md): 把连续值分成下降块,用排列散点和真实路径构造max(LIS,LDS)=k;以不同的长度标签解释n≤k²为何必要。 - [线段树图解:把区间拆成可合并的节点](https://crazycloud.cc/learn/segment-tree/index.md): 用二叉区间树看懂区间最小值查询和单点赋值:完整覆盖就取整块,部分相交就继续拆分;沿叶子到根重新合并;另用非负求和树演示 max_right 的整块接受与失败下钻。 - [树状数组图解:把前缀拆成不重叠的块](https://crazycloud.cc/learn/fenwick-tree/index.md): 沿 lowbit 拆分前缀,沿覆盖关系更新;用区间条看懂树状数组的查询与单点增量,连接静态前缀和与动态区间和。 - [差分数组图解:区间加法,只记开始与结束](https://crazycloud.cc/learn/difference-array/index.md): 把整段加法变成两个边界事件,逐格累加还原增量;看懂右端哨兵、重叠更新、负增量与空区间,再用探测器泳道理解覆盖数量为何丢失成员身份。 - [前缀和图解:减去共同前缀,留下区间](https://crazycloud.cc/learn/prefix-sum/index.md): 把两个从零开始的前缀对齐,消去共同项,理解左闭右开区间和 P[r]−P[l];用负数、零和空区间检查边界。 - [最小公倍数(LCM)图解:第一次共同的正落点](https://crazycloud.cc/learn/least-common-multiple/index.md): 让两排倍数共用同一条数值刻度,观察首次共同的正落点;理解为什么先除GCD再相乘,以及三数不能直接照搬乘积公式。 - [两点距离图解:负坐标,为什么仍然用相减?](https://crazycloud.cc/learn/coordinate-distance/index.md): 在等尺度坐标平面中改变两点,用水平与竖直辅助线区分有向变化和非负长度;通过交换、平移与退化例子推导两点距离公式。 - [最大公约数(GCD)图解:把余数留在画面里](https://crazycloud.cc/learn/euclidean-algorithm/index.md): 在原矩形里逐轮切去正方形,让余数成为下一块矩形;用统一砖网格与双向整除推导理解欧几里得算法。 - [弧度(Radians)图解:一段弧,有几个半径长?](https://crazycloud.cc/learn/radians/index.md): 改变圆的半径与圆心角,把同一段弧连续展开成直线;用弧长与半径的比值理解弧度,分清单位圆上的数值相同与物理量不同。 - [相似三角形(Similar Triangles)图解:路灯下,影长和距离怎样变化?](https://crazycloud.cc/learn/similar-triangles/index.md): 从路灯、人和影尖组成的两个直角三角形出发,标出对应角与边,连续放大重合,推导影长公式;分清影长和影尖的位置。 - [二分查找(Binary Search)图解:窗口怎样缩小](https://crazycloud.cc/learn/binary-search/index.md): 逐步观察 lo、hi、mid,比较正确更新与窗口停滞,区分未命中和死循环。 - [最长递增子序列(LIS)图解:替换结尾,还是延长](https://crazycloud.cc/learn/longest-increasing-subsequence/index.md): 一步一格观察 tails,切换严格递增与非下降,理解相等元素为何不能延长严格 LIS。 - [二分答案(Binary Search on Answer)图解:最早什么时候够用?](https://crazycloud.cc/learn/binary-search-on-answer/index.md): 拖动时间,看并行机器完成产品、产量阶梯跨过需求线;再让二分窗口逼近第一个可行时刻,理解为什么先证明单调性。 - [勾股定理(Pythagorean Theorem)图解:四块三角形,拼出平方和](https://crazycloud.cc/learn/pythagorean-theorem/index.md): 移动同样的四块直角三角形,比较 c² 与 a² + b² 两种剩余面积;从 3、4、5 的例子理解勾股定理,并用 60° 反例认清适用条件。 ## 在线小工具 索引页:https://crazycloud.cc/tools - [JSON 格式化与校验](https://crazycloud.cc/tools/json): 在浏览器里格式化、压缩并校验 JSON。输入不上传服务器。 - [Base64 编码 / 解码](https://crazycloud.cc/tools/base64): 文本与 Base64 互转。编码解码均在浏览器本地完成。 - [URL 编码 / 解码](https://crazycloud.cc/tools/url): 对查询串或整段文本做 encodeURIComponent / decodeURIComponent。 - [SHA 哈希计算](https://crazycloud.cc/tools/hash): 用 Web Crypto 计算 SHA-256 / SHA-384 / SHA-512。明文不离开本机。 - [UUID v4 生成](https://crazycloud.cc/tools/uuid): 批量生成 UUID v4(crypto.getRandomValues)。 - [Unix 时间戳转换](https://crazycloud.cc/tools/timestamp): 秒/毫秒时间戳与本地时间、UTC 互转。 - [C/C++ 在线编译器](https://crazycloud.cc/playground): 浏览器内 clang 编译 C11 / C++17 为 WebAssembly,支持 stdin、诊断信息与分享链接;源码在本地编译,不上传服务器。 - [紫微斗数在线排盘](https://crazycloud.cc/ziwei): 公历与农历、真太阳时校正,查看十二宫星曜、四化与大限流年;排盘在浏览器本地完成,出生资料不上传。 - [PHP2Shell 被动检测](https://crazycloud.cc/security-checker/php2shell): 对你有权测试的站点发起一次普通 GET,根据公开响应判断 PHP 版本是否偏旧;不发送 exploit,不替代漏洞扫描。