摘要: kmp 以前觉得好难,现在感觉好简单。再次梳理一下。 首先构造next数组用来代表前缀重复最大的长度。如果prelen和i的字符相等那么直接next[i]=prelen+1,同时i和prelen递增;如果不相等,prelen是0直接加入0;如果不是0,那么取next[prelen-1]也就是避免重复 阅读全文
posted @ 2025-07-31 17:49 .N1nEmAn 阅读(7) 评论(0) 推荐(0)
摘要: 模拟队列 清晰明了。 #include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; int main() { ios::sync_with_stdio(false) 阅读全文
posted @ 2025-07-26 10:30 .N1nEmAn 阅读(9) 评论(0) 推荐(0)
摘要: 模拟栈 太ez #include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; int main() { ios::sync_with_stdio(false); c 阅读全文
posted @ 2025-07-25 15:17 .N1nEmAn 阅读(7) 评论(0) 推荐(0)
摘要: 我看了下其他人的wp,单链表维护一个呀把头节点会更好,双链表就是两个头尾。 单链表 这道题目做到吐血。一定要做好注释,不要把1和0都写不对。 #include <iostream> #include <cstring> #include <algorithm> using namespace std 阅读全文
posted @ 2025-07-24 20:20 .N1nEmAn 阅读(8) 评论(0) 推荐(0)
摘要: 离散化 给出x和c在数轴上赋值,给l和r求区间和。 #include <iostream> #include <cstring> #include <algorithm> #include <vector> #include <climits> using namespace std; int ma 阅读全文
posted @ 2025-07-24 15:50 .N1nEmAn 阅读(10) 评论(0) 推荐(0)
摘要: 最大不重复数组 学习了新的语法,主要是vector<int>。 emm,这个的原理很简单,就是用左右两个指针和维护一个最后出现位置数组。如果发现最后出现位置不是-1,那么去和左指针比较,如果左指针小就更新。 #include<iostream> #include<vector> using name 阅读全文
posted @ 2025-07-23 18:04 .N1nEmAn 阅读(7) 评论(0) 推荐(0)
摘要: 求二进制中的1。 突然发现得转c++ #include<iostream> using namespace std; int Countone(long long x){ int res=0; while(x){ res += x & 1; x = x >> 1; } return res; } i 阅读全文
posted @ 2025-07-22 17:27 .N1nEmAn 阅读(8) 评论(0) 推荐(0)
摘要: 前缀和 第一次写的时候,是想直接线性加起来。结果超时,因为是O(m*n): 然后直接跟豆包学了一下,就是把全部先加起来,这个区间的和就是presum[rp-1]-presum[lp-2] #include<stdio.h> int n,m; int P[100100]={0}; int presum 阅读全文
posted @ 2025-07-21 20:58 .N1nEmAn 阅读(16) 评论(0) 推荐(0)
摘要: 作者:S3vn & Gemini 时间:2025年6月26日黄昏,至 6月27日深夜,跨越数个“重启”纪元 地点:一台全新的 ThinkPad X1 Nano Gen 1,与无尽的命令行终端 序章:指纹的诱惑与 PAM 的诅咒 故事始于一个寻常的黄昏,空气中弥漫着新设备特有的塑料与金属的混合气息。S 阅读全文
posted @ 2025-06-27 22:18 .N1nEmAn 阅读(98) 评论(0) 推荐(0)
摘要: 在这里有预览和配置和教程,直接看就完事儿了! 阅读全文
posted @ 2025-06-27 04:34 .N1nEmAn 阅读(7) 评论(0) 推荐(0)