
2021杭电多校
文章平均质量分 70
2021年杭电多校题解
Linda_yezi_coder
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2021杭电多校第六场 1004——Decomposition
题目大意给你一个 nnn 个点的完全图 nnn 为奇数,让你划分为 kkk 条长度为 aia_iai 且不相交的路径,输出这 kkk 条路径。解题思路在完全图上构造 (n−1)/2(n-1)/2(n−1)/2 个不同的长度为 nnn 的欧拉回路。完全图每个顶点的度数一定为偶数,每构造一个欧拉回路之后每个点的度仍然为偶数,所以一定可以构造出来这样的欧拉回路,构造出来之后就按顺序输出即可。这里提供一种构造方法,至于为什么会想到不必深究。由于点数是奇数,所以我们首先将最大的点选出来,然后对于前 (n原创 2021-09-14 00:09:41 · 251 阅读 · 0 评论 -
2021杭电多校第三场 1010——Road Discount
题目大意给你 nnn 个点, mmm 条边,每条边都有两个值ci,dic_i, d_ici,di,代表原始花费和折扣后的花费,问你使用 kkk 条折扣后的边使这 nnn 个点联通,最小花费是多少。对于 k∈[0,n−1] k∈Zk \in [0,n-1] \ k\in Zk∈[0,n−1] k∈Z 每一个值你都需要回答,题目保证有解。2≤n≤1000,n−1≤m≤2×105,1≤di≤ci≤10002\leq n\leq1000, n-1\leq m\leq 2\times 10原创 2021-09-11 14:59:40 · 207 阅读 · 0 评论 -
2021杭电多校第三场 1004——Game on Plane
题目链接题目大意给你 nnn 条线段, AliceAliceAlice 每次从中选 kkk 条,BobBobBob 每次划一条直线,定义 penaltypenaltypenalty 为 BobBobBob 所划直线与 AliceAliceAlice 所选直线相交的直线数, AliceAliceAlice 想最大化 penaltypenaltypenalty,BobBobBob 想最小化 penaltypenaltypenalty,对于每一个 1−n1-n1−n 的 kkk,你都需要回答 penaltyp原创 2021-09-07 16:35:14 · 161 阅读 · 0 评论 -
2021杭电多校第三场 1003——Forgiving Matching
题目大意给你两个字符串,一个长度为 nnn 模式串,一个长度为 mmm 匹配串,由字符 000 到 999 和 通配符 * 组成。问你匹配串在模式串中失配长度不超过 0,1,⋯ ,m0, 1,\cdots,m0,1,⋯,m 的字符串一共有多少个。解题思路考虑采用 fftfftfft 来做。预处理对于模式串,我们开十个数组(桶),来标记 000 到 999 出现的下标,如果出现了就标为 111,否则标为 000,对于通配符 ∗*∗ ,将 000 到 999 都标为 111,因为通配符是可以和任何字符原创 2021-09-04 13:42:19 · 229 阅读 · 0 评论 -
2021杭电多校第二场 1011——I love max and multiply
题目大意给你两个长度为 nnn 的数组 A、BA、BA、B,求 ∑i=0n−1Ci\sum_{i=0}^{n-1}C_i∑i=0n−1Ci,Ck=max{Ai×Bj} i&j≥kC_k=max\{A_i\times B_j\}\ i\&j\geq kCk=max{Ai×Bj} i&j≥k解题思路满足条件的 i&j≥ki\&j\geq ki&j≥k 比较难求,我们可以把答案记录到 i&j=ki\&j = ki原创 2021-09-03 20:30:40 · 163 阅读 · 0 评论 -
2021杭电多校第二场 1008——I love exam
题目大意有一个人要为了期末考试而复习,现在一共有 nnn 门课,给你每门课复习时间所对应的分数,现在你有 ttt 时间来复习,最多挂 ppp 门课,每门课最多得分100,问你在最多挂 ppp 门课的情况下最大得分是多少,否则输出 -1解题思路先用一个背包 f[i][j]f[i][j]f[i][j] 表示第 iii 门课花费时间 jjj 的最大得分是多少然后进行一个 dpdpdpdp[i][k][kk]dp[i][k][kk]dp[i][k][kk] 表示前 iii 门课,花费时间 kkk,在挂 k原创 2021-09-03 13:57:18 · 162 阅读 · 0 评论 -
2021杭电多校第二场 1005——I love string
题目大意给你一个字符串,你遍历这个字符串,每次从这个字符串的第一个摘下一个字符插入到一个新字符串中,你使得新字符串的字典序最小,问你有多少种不同方法得到字典序最小的新字符串。第一种插入方法是插入到新字符串的前面,第二种是插入到新字符串的后面。解题思路发现只有前面连续的相同字符才有两种插入方法,后面就只能有一种插入方法了,所以我们看前面有多少个相同连续的字符,那么答案就是 222 的这么多次幂。Code#include <bits/stdc++.h>#define ll long l原创 2021-09-03 10:46:14 · 168 阅读 · 0 评论 -
2021杭电多校第四场 1008——Lawn of the Dead
题目大意给你一个 n×mn\times mn×m 的矩阵,给你 kkk 个点,表示这些点不可走,你从起点 (1,1)(1,1)(1,1) 出发,你每次只能向下或向右走,问你有多少个点是可到达的解题思路由于这道题没有限制总的 n×mn\times mn×m 之和小于一个值,题面给的是 ∑n≤107,∑m≤107\sum n \leq 10^7, \sum m \leq 10^7∑n≤107,∑m≤107,所以不可以直接 bfsbfsbfs我们可以用两个线段树来做,两个线段树进行滚动,一个线段树维护的是原创 2021-09-03 10:16:52 · 168 阅读 · 0 评论 -
2021杭电多校第二场 1001——I love cube
题目大意给你一个边长为 n−1n-1n−1 的立方体,问你在其中能找出多少个等边三角形,三角形的三条边必须平行于坐标面解题思路我们发现一个边长为 111 的立方体中可以找出 888 个不同的等边三角形。那么我们只需要计算有多少个边长为 1,2,3,⋯ ,n1, 2, 3, \cdots, n1,2,3,⋯,n 的立方体。我们发现边长为 1,2,3,⋯ ,n−11, 2, 3, \cdots, n-11,2,3,⋯,n−1 的立方体分别有 (n−1)3,(n−2)3,⋯ ,13(n-1)^3, (n原创 2021-08-31 10:38:56 · 205 阅读 · 0 评论 -
2021杭电多校第三场 1009——Rise in Price
题目大意给你一个 n×nn \times nn×n 的矩阵,每个点有两个值,代表当前点物品的累加的数量和累加的价值,累加的价值就是说你到达了这个点,你所有物品的价值都会累加上这个价值,累加的数量表示你到达了这个点你的物品数量会加上这个值,你每次只能向下或者向右走。问你从 (1,1)(1, 1)(1,1) 走到 (n,n)(n, n)(n,n) 所获得的总价值最大是多少,总价值为数量乘以价值。1≤n≤1001 \leq n \leq 1001≤n≤100解题思路dpdpdp由于每个点有两个状态,我们原创 2021-08-30 18:53:08 · 175 阅读 · 0 评论 -
2021杭电多校第二场 1002——I love tree
题目大意给你一棵树,有两种操作1、将路径 uuu 到 vvv 上的点按照与 uuu 的距离,加上 1 4 9⋯i21 \ 4 \ 9 \cdots i^21 4 9⋯i22、问节点 xxx 的值为多少解题思路树链剖分 + 线段树首先我们可以进行一个树链剖分,这样便于处理操作1。对于操作1,我们首先找出 uuu 与 vvv 的 lcalcalca对于树链 uuu 到 lcalcalca,我们每个节点所加的值为(dep[t]−dep[u]+1)2(d原创 2021-08-25 14:04:51 · 170 阅读 · 0 评论 -
2021杭电多校第二场 1004——I love counting
题目大意给你 nnn 个数的数列 vvv,有 mmm 次询问,询问 [l,r][l, r][l,r] 内满足 v⨁a≤bv \bigoplus a \leq bv⨁a≤b,不同的 vvv 有多少个解题思路莫队分块分块大小 k=nk = \sqrt nk=n我们将询问按区间左端点分块,然后排序,先按块号排,如果块号相同按右端点升序排。然后我们将 vvv 数组分块。我们如何统计答案呢?我们用桶来统计数是否出现过。我们对于每一个询问的区间从高位到地位考虑 bbb我们记录一个变量 sss 使得我原创 2021-08-23 23:37:27 · 188 阅读 · 0 评论 -
2021杭电多校第九场 1002——Just another board game
题目大意有一个 n∗mn*mn∗m 的棋盘,每个格子上有一个值,现在有一个棋子在 (1,1)(1, 1)(1,1),有两个人轮流移动这个棋子,最多移动 kkk 步。第一个人有两种操作,横着移动棋子或者终止游戏第二个人有两种操作,竖着移动棋子或者终止游戏游戏得分即为终止游戏时棋子所在格子的值。第一个想最大化得分,第二个人想最小化得分,第一个人先走,输出最终得分解题思路当 (1,1)(1, 1)(1,1) 位置是最大值,那么得分就为这位置的值考虑 k=1k = 1k=1第一个人一定是走到第一行原创 2021-08-17 22:37:12 · 281 阅读 · 2 评论 -
2021杭电多校第九场 1007——Boring data structure problem
题目大意题如其名有一个双端队列,进行 nnn 次操作,有四种操作L:L:L:在队首插入一个数 tottottotR:R:R:在队尾插入一个数tottottotGxG xGx删除队列中的数 xxxQ:Q:Q:问你队列中最中间的数是什么解题思路用数组模拟链表,数据有 1e71e71e7,可能接受不了很大的常数,我们需要开5个数组mp:mp:mp:用来映射数的下标l:l:l:前一个数的下标r:r:r:后一个数的下标acc:acc:acc:在最中间的数的左侧还是右侧ls:ls:ls:存数的原创 2021-08-17 20:31:28 · 260 阅读 · 1 评论 -
2021杭电多校第九场 1003——Dota2 Pro Circuit
题目大意有 nnn 个人,每个人有一个初始分值,然后再给你 nnn 个数,表示接下来一场比赛获得第 iii 名的得分。问你这场比赛之后每个人可能获得的最好名次和最坏名次。分数并列则名次并列,且并列名次跳过,如四个人得分为5 3 3 2,那么排名是1 2 2 4。n<=50001<=T<=20n <= 5000 1 <= T <= 20n<=50001<=T<=20,最多有8组数据n>100n > 100n>100解题思路考虑直原创 2021-08-17 20:07:08 · 262 阅读 · 0 评论