题面:P2596 [ZJOI2006]书架 题解:记录每本书对应的节点编号 普通fhq_treap无法查询一个权值的排名,所以在普通fhq_treap上多记录每个节点的父亲(可加在pushup函数中), 查询时从该节点开始逐步往上跳,记录答案. 其他操作都依附在该排名上. 代码: #include<cstdio> #include<cstring> #include<iostream> #include<cstdlib> using namespace st…
传送门 感觉要死在\(Splay\)里了 orz 这题用\(Splay\)维护这个序列,其中的第\(k\)大点代表这个序列的第\(k\)个数 第一个操作,先把那个数所在的点旋到根,然后把整个根的左子树接到右子树中最小的点,记得\(splay\)维护整棵树 第二个操作类似,把第一个操作反过来就行 第三个本质是两个相邻位置交换值,直接把这个数所在的点和前驱/后继交换值 第四个,把对应的点旋到根,输出左子树大小 第五个,就是整棵树的第\(x\)大点上的值 #include<bits/stdc++.h>…
[Luogu 2596] ZJOI2006 书架 第一次指针写 FHQ_Treap(省选噩梦数据结构)AC 啦! 省选试机写它,紧张过度失败了. 省选 Day 1 考场写它,写挂了. 省选 Day 1 当晚认真复习它,结果 Day 2 并不考. 于是省选后用指针写出来了,开心qwq. 这个题嘛,记录一下每个点对应的指针,顺便维护一下父节点,每次需要的时候,就可以一路向上找到这个点的位置. 就这么简单的呀qwq #include <cstdio> #include <cstdlib>…
P2596 [ZJOI2006]书架 题目描述 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本.由于这些书太有吸引力了,所以她看完后常常会忘记原来是放在书柜的什么位置.不过小T的记忆力是非常好的,所以每次放书的时候至少能够将那本书放在拿出来时的位置附近,比如说她拿的时候这本书上面有X本书,那么放回去时这本书上面就只可能有X-1.X或X+1本书. 当然也有特殊情况,…
P2596 [ZJOI2006]书架 题目描述 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本.由于这些书太有吸引力了,所以她看完后常常会忘记原来是放在书柜的什么位置.不过小T的记忆力是非常好的,所以每次放书的时候至少能够将那本书放在拿出来时的位置附近,比如说她拿的时候这本书上面有X本书,那么放回去时这本书上面就只可能有X-1.X或X+1本书. 当然也有特殊情况,…
[题目链接] https://www.luogu.org/problemnew/show/P2596 平衡树,需支持五个操作: 1. 将某元素置顶:将元素旋到根,然后将左子树合并到该元素的后继 2. 将某元素置底:将元素旋到根,然后将右子树合并到该元素的前驱 3. 将某元素提前/滞后1位:直接与该元素的前驱/后继交换位置及信息 4. 询问指定元素排名:将元素旋到根,输出size-1 5. 询问指定排名元素:在树上find 必须维护每个点的位置,才能对它操作,不然找不到它 #include<bit…
洛谷题目链接:书架 题目描述 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本.由于这些书太有吸引力了,所以她看完后常常会忘记原来是放在书柜的什么位置.不过小T的记忆力是非常好的,所以每次放书的时候至少能够将那本书放在拿出来时的位置附近,比如说她拿的时候这本书上面有X本书,那么放回去时这本书上面就只可能有X-1.X或X+1本书. 当然也有特殊情况,比如在看书的时候突…
思路 一开始写fhq-treap 感觉越写越感觉splay好些,就去splay 然后维护序列 注意前驱后继的不存在的情况 但不用插入虚拟节点(那插入岂不太麻烦) 跑的真慢的一批,splay太多了 错误 好多错误 只好对拍 代码 //这个题用treap似乎小题大做了,所以我用splay #include <iostream> #include <cstdio> #define FOR(i,a,b) for(int i=a;i<=b;++i) using namespace st…
题目描述 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本.由于这些书太有吸引力了,所以她看完后常常会忘记原来是放在书柜的什么位置.不过小T的记忆力是非常好的,所以每次放书的时候至少能够将那本书放在拿出来时的位置附近,比如说她拿的时候这本书上面有X本书,那么放回去时这本书上面就只可能有X-1.X或X+1本书. 当然也有特殊情况,比如在看书的时候突然电话响了或者有朋友…
P1772 [ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪.由于各种因素的存在,有的时候某个码头会无法装卸货物.这时候就必须修改运输路线,让货物能够按时到达目的地.但是修改路线是-件十分麻烦的事情,会带来额外的成本.因此物流公司希望能够订一个n天的运输计划,使得总成本尽可能地小. 输入输出格式 输入格式: 第一行是四…
P2585 [ZJOI2006]三色二叉树 题目描述 输入输出格式 输入格式: 输入文件名:TRO.IN 输入文件仅有一行,不超过10000个字符,表示一个二叉树序列. 输出格式: 输出文件名:TRO.OUT 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. 输入输出样例 输入样例#1: 1122002010 输出样例#1: 5 2 思路: 我们只关心绿色节点的数目,而红色蓝色可以看作无色, 但是对于一个根节点和它的两个儿子,必须有一个绿色节点 按照树形DP的思路,我…
woc, 13年前的ZJOI就这么毒瘤的嘛... 题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=1859 (luogu)https://www.luogu.org/problemnew/show/P2589 题解: 大分类讨论,预处理\(ints[i][j]\)表示碗\(i\)叠在\(j\)上,\(i\)的底部比\(j\)的底部要高多少 然后分类讨论求此数组: (1) \(i\)的下半径比\(j\)的上半径大,则等于\(…
题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪.由于各种因素的存在,有的时候某个码头会无法装卸货物.这时候就必须修改运输路线,让货物能够按时到达目的地.但是修改路线是—件十分麻烦的事情,会带来额外的成本.因此物流公司希望能够订一个n天的运输计划,使得总成本尽可能地小. 输入输出格式 输入格式: 第一行是四个整数n(l≤n≤100).m(l≤m≤2…
BZOJ 1863 lyd口中的夹B递推. 挺妙的解法. 第一个感觉是找到一个最大的相邻的$a_i + a_{i - 1}$就可以了,但是这个想法大概只对了一半,一半的意思是说只有在$n$为偶数的时候才适用,因为只有在偶数的时候,所有数能恰好地被分成两组,两组互不干扰. 奇数的时候就相当于多出了一个$1$,怎么办呢? 显然可以二分答案吧,设$mid$表示当前二分到的颜色的数量. 设$f_i$表示在满足$i - 1$和$i$的限制的条件下,$i$和$1$的颜色冲突的最大个数,再设$g_i$表示这个…
f[a][b][c][i]表示考虑到第i个,第i位用了b个,第i-1位用了a个,此时有将/无将(c=1/0)的情况是否可达. 转移分以下几类: 1.调一个将 f[a][b][1][i]|=f[a][b-2][0][i]; 2.碰 f[a][b][0/1][i]|=f[a][b-3][0/i][i]; 3.杠 f[a][b][0/1][i]|=f[a][b-4][0/1][i]; 4.顺 f[a][b][0/1][i]|=f[val[i-2]-b][a-b][0/1][i-1],其中b打完 注意到…
实在不想调了QAQ... Code: #include <cstdio> #include <algorithm> #include <cstring> #include <string> #include <iostream> #include <map> #define setIO(s) freopen(s".in","r",stdin),freopen(s".out",…
传送门 解题思路 直接爆搜全T..状态数太多了,所以我们考虑贪心+剪枝.贪心:先拿三个连着的,再拿四个一样的,再拿三个一样的,最后拿两个一样的这样的搜索顺序最优,两个的放最后是因为只要这样的一个,三个连着的放开头是因为这样可以照顾到后面很少的情况.这样肯定还是T,我们考虑剪枝,用hash减.考虑如果数据为 12 0 1 0 0 0-. 这样的 ,我们第一种搜的方案是 a[1]里拿三个4,后面发现不行,返回.第二种方案是a[1]拿四个3,发现这两种方案拿完a[1]后 剩下的序列都是0 1 0 0-…
一.简介 Splay(伸展树)是平衡树中的一种.它通过不断将某个节点旋转到根节点的位置,使整棵树仍满足 BST 的性质,并且保持平衡而不至于退化为链. 频繁访问的节点会被移动到离根节点较近的位置,进而获得更快的访问速度. 可以通过均摊复杂度证明,\(n\) 个点,进行 \(m\) 次 Splay 操作,最终的时间复杂度是 \(\mathcal{O}((n+m)\log n)\).证明. 二.基本操作 一些维护的信息: \(rt\) \(tot\) \(fa(x)\) \(lc(x)\) \(rc…
BZOJP1003 [ZJOI2006]物流运输trans 1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4755  Solved: 1977 [Submit][Status][Discuss] Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格…
好,我一直以为书架是splay,然后发现还有个优化DP的书架.妃的书架 蓝书和PPT上面都讲了,应该比较经典吧. 题意: 有n个物品,每个都有宽,高. 把它们分成若干段,使得每段的最大值的总和最小.且每段的总宽度不超过L. n <= 100000 解: 首先有个很显然的DP是f[i] = min(f[j] + max(j + 1, i)), sum[i] - sum[j] <= L 然后如何优化呢?因为有max函数(非线性)所以难以单调队列.把决策打出来发现不单调.无计可施??? 发现当i固定…
题目描述 图书馆有n个书架,第1个书架后面是第2个书架,第2个书架后面是第3个书架……第n-1个书架后面是第n个书架,第n个书架后面是第1个书架,第i个书架上有b[i]本书.现在,为了让图书馆更美观,WZF神牛让蒟蒻SY搬动书架上的书,使每个书架上的书一样多.由于搬动的书可能会很多,所以蒟蒻SY只能将一个书架上的书搬到与其相邻的两个书架上.那么蒟蒻SY最少搬动几本书呢? 输入输出格式 输入格式: 共2行,第1行1个正整数n,第2行n个非负整数,第i个为b[i]. 输出格式: 共n+1行,第1行1…
菜鸡 wxw 的计划(肯定会咕咕咕 12.27 luogu P4244 [SHOI2008]仙人掌图 II(咕咕咕 luogu P4246 [SHOI2008]堵塞的交通 (没有咕! luogu P1848 [USACO12OPEN]书架Bookshelf(不咕! 12.28 一场 cf 虚拟比赛(div.2 rk 18) 一场 cf div.2,用的是小号(i_am_sooke)(rk 20) 题解在这里 sooke 看到我小号的用户名貌似不太开心 qaq 我好菜啊 qaq 12.29 luo…
xml:可扩展标记语言,w3c组织发布的,用于保存有关系的数据,作为配置文件,描述程序模块之间的关系 <?xml version="1.0" encoding="gb2312" standalone="yes" ?> encoding 指定文档的字符编码: standalone 说明文档是否独立,如果 yes 则表示XML文件既不需要DTD文件来验证标记是否有效,也不需要XSL.CSS控制外观显示 元素:由一个标记来定义,包括开始和结…
一.本次总结用到的xml文本 1.    <?xml version="1.0" encoding="UTF-8" standalone="no"?>        <!-- 引进dtd文件的标签 --><!-- <!DOCTYPE 书架 SYSTEM "book.dtd"> -->        <书架>            <书 ISBN="a&…
题目 Source http://www.lightoj.com/volume_showproblem.php?problem=1283 Description You are a librarian. You keep the books in a well organized form such that it becomes simpler for you to find a book and even they look better in the shelves. One day yo…
XML约束有dtd约束和Schema约束两种 dtd约束:可以在xml内部写dtd约束也可以在xml中引用外部dtd文件 book.dtd<!ELEMENT 书架 (书+)>    <!ELEMENT 书架 (书名,作者,售价)>    <!ELEMENT 书名 (#PCDATA)>    <!ELEMENT 作者 (#PCDATA)>    <!ELEMENT 售价 (#PCDATA)> book.xml<?xml version=&qu…
需要通过使用Microsoft Visual Studio 2010.XMLSpy或者eclipse软件来检查校验 文件中有中文,需要存为utf-8编码 book.dtd <!ELEMENT 书架 (书+)> <!ELEMENT 书 (书名,作者,售价)> <!ELEMENT 书名 (#PCDATA)> <!ELEMENT 作者 (#PCDATA)> <!ELEMENT 售价 (#PCDATA)> book.xml <?xml versio…
XML语言(可扩展标记语言W3C):描述一系列有关系的数据,允许自定义标签,它常用作软件配置文件,以描述程序模块之间的关系. XML语法:文档声明,元素,注释(DATA区,特殊字符,处理指令(processing instruction)) 文档声明:声明文档的类型 例如:<?xml version="1.0"?> <?xml version = "1.0" encoding = "gb2312" ?> 乱码问题:XML文…
什么是XML约束? 在xml技术里,可以编写一个文档来约束一个xml文档的写法,这称之为xml约束 2. 为什么要使用xml约束? 参看提示栏 3. xml约束的作用? 约束xml的写法 对xml进行校验 4. 常见的xml约束技术 xml  dtd xml  Schema ------------------------------------------------------------------------- DTD 约束快速入门 dtd ( document type definit…
DTD约束 Book.dtd: <!ELEMENT 书架 (书+)> <!ELEMENT 书 (书名,价格,介绍)> <!ELEMENT 书名 (#PCDATA)> <!ELEMENT 价格 (#PCDATA)> <!ELEMENT 介绍 (#PCDATA)> 为书名设置属性 name(必须) <!ATTLIST 书名 name CDATA #REQUIRED> Book.xml: <?xml version="1.0…