摘要:
突发情况 刚来到座位,开始试机!但是我只定义了个变量同时读入后再输出——发现运行了将近 \(10\) 秒钟左右,还把 Dev-C++ 给卡得未响应了?!想起之前看到学长Winston的 NOIP 游记,这也太类似了吧,赶紧找监考老师换了一台电脑,但是好像还是有点慢,那就算了吧!(后来好像用着用着就好 阅读全文
摘要:
定义 哈希,是一个十分无脑判断某两端字符串相同的方法(当然为了把保守我们也可以使用pb_ds库里的gb_hash_table)。 我通常使用哈希方法是 \(f(x)=f(x-1)\times b+s_x\) 。 转化成多项式形式那也就是: \[f(x)=\sum_{i=1}^{x}s_i\times 阅读全文
摘要:
普通并查集 就是开一个 \(fa[i]\) 数组表示 \(i\) 的祖先节点。 初始化 for(int i=1;i<=n;i++)fa[i]=i,siz[i]=1; //fa[i]初始状态一定是只像自己的,siz[i]:表示 以 i 为根的子树大小 查询 inline int getf(int x) 阅读全文
摘要:
可能在状压dp中运用的会比较多—— 首先直接看代码(再来解释): for(int j=st,t;j;j=(j-1)&st)t=st^j; 其中,st是枚举的集合,j是子集,t是j对于st的补集。但是要注意这个办法没有枚举空集,需要自行处理。 考虑证明一下: 我们分三步,分别证明正确性、不重、不漏: 阅读全文
摘要:
Greedy Division 考虑如果要是的两个人最终的权值和相同,那 \(\sum a_i\) 就得为偶数。 考虑设计 \(f_{i,j,k}\) 表示考虑到 \(1\sim i\),\(A\) 拿了 \(j\) 个,权值和为 \(k\),的方案数。 转移是简单的: \[f_{i,j,k}=f_ 阅读全文
摘要:
打开 NOI Linux 系统后,找监考老师创建共享文件夹,千万不要点更新。 只提供Vim、gedit、VSCode、CodeBlocks、Geany 、Subline Test这五种(如果想看编译运行是否成功,可以用 getdit )。 diff 对比文本 命令: ls:列出当前目录下的文件和文件 阅读全文
摘要:
超级胶水 考虑一开始觉得是dp,但是不会! 先搞三堆 \(a,b,c\),贡献为 \(ab+bc+ac\) 在搞四堆 \(a,b,c,d\),贡献为 \(ab+ac+ad+bc+bd+cd\) \(\dots\) 直接推得答案为:\(\sum_{i=2}^n w_i\times\sum_{j=1}^ 阅读全文
摘要:
大体思想 线段树分治是一种用于解决区间操作和时间点查询的算法。它的主要思想是以时间为下标建立线段树,将在某一时间段内生效的操作记录在线段树上,然后对于某一时间点的查询,可以直接从线段树上得到结果。线段树是一种容易维护区间的数据结构,它通过不断以中点分治区间,形成了 \(log\) 层的树形结构。—— 阅读全文
摘要:
定义 必胜或必胜状态:仅仅考虑当前的状态,不考虑的操作人时,一定必胜或必输 \(a\oplus b\) :\(a,b\) 在二进制下,对位取反。 \[SG(i)=mex{\begin{cases} SG(j) & i\rightarrow j \\ SG(j') & i\rightarrow j' 阅读全文
摘要:
简介 定义一个长度为 \(n\) 的字符串 \(s\),定义 \(z_i\) 表示 \(s\) 和 \(s[i,n]\) 的 \(lcp\)(最长公共前缀),称 \(z\) 为 \(s\) 的 \(Z\) 函数。 朴素算法 暴力枚举,时间复杂度:\(O(n^2)\) 线性算法 我们首先考虑顺次处理 阅读全文