![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
杭电多校
2020杭电多校题解
尽量在补啦
卷儿~
在校大学生,好撸铁。性别男,爱好女。
个人主页:http://www.wayne-lee.cn/
展开
-
2020杭电多校第六场 1006 Road To The 3rd Building
题目题目大意。在一条直线有n个节点,每个节点有一个权值ai。一段路从某个起点1开始,到右端某个节点b结束(1 ≤ i ≤ j ≤ n),这段路程的价值w为经过点点权的平均值,即:w=∑i=abaib−a+1w=\frac{\sum^{b}_{i=a}a_i } {b-a + 1}w=b−a+1∑i=abai问题为对于这n个节点的路,任意选择两个顶点,其路程价值的期望值为多少?结果对1e9 + 7取模说在前面首先应该分析出来,对于取模下的期望值和平均值,不需要真的计算除法,而是需要原创 2020-08-08 20:22:31 · 282 阅读 · 0 评论 -
2020杭电多校第六场 1006 A Very Easy Graph Problem
题目题目大意:给定一张无向图,图中点分为黑点和白点。对于第i条边,其边长为2i,问所有黑白点之间最短路之和。生成树这个题仔细思考一下,不难发现对于第i条边,有21 + 22 + … + 2i-1 < 2i即前面所有的边权和加起来也没有这一条边这么多,因此当第i条边加入时,可以连通的黑点和白点间产生的路径就是最短路径。如果这条边连接的两个顶点已经连通,则不用加入改点。分析到这里,前面的部分就可以使用并查集直接维护一颗生成树了。接着这个问题就变成了树上统计问题。树上统计生成树过后,问原创 2020-08-06 23:10:13 · 484 阅读 · 0 评论 -
2020杭电多校第六场 1002 Little Rabbit‘s Equation
题目题目大意就是给定T组数据,每组数据一个等式,等式包含一个单次四则运算,问给定等式在几进制下合法,不合法就输出-1.简单模拟这个题目直接模拟即可,进制最大只到16,所以暴力枚举每一种进制不会有任何问题。需要注意的是,最小的可能应该是所有数字字符中最大值+1,例如12+23=56中最大的字符为6,则其中最小可能进制为6,应该从6开始枚举。除此以外需要注意的就是爆int问题,题目中提到等式长度不超过15位所以直接使用long long即可由于java包装类处理字符串转指定进制较为方便,这个题目就是原创 2020-08-06 22:33:34 · 187 阅读 · 0 评论 -
2020杭电多校第四场 1004 Deliver the Cake
题目题目链接题目大意是:给定一张无向有权图,已知其起点和终点,每个节点有方向LR或M。蛋糕每次换手需要一定时间x。在方向为L或R的节点,蛋糕必须在对应的手上,而方向为M的地方则无所谓。问最终从起点到终点的最短路程是多少。拆点+最短路这道题,一步一步的来分析第一步,如果没有对点的方向限制,将会是一个非常简单的最短路问题。现在有了方向限制。第二步,假设当前仅有左右两种方向的限制。那么问题也会变得简单只需要将两端方向不一样的边权加上x,这样就没有了方向限制,跑第一步即可。第三步,考虑到存在方向原创 2020-07-31 17:37:55 · 391 阅读 · 0 评论 -
2020杭电多校第四场 1005 Equal Sentences
题目题目链接题目大意给定一个字符串序列,求其有多少个“几乎相等”的序列。题目中对“几乎相等”的定义为:两个字符串序列中每种单词出现的数量需要相同每种单词的第i个在两个序列中出现的位置相差不能超过1根据这个定义,序列本身就是一个“几乎相等”序列。除此之外,任意交换原序列两个相邻的元素,得到的序列是一个“几乎相等”序列。但是参与交换的两个元素不能相同且其中不能有已经参与过交换的。基于这个规则,我们可以使用dp来进行状态统计。我们设状态 dp[i][0/1]表示前i位的方案数,0代表与上一个原创 2020-07-31 11:41:31 · 234 阅读 · 0 评论 -
2020杭电多校第四场 1007 Go Running Dinic最大流跑二分图匹配
题目题目链接题目大意是这样的:在一条双向的轴上,有若干同学在跑步,每位同学的速度是固定的,都是1单位长度/s。在n个时刻t,位置x上将至少有一个人在跑步,但是方向不确定,仅能确定有人。需要求解的问题就是根据这n个时刻的信息,问能确定最少有多少同学在跑步?二分图匹配首先这个问题,以时间为横轴,位置为纵轴建系x-t图像,将n个数据描点。题目中提到学生跑步有起始时间和终止时间,反映在坐标系上就是一条线段。但是由于题目要求的是最小的学生数量,因此不妨假设学生跑步时间是无限长,且开始的无限早,这反映在原创 2020-07-31 11:18:52 · 485 阅读 · 2 评论 -
2020杭电多校第三场 1004 Tokitsukaze and Multiple
题目题目链接题目大意是给定n个数字的序列,可以任意合并其中相邻的数字,使他们相加,问最多能有多少个p的倍数。贪心这个题可以使用贪心的写法来解决。首先p的倍数这种事情重点只有余数部分,所以先对所有数字取模,且每次相加都要取模。只需要关心最终能搞出几个零就行了。可以直接遍历整个数组,加上新来的数字,如果加上后这个余数在前面出现过则证明以该数字位结尾的一段数字加和是p的倍数,统计入答案,并重置标记数组。重复这个过程即可。另外,对于重置标记数组,如果每次都循环置零,那么就会超时,可以使用一个小技巧,使原创 2020-07-29 12:18:18 · 865 阅读 · 3 评论 -
2020杭电多校第三场 1009 Parentheses Matching
题目题目大题就是给定一个括号序列,其中仅包含()*,任务就是替换其中的*为()或者空字符串,是的原字符串平衡且字典序最小。一个不难想象到的是,最终的解法应该是在字符串的两侧不断替换括号,且两种括号的添加不能发生交叉。试想,如果替换出现了这种情况...)...(...。那么直接去掉这两个将会是长度更小的答案,所以这种情况是不会出现的。为了解决问题,不妨将需要解决的问题分成两个步骤使括号数量平衡使括号配对平衡首先拿到序列先在一侧添加括号,使得左右括号一样多。达成这一点很简单,扫描一遍整个数组即原创 2020-07-29 12:03:33 · 329 阅读 · 0 评论 -
2020杭电多校2 1010 Lead of Wisdom
题目题目链接题目大意是每组给定n个装备,每个装备属于一个类别,并有四个属性a,b,c,d。每个类别仅允许挑选一个装备最终伤害值为所有选定装备的四个属性分别与100求和再相乘。问最大值为多少暴力搜索+优化看完题目,满脑子都是暴力搜索,一看数据规模,n <= 50。推算一下搜索的复杂度,最坏情况是装备均分到每个组,则有如下复杂度分析:316方有多少呢?大概是:完全可以接受,没有问题。于是美美的交了第一发暴力:#include<iostream>#include<原创 2020-07-24 11:37:55 · 305 阅读 · 3 评论 -
2020杭电多校2 1001 Total Eclipse
题目题目链接题目大意就是在一张图上,有n个节点,m条无向边。每个节点有一个亮度值,每次可以选择一个连通块,块中所有节点值-1.问多少次操作可以使得图上所有节点的点权为0.排序+并查集需要注意的是,已经成为0的点不能再被选入连通块中,否则就成为负数了。因此当一个点其点权成为0的时候就相当于点本身及以其为顶点的边被删除了,不能对后面的过程产生影响。仔细分析一下,整个过程就是不断的挑选连通块,操作其中点权最小值次,过后把点权为0的点删除,形成更多的连通块,往复这个过程,知道所有的点点权都为0.一种可原创 2020-07-24 10:23:32 · 303 阅读 · 0 评论 -
2020杭电多校2 1006 The Oculus
题目题目链接大致题意是这样的:数字可以被唯一分解成为一系列斐波那契数的加和的形式。现在给定两个这样的数字a和数字b将他们的乘积c也表示成为斐波那契数的加和的形式。随后将c其中非首位的一个1改成0,题目要求哪一位是被修改的一位。例如样例给定的情况:a=4 b=5 a*b=2020分解成为斐波那契数加和:20 = 2 + 5 + 13表示成为数组就是:0 1 0 1 0 1,输入的数组为:0 1 0 0 0 1。因此被改变的位下标为4暴力首先分析一下,将某一位从1变成0,其实就是从原数中减去原创 2020-07-24 09:40:25 · 380 阅读 · 0 评论 -
lyndon分解! 2020杭电多校1 1011 Minimum Index
学到了个新的操作,调题目调了好久,但是很有意思,分享一哈。题目大意题目链接在此大致意思就是给定T个字符串,每个字符串尤其长度个数量的前缀,求其每个前缀中字典序最小的后缀的起始位置,并将他们乘上1112的幂加起来对1e9 + 7取模。题目不难理解,但就是每个字都看懂了,连起来就是不会或者说没有思路。要解决这个问题,一种可行的方法是借助lyndon分解,下面我们就先来看一下lyndon分解是何方神圣。lyndon分解介绍lyndon分解前,我们需要先了解一个概念:lyndon串。对于字符串 ,原创 2020-07-23 10:38:10 · 549 阅读 · 2 评论 -
20杭电多校1 1009 Leading Robots
题目分析题目大意是这样的,有n个机器人,每个机器人有初始位置和加速度,一开始所有的机器人都会向右做加速运动。任务是统计总共多少个机器人排过第一名(严格意义的第一名不能是并列)简单分析一下,高中一年级物理课我们学过,位移在匀加速直线运动条件下随时间变化的函数是x = at2/2。考虑到每个机器人有一个初始位置pi,则第i个机器人的位移应表示为:xi = ait2/2 + pi有了这个式子,我们知道机器人位移随时间的变化曲线是一条开口向上的抛物线,其纵截距是pi。但是我们不喜欢抛物线,或者说,他不原创 2020-07-22 09:59:51 · 215 阅读 · 0 评论