摘要:writer注: 这里的板子,不止是算法和数据结构的板子,还包括各种预处理、代码技巧等。 OI比赛中, 以做题来得分。 所给时间通常不多,很容易死在一道题上。 不考虑开题顺序以及拿分意向, 做一道题目的步骤一般分解为 思考、 编写、 验证(对拍)。 不考虑验证的时间, 通常思考占的时间较多,这时就需 阅读全文
posted @ 2019-09-08 19:31 口昭寿 阅读 (13) 评论 (3) 编辑
摘要:```cpp //遞歸法求中綴表達式的值 int calc(int l,int r) { for(int i=r,j=0;i>=l;--i) { if(s[i]=='(') ++j; if(s[i]==')') --j; if(j=='0'&&s[i]=='+') return calc(l,i-1)+calc(i+1,r); if(j=='0'&&s[i]=='-') return calc(l 阅读全文
posted @ 2019-08-13 18:16 口昭寿 阅读 (31) 评论 (0) 编辑
摘要:題目描述: 达达是一名漫画家,她有一个奇特的爱好,就是在纸上画括号。 这一天,刚刚起床的达达画了一排括号序列,其中包含小括号( )、中括号[ ]和大括号{ },总长度为N。 这排随意绘制的括号序列显得杂乱无章,于是达达定义了什么样的括号序列是美观的: (1) 空的括号序列是美观的; (2) 若括号序 阅读全文
posted @ 2019-08-13 17:43 口昭寿 阅读 (22) 评论 (2) 编辑
摘要:對奇怪的東西使用“開散列” cpp const int SIZE=100010; int n,tot,p=99991,snow[SIZE][6],head[SIZE],next[SIZE]; int H(int a) { int sum=0,mul=1; for(int i=0;i n; for(i 阅读全文
posted @ 2019-08-13 15:46 口昭寿 阅读 (20) 评论 (2) 编辑
摘要:基本遍歷: dfs求樹和圖的信息 cpp //dfs時間戳 void dfs(int x) { dfn[x]=++cnt; v[x]=1; for(int i=head[x];i;i=next[i]) { int y=ver[i]; if(v[y]) continue; dfs(y); } } // 阅读全文
posted @ 2019-08-13 15:27 口昭寿 阅读 (24) 评论 (0) 编辑
摘要:當然是好基友關係了qwq 算法是處理問題(通過數據獲得新數據)的具體步驟描述 數據結構是數據之間存有一定關係的集合 1、 算法的執行過程中,免不了訪問數據(就算是占卜算命也是這樣哦)。 凌亂的數據,只會拖慢算法的執行速度,這就需要每次訪問的數據有一定的特征。 2、 大多數據結構的程序實現並不簡單,特 阅读全文
posted @ 2019-08-10 10:10 口昭寿 阅读 (29) 评论 (3) 编辑
摘要:一颗k叉Huffman树是如下问题的解: 构造一颗n个叶子节点的k叉树,叶子节点i有权值$w_i$,使得Σ$w_i l_i$最小,其中$l_i$表示叶子节点i到根的距离。 求解使用贪心算法,利用小顶堆维护。 例题:合并果子。 需要注意的一点是,对于k 2的情境,如果最后一轮循环中堆中的节点数不足k个 阅读全文
posted @ 2019-08-03 18:10 口昭寿 阅读 (31) 评论 (0) 编辑
摘要:[TOC] 二进制 读取a的二进制第k位 a k&1 将a的第k位清零 a&=~(1 阅读全文
posted @ 2019-07-17 15:23 口昭寿 阅读 (58) 评论 (3) 编辑
摘要:前排提醒:本文所有代码都可以当做伪代码看,因为我懒得编译。 从https://courses.csail.mit.edu/6.851/spring12/lectures/里找到的技术。 笛卡尔树,可用来查询一维区间最小值(目前我只会这个也只知道这个),方法是求标号为区间左端点及区间右端点的最近公共祖 阅读全文
posted @ 2019-07-11 21:16 口昭寿 阅读 (105) 评论 (0) 编辑
摘要:本地收藏夹伤不起…… https://zh.wikipedia.org/wiki/Template:%E7%AE%97%E6%B3%95 https://courses.csail.mit.edu/6.851/spring12/lectures/ //以上需要翻墙 http://www.csie.n 阅读全文
posted @ 2019-07-11 17:21 口昭寿 阅读 (110) 评论 (1) 编辑
摘要:[TOC] 原题解地址及本文目的 https://ciyang.blog.luogu.org/solution p2580 本文目的:留作日后自用,翻译一下大佬清奇的码风。 正文 Lumpy_Trie是边压缩的Trie, 可以省空间, 各Node存的是字符串。 现在来翻译(解释及 简化 (我是懒癌) 阅读全文
posted @ 2019-06-26 11:41 口昭寿 阅读 (59) 评论 (1) 编辑
摘要:两个互质数的线性组合=1必定有解。 即ax + by = 1 (a、b互质, a > b)。 当x=1,y 的值等于某个数时,ax+by的值为 a%b, 设这个数为z ·若a%b = 1, 原表达式成立; ·若a%b != 1, 则 a + bz = a%b,于是 x *(a + bz) = x * 阅读全文
posted @ 2019-05-15 08:43 口昭寿 阅读 (329) 评论 (0) 编辑
摘要:索引堆: 分为任意类型的数据域 和 整数类型的索引域 可以快速改变已构建好的堆中的元素的值,可以快速交换堆中的元素,普通堆很难做到 主要思想是给每个 原始数据 都 标一个不同的号,相当于把数据压缩,建堆、操作堆时,被操作的只是索引,数据的交换被省略,但 由于索引代表了数据,所以依然可以将 原始数据 阅读全文
posted @ 2019-04-15 21:40 口昭寿 阅读 (76) 评论 (0) 编辑