摘要: Description 题目描述: 在一个二维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。小y在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在,小y想从A点走到D点,请问他最少需要走多长时间。 输入格式: 第一行是4个整数,表示A 阅读全文
posted @ 2019-08-27 22:27 ezoi_ly 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 三分法 三分法一般用来求某一个单峰函数的最值。 和二分的区别 二分是要求某个问题满足单调性,只有这样才可以二分。 也就是说:二分法是适用于单调函数的,而三分法则适用于单峰函数。 实现:给定上下界,每次将上下界这个区间平均分成三份,取两个三等分点比较,并缩小范围。 代码: cpp while(r l 阅读全文
posted @ 2019-08-27 22:12 ezoi_ly 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 区间操作考虑用线段树维护。 建$n 2$棵线段树,前$n$棵线段树维护每个串的第i位是否是0。 后$n$棵线段树维护每个串的第i位是否是1。 如果是问号的话,直接跳过就好(通过1和0能看出是否是问号)。 然后分三种情况统计答案: 1.有1也有0,不可能,$ans=0$ 2.只有1或0,一种情况,$a 阅读全文
posted @ 2019-08-25 21:29 ezoi_ly 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 如何构造一个prufer序列? 我们给一棵无根树的节点编上号,每次找到一个编号最小的度为1节点,删除它,并输出与它连接的点的编号,直到只剩下两个节点。 这样,我们就构造出来了一个prufer序列。 通过prufer序列的构造方式我们可以知道: 性质1:一棵节点数为n的树的prufer序列的长度为n 阅读全文
posted @ 2019-08-23 16:52 ezoi_ly 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 考虑两种情况: 1.$a_1$$a_2$ $a_3$ $a_4$... $a_n$ 初一的一道绝对值题是这题的弱化版。 给定$a_1$,$a_2$...$a_n$,求一点x,使得$abs(a_1 x)$+$abs(a_2 x)$...+$abs(a_n x)$值最小 直接求中位数即可(初一的知识—— 阅读全文
posted @ 2019-08-22 20:46 ezoi_ly 阅读(123) 评论(0) 推荐(0) 编辑
摘要: Description 【题目描述】 给定一个长度为n的由['0'..'9']组成的字符串s,v[i,j]表示由字符串s第i到第j位组成的十进制数字。 将它的某一个上升序列定义为:将这个字符串切割成m段不含前导'0'的串,切点分别为k1,k2...km 1,使得v[1,k1] define mod 阅读全文
posted @ 2019-08-22 17:06 ezoi_ly 阅读(108) 评论(0) 推荐(0) 编辑
摘要: Description Alice有 n(n≤26) 张牌,牌上分别标有前 n 个英文小写字母。例如,如果 n=3 ,则Alice有3张牌,分别标有"a", "b", "c" 。Alice可以通过排列这些卡牌来构造字符串 t 。考虑字符串 t 的所有子串(共 n(n+1)2 个),按照字典序从小到大 阅读全文
posted @ 2019-08-20 20:30 ezoi_ly 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 这题合并栈让我们想到了左偏树。 我们可以维护val值为时间,dis值为size的左偏树,定义两个根root1和root2,表示两个栈的栈顶,建大根的左偏树。 接下来的插入,删除,两个栈合并都是左偏树的基本操作,直接写即可,代码里有注释。 cpp include define maxn 100001 阅读全文
posted @ 2019-08-19 16:35 ezoi_ly 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 就是一模板题。 合并就直接merge。 pop就是将自己的值设为一,再将自己的左右儿子合并即可。 查询直接找到堆顶,输出。 "模板左偏树" 代码: cpp include using namespace std; int dis[1000001],ch[1000001][2],fa[1000001] 阅读全文
posted @ 2019-08-19 16:20 ezoi_ly 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 一、左偏树的性质 左偏树,又称可并堆,所以他有堆的性质。 定义几个量:$val$表示该节点的值,$fa$表示该节点的父亲,$ch[2]$表示该节点的两个儿子(因为他是二叉树),$dis$表示这个节点到离他最近的叶子节点的距离。 性质一:该节点的val不大于该节点左右儿子的val 证明:堆。 性质二: 阅读全文
posted @ 2019-08-19 15:21 ezoi_ly 阅读(204) 评论(0) 推荐(0) 编辑