08 2019 档案
摘要:Description 题目描述: 在一个二维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。小y在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在,小y想从A点走到D点,请问他最少需要走多长时间。 输入格式: 第一行是4个整数,表示A
阅读全文
摘要:三分法 三分法一般用来求某一个单峰函数的最值。 和二分的区别 二分是要求某个问题满足单调性,只有这样才可以二分。 也就是说:二分法是适用于单调函数的,而三分法则适用于单峰函数。 实现:给定上下界,每次将上下界这个区间平均分成三份,取两个三等分点比较,并缩小范围。 代码: cpp while(r l
阅读全文
摘要:区间操作考虑用线段树维护。 建$n 2$棵线段树,前$n$棵线段树维护每个串的第i位是否是0。 后$n$棵线段树维护每个串的第i位是否是1。 如果是问号的话,直接跳过就好(通过1和0能看出是否是问号)。 然后分三种情况统计答案: 1.有1也有0,不可能,$ans=0$ 2.只有1或0,一种情况,$a
阅读全文
摘要:如何构造一个prufer序列? 我们给一棵无根树的节点编上号,每次找到一个编号最小的度为1节点,删除它,并输出与它连接的点的编号,直到只剩下两个节点。 这样,我们就构造出来了一个prufer序列。 通过prufer序列的构造方式我们可以知道: 性质1:一棵节点数为n的树的prufer序列的长度为n
阅读全文
摘要:考虑两种情况: 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)$值最小 直接求中位数即可(初一的知识——
阅读全文
摘要:Description 【题目描述】 给定一个长度为n的由['0'..'9']组成的字符串s,v[i,j]表示由字符串s第i到第j位组成的十进制数字。 将它的某一个上升序列定义为:将这个字符串切割成m段不含前导'0'的串,切点分别为k1,k2...km 1,使得v[1,k1] define mod
阅读全文
摘要:Description Alice有 n(n≤26) 张牌,牌上分别标有前 n 个英文小写字母。例如,如果 n=3 ,则Alice有3张牌,分别标有"a", "b", "c" 。Alice可以通过排列这些卡牌来构造字符串 t 。考虑字符串 t 的所有子串(共 n(n+1)2 个),按照字典序从小到大
阅读全文
摘要:这题合并栈让我们想到了左偏树。 我们可以维护val值为时间,dis值为size的左偏树,定义两个根root1和root2,表示两个栈的栈顶,建大根的左偏树。 接下来的插入,删除,两个栈合并都是左偏树的基本操作,直接写即可,代码里有注释。 cpp include define maxn 100001
阅读全文
摘要:就是一模板题。 合并就直接merge。 pop就是将自己的值设为一,再将自己的左右儿子合并即可。 查询直接找到堆顶,输出。 "模板左偏树" 代码: cpp include using namespace std; int dis[1000001],ch[1000001][2],fa[1000001]
阅读全文
摘要:一、左偏树的性质 左偏树,又称可并堆,所以他有堆的性质。 定义几个量:$val$表示该节点的值,$fa$表示该节点的父亲,$ch[2]$表示该节点的两个儿子(因为他是二叉树),$dis$表示这个节点到离他最近的叶子节点的距离。 性质一:该节点的val不大于该节点左右儿子的val 证明:堆。 性质二:
阅读全文
摘要:Roma 在游戏“World of Darkraft”(理论上应该是 World of darkcraft,MineCraft 的一个版本)找到一个新角色。 $\mathrm{Roma}$ 有 k种装备,一开始每种装备各有 1个,且每种装备的初始等级均为 1。 游戏中可以靠打怪来获取新装备,总共有
阅读全文
摘要:Description 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程。 在可以选择的课程中,有 2n 节课程安排在n个时间段上。在第 i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室 ci 上课,而另一节课程在教室 di 进
阅读全文
摘要:Description YYF是一个英勇的侦查员。现在他正在执行打入到敌方内部的危险任务。在解决了一系列的险情后,YYF到达了敌方著名的"地雷路"起始点。这条路非常长,上面被精心排布了不少地雷。一开始,YYF站在1的位置。对于后面的路程,YYF有p的概率向前走一步,或者有1−p的概率向前跳两步。现在
阅读全文
摘要:关于有向图强联通分量 摘自百度百科: 有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大
阅读全文
摘要:我们可以记录头和尾再加一个卖了的零食数目,如果头超过尾就return 0。 如果遇到需要重复使用的数,(也就是不为零的d数组)就直接return d[tuo][wei]。 如果没有,就取卖头一个与最后一个的最大值,并记录下来。 代码也有注释,具体可以自己看。 cpp include using na
阅读全文
摘要:```cpp include include include using namespace std; struct data { long long wei,time,tot; }a[100001]; long long n,m,sum,ans,head; bool cmp(data a,data
阅读全文
摘要:Description 考虑一个 N×M 的网格,每个网格要么是空的,要么是障碍物。整个网格四周都是墙壁(即第1行和第n行,第1列和第m列都是墙壁),墙壁有且仅有两处开口,分别代表起点和终点。起点总是在网格左边,终点总是在网格右边。你只能朝4个方向移动:上下左右。数据保证从起点到终点至少有一条路径。
阅读全文
摘要:Description 给你一个无限长的数组,初始的时候都为0,有3种操作: 操作1是把给定区间[l,r] 设为1, 操作2是把给定区间[l,r] 设为0, 操作3把给定区间[l,r] 0,1反转。 一共n个操作,每次操作后要输出最小位置的0。 Input 第一行一个整数n,表示有n个操作 接下来n
阅读全文
摘要:Input Output Input Output HINT 原式 =n m n除以i向下取整 用数论分块做就可以了 cpp include define mod 1000000007 using namespace std; long long ans; long long n,m; int ma
阅读全文
摘要:这题应该算是比较难的一道网络流的题,(但却在我校OJ考试上出现了),但是大家只要能理解此图的建边方式就行。 假设有5天的租车需求,虚拟出2 n+2 即 12个节点,0为源点,12为汇点。 1,源点到1 2 3 4 5流量为r[i],费用为0。6 7 8 9 10到汇点流量为r[i n],费用为0。
阅读全文
摘要:双栈+AC自动机 这题其实跟一道KMP算法的题有一些渊源,它就是这道题的简单板。 Clear: 给你两个串A,B,每次在B串中从左到右找串A,并将该子串删除,直到找不到为止,问你能删几次。 样例输入: abc abcabcabaabcbccc 样例输出: 5 思路: 开一个栈,每次放入被匹配字符串的
阅读全文
摘要:Problem A: 贪吃蛇 描述 Input Output Sample Input 【样例输入1】 【样例输出1】 4 【样例输入2】 【样例输出2】 6 【样例输入3】 【样例输出3】 1 这道题就是一个简单的广搜,储存蛇头位置,步数和蛇的身体的各个部分的位置。注意,要关照一下蛇不能越过自己的
阅读全文

浙公网安备 33010602011771号