摘要:
嘟嘟嘟 暴力不难想:一种是以每一个骑士为主,一步步向上爬直到死了;一种是以每一个城池为主,统计哪些骑士在这座城池中死了,然后剩下的骑士再转移到他的父亲节点。 考虑优化:因为城池构成了一个树形结构,相对于骑士来说结构比较固定。因此我们想办法优化第二个暴力:每一个节点建一个小根堆,一直弹出堆顶直到堆顶骑 阅读全文
摘要:
嘟嘟嘟 这道题要是直接想正解实在太难了,还得从一些特殊的情况一点点入手。 1.如果ai本身就是递增的,那么令bi = ai即最优解。 2.如果ai严格递减,则b1 = b2 = b3 = ……= bn = 中位数为最优解。这个可以用初中的几何证明:把 |bi - ai| 想象成数轴上两点间距离,那么 阅读全文
摘要:
嘟嘟嘟 人生A了的第一道左偏树题。 题面太长了,概括一下:给定一棵 n 个点的有根树,每个点有两个属性 Ci 与 Li,现在你要指定一个点 R,并在 R的子树内选取若干点(可以选取 R 自己),使得这些点的 Ci 的和不超过 M,而一个选取方案的价值为选取人数 * LR,求选取方案的最大价值。 假设 阅读全文
摘要:
嘟嘟嘟 题目大意:一群牛参加完牛的节日后都有了不同程度的耳聋(汗……),第i头牛听见别人的讲话,别人的音量必须大于v[i],当两头牛i,j交流的时候,交流的最小声音为max{v[i],v[j]}*他们之间的距离。现在有n头牛,求他们之间两两交流最少要的音量和。 首先我们把v[i]从小到大排序,这样扫 阅读全文
摘要:
嘟嘟嘟 二维偏序。 按y排序,在x方向上用树状数组维护前缀和。 因为输入保证排好序了,所以y没什么用。 x可以等于0,所以最好在输入的时候加1,否则会TLE…… 1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 #include< 阅读全文
摘要:
嘟嘟嘟 看到回文串,就想到了manacher。而且这道题只用求长度为奇数的回文串,所以不用添加字符,在原回文串上跑一边即可。 需要注意的是,如果一个回文串的半径是r,那么这个回文串同时也包含了r - 1, r - 2,……1的回文串,因为r表示的是以 i 为回文中心的最长的回文串。于是我们开一个桶, 阅读全文
摘要:
嘟嘟嘟 因为只有三个字符串,所以就有一个比较暴力的做法:枚举这三个串所有排列,然后对于每一个排列,减去这三个串两两的公共部分的长度,更新答案。 求公共部分自然想到kmp:比如s[1]接在s[0]后面,那么我们只用把s[0]和s[1]匹配,把s[1]当做模式串,s[0]当做文本串,当s[0]匹配到头的 阅读全文
摘要:
嘟嘟嘟 题目翻译:有n个数,m个限制条件。每一个限制条件形如:1.x y gt c:表示ax + ax+1 + … +ay > c。2.x y It c:表示ax + ax+1 + …… +ay < c。有解输出“lamentable kingdom”,否则输出“successful conspir 阅读全文
摘要:
嘟嘟嘟 题面:有n条公路一次连接着n + 1个城市,每一条公路有一个堵塞时刻a[i],如果当前时间能被a[i]整除,那么通过这条公路需要2分钟;否则需要1分钟。 现给出n条公路的a[i],以及m次操作。每一次操作:1.C x d:将第x条的堵塞时刻改为d。2.A x y:询问从城市x到城市y的所需时 阅读全文
摘要:
扫描线算是线段树的一个比较特殊的用法,虽然NOIP不一定会考,但是学学还是有用的,况且也不是很难理解。 以前学过一点,不是很透,今天算是搞懂了。 就以这道题为例吧:嘟嘟嘟 题目的意思是在一个二维坐标系中给了很多矩形,然后求这些矩形的总覆盖面积,也就是面积并。 我就不讲暴力,直接切入正题吧。 扫描线, 阅读全文