luoguP4715 [英语]Z语言 平衡树+hash】的更多相关文章

显然只能有$hash$来做.... 我们需要一个东西来维护$\sum i * seed^{rank[i]}$ 很自然地联想到平衡树 如果以序列下标建立一棵平衡树,那么无法处理 因此,可以以权值为下标建立一棵平衡树,把$rank[i]$拆分成若干个$sz[ls] + 1$即可维护 具体而言,记$pos[i]$表示$i$号节点的位置,$sum[i]$表示平衡树中$i$号节点的子树形成的$hash$值 那么,$sum[i] = pos[i] * seed^{sz[ls] + 1} + sum[ls]…
(Z语言基于.NET环境,源码中有很多高技术的代码,让更多的人知道对大家有会有很好的帮助,请管理员一点要批准放在首页) 本人实现的中文编程语言Z语言现在正式开源,采用LGPL协议. 编译器核心的网址为: https://github.com/TKT2016/ZCompileCore 以后还有把其它项目放上来. 编译生成的是.NET CLR文件. 这个语言完成需要的工作量很大,期待你的加入. 交流QQ群:362762284 我的邮箱:TKT2016@21cn.com 语言简单展示: 简略使用:控制…
原文: https://zhuanlan.zhihu.com/p/31505895. 作者为本人. @TKT2016 开发的Z语言(ZLOGO是它的一个部分)是本人至今看到的唯一一个仍活跃开发的开源且比较完整的中文编程语言项目. 它的源码在TKT2016/ZLanguage3. 此文从用户角度尝试一下ZLOGO的功能, 并记录一些过程中的发现. 首先上一个看完教程后自己写的螺旋方块演示. 源码附在最后. 以下是官网的说明: LOGO语言创始于1968年,是美国国家科学基金会所资助的一项专案研究,…
"中文编程"知乎专栏原文. 作者为本人. @TKT2016 开发的Z语言(ZLOGO是它的一个部分)是本人至今看到的唯一一个仍活跃开发的开源且比较完整的中文编程语言项目. 它的源码在TKT2016/ZLanguage3. 此文从用户角度尝试一下ZLOGO的功能, 并记录一些过程中的发现. 首先上一个看完教程后自己写的螺旋方块演示. 源码附在最后. 以下是官网的说明: LOGO语言创始于1968年,是美国国家科学基金会所资助的一项专案研究,在麻省理工学院(MIT)的人工智能研究室完成.…
只能说自己见识短,头一次听说Z语言.先普及一下吧: Z语言是由牛津大学程序设计研究小组开发的一种形式语言,它是一种以一阶谓词演算为主要理论基础的规约语言,是一种功能性语言.Z语言是将事物的状态和行为用数学符号形式化表达的语言,为编写计算机程序和验证计算机程序的正确性提供依据,是软件工程中编码之前的规格说明语言. 形式化描述语言Z指的是著名数学家Zermelo,它是目前使用最广泛的一种形式化描述语言,在软件产业的一些大型项目中已经获得成功的应用,Z以带等词的一阶谓词逻辑ZF(Zermelo-Fra…
luogu description 你有一个长度为\(n\)的串\(A\)和一个长度为\(m\)的串\(B\),字符集大小\(2^{31}\),且同一个串中没有相同的元素. 定义\(B\)串与\(A_{i...i+m-1}\)匹配(\(1\le i \le n-m+1\)),当且仅当\(B\)串对应的排列与\(A_{i...i+m-1}\)对应的排列完全相同. 一个串对应的排列就是把串的每个元素的值替换成它在这个串中从小到大的\(Rank\).由于不存在相同的元素,所以这样子一定会得到一个排列.…
题解: 平衡树维护hash值 为了支持加入删除操作 x*base^y 其中y为他是第k大 同一般的维护方法,我们不用对每个节点维护他的hash值 而是只用记录他的x值(他的位置) 然后通过updata的时候维护 很神奇的一点是 我用了mo数就炸了... 直接自然溢出就好了...应该是哪里正负没处理好.. 另外还wa了一个点.. 代码: #include <bits/stdc++.h> using namespace std; #define ll long long ; ; ll n,m,q,…
这个操作十分的复杂 但是可以拿平衡树维护 直接二分答案然后用$hash$值判断即可 复杂度$O(10000 * log^2 n + n \log n)$ #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define ri register int #define ull unsigned long long #define rep(io, st, ed) fo…
之前的安装程序默认语言为英文,现在我们需要将它变成中文,由于InnoSetup安装包中默认没有带中文语言文件,我们需要下载一个先: 到http://www.400gb.com/u/758954/12357342,下载ChineseSimplified.isl文件,并把它放到InnoSetup安装目录中的Languages子目录中, 如果要同时支持英文和简体中文,只要加入英语的语言文件即可: [Setup] AppName=MySetup AppVersion=1.0.0.0 DefaultDir…
50条忠告:(其中有几条觉得写的不够贴切,所以删了,发了余下的部分) 1.把C++当成一门新的语言学习: 2.看<Thinking In C++>,不要看<C++变成死相>: 3.看<The C++ Programming Language>和<Inside The C++ Object Model>,不要因为他们很难而我们自己是初学者所以就不看: 4.不要被VC.BCB.BC.MC.TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言: 5.不…