自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 “蔚来杯“2022牛客暑期多校训练营5 题解

题目:NIO和Yasa在黑暗中摸耳机,已知Yasa摸了k对,一共有n对耳机,问NIO摸多少个耳机能保证摸到的耳机对数大于Yasa,如果无论如何都不能实现的话输出-1。思路:多边形的覆盖区域以一个不等式给出,用线性规划可以得出是一个六边形,最后覆盖的区域是两个边长为n/2的正方形和两个半径为n/2的1/4圆。题目:给出一个多边形区域,以多边形的中心为圆心画一个半径为n/2的圆,求多边形和圆覆盖区域的总面积。思路:假设NIO运气特别差,摸到了n-k个都不一样的耳机,那他再摸k+1个也一定能摸到k+1对耳机。..

2022-08-26 09:39:49 209

原创 “蔚来杯“2022牛客暑期多校训练营1题解

将电站和房屋看成x轴上的线段,则线段与线段之间的空段长度即为要连接电线的长度。从这一点上来说,电站和房屋其实没有本质区别,只要将所有线段连接起来,具体哪个是电站,哪个是房屋对答案没有影响。由于题目中给出的坐标是中心点加半径的形式,实际编程中应该转换成左右端点的形式存储,并按左端点大右端点小的顺序排序。题目给出1个电站的坐标和n-1个房屋的坐标,他们分别有接收电力的半径范围,通过建立任意个电塔来连接电站给n-1个房屋通电。如果n的位数超过一位,将n与位数-1个9组成的数字作比较,输出字典序大的数。...

2022-08-26 09:38:54 205

原创 2022“杭电杯”中国大学生算法设计超级联赛(9)题解

因为一个数的极点如果就是下一个数,那么这个数的极点和下一个数的极点是相同的,因为极点构成了一个连续的区间,根据冒泡排序的原理,只需要循环移位一次。因此对于全部是奇数的一端,将每个数字减1后除2,不改变等差的性质,但是会出现奇数和偶数,就可以继续用上面的方法进行分治。...

2022-08-26 09:37:53 250

原创 2022“杭电杯”中国大学生算法设计超级联赛(10)题解

轮到Alice,Alice应该会去涂第六个,每次为Bob涂的位置+3,这样中间的两个都涂不到。又轮到Bob的时候,Bob应该会涂第十个,每次为Alice涂的位置+4,这样中间三个的最中间那个只能被涂成黑色。题意:Alice 和 Bob 给一串格子涂上黑色,轮流涂,相邻的两个格子不能都为黑色。题意:n 个人,每个人帽子上有一个数字,m 条关系,u 和 v 是好朋友,好朋友之间会玩游戏,朋友间帽子上的会变成所有人总合的平均值。思路:每个人对自己和自己的朋友的总贡献是自己帽子上的数 * 度的数量。...

2022-08-26 09:36:40 461

原创 2022“杭电杯”中国大学生算法设计超级联赛(8)题解

思路:显然,经过一次操作后,奇数位的数字只会和奇数位的数字进行交换,偶数位的数字只会和偶数位的数字进行交换。同时容易猜到,对于一个被选择的长度为n的区间,对该区间进行一次翻转,可以通过若干次长度为3的翻转实现。对一个01序列只进行长度为3的翻转,分别单独从奇数位和偶数位观察,相当于交换相邻的数字。类似于冒泡排序进行排序的方式,显然经过若干次的交换,可以分别在奇偶数位上使得所有的0在所有的1的前面。题意:给一个长为n 宽为m的金块,要求横着竖着画若干条线,使得每一块被切出来的面积都大于k,求线的最大数量。

2022-08-25 15:59:55 100

原创 2022“杭电杯”中国大学生算法设计超级联赛(7)题解

思路:最小数量:要尽可能的将L , R 凑成一对,对于凑不成的只能单独一个,因此直接找m a x ( L , R ) 即可,B 可以放在L / R的旁边就能形成一个。题意:给出n个方块,每个方块的左/右都可能是黑或白。最大数量:L L L L R R R R 这样排列每个L 和R都是独立的,如果有B的话,可以选一个B放在L与R的交界处,剩下的B只能与E交错着放。题意:给一个合法的三角形的三边长度,我们和另一个人轮流让三角形的某边递减且仍然是三角形,如果某个人无法继续操作了就输了,我们先手。

2022-08-25 15:54:50 735

原创 2022“杭电杯”中国大学生算法设计超级联赛(6)题解

题意:给定一棵由从 1 到 n 编号的 n 个顶点组成的有根树,根为顶点 1。bu是以u为根的子树的权重的MEX,ai未知,求最大的bi和。那么考虑转移,u本身的b[u]一定可以是sz[u],而因为a必须两两不同,0只能在u的某个子树内,所以除了某个子树,其他子树节点的bi一定都为0。题意:给定一个数列,在指定操作数内,可以选择一段区间,将区间内的数字左移一位,最左边的数字移到最右边,问最大字典序的结果。思路:用sz[u]表示u子树节点个数, 表示dp[u]子树内sum(bi)可以达到的最大值。

2022-08-25 15:46:17 123

原创 2022“杭电杯”中国大学生算法设计超级联赛(5)题解

思路:对于这n个人,每个人都有一个到达和离开的时间,在时间轴上形成2 ∗ n 个点,可以先将n个人的到达时间放进一个优先队列里,按照时间顺序弹出来,对于弹出来的人,只需要快速的找到这个人放在哪个队列即可,用线段树来维护,再把这个人标记一下再次入堆,等到下一次弹出来的时候修改线段树即可。2.如果手上的骰子点数都相同,则认为有额外的一个相同点数的骰子;题意:有n个人到一家商店办事,排m条队,给出ai和si表示第i 个人到达的时间和办事需要的时间,求最后一个人离开窗口的时间。因此,先手叫不了的情况为必败。

2022-08-25 15:23:12 752

原创 2022“杭电杯”中国大学生算法设计超级联赛(4)题解

我们可设一个变量,表示打败当前的怪和之前没打过的怪所需要的最小攻击力,当minneed小于等于小明的攻击力时,小明就可以跳到那层楼,然后一层一层往下打怪了。题意:买票的时候有一个优惠规则:如果买过的票的总价值x>=100,则后面的票都打8折,如果x>=200,则后面的票都打5折。思路: 题意:给一个边长为n的大三角形,里面有很多小三角形,差不多分割成图里这个样子,给每个小圆圈里填上0或1或2,最左边的不能填0,最右边的不能填1,最底下的不能填2。如果可以把所有的小圆圈都填满,输出Yes,否则No。

2022-08-25 15:16:25 125

原创 2022“杭电杯”中国大学生算法设计超级联赛(3)题解

按照每个区间的右端点排序,对于某个快递,若其左端点大于前面所有的右端点,则其必须单独取件,答案+1,并将其右端点插入mp中,否则,则意味着该快点后面有某个区间的右端点,此快递可以与之一起取,记录此时取的快递数量+1,若数量达到k则从mp中删除。思路:dp[i][pos]表示S SS数组中第i个数字的前一位(也就是第i − 1位)取自第p o s 个排列时的方案数(p o s = = 1 ∣ ∣ p o s = = 2 ),使用记忆化搜索降低复杂度。询问最终有多少方案可以使S ′ = = S。

2022-08-25 15:09:29 402

原创 2022“杭电杯”中国大学生算法设计超级联赛(2)题解

思路:先求出7,31,365的最小公倍数,因为三者互质,直接相乘即可.然后用n%lcm,整除lcm的部分我们用贪心去算,因为是7,31,365的公倍数,所以我们直接全部用365装就是最优解.然后剩下的部分也不大,直接三层for循环跑一下就行了。q-1的一个质因子,又因为要满足m>=p且m>=q.所以我们直接用质因数分解来求出p。q-1的最大质因子,这个就是m的值,再check一下m和p,q的值即可。思路:直接判断哪些线段没有和其他线段相交即可。思路:按照题目要求转换即可。思路:把式子变为:P。

2022-08-25 14:46:41 448

原创 2022“杭电杯”中国大学生算法设计超级联赛(1)题解

当没出现0的时候,Alice可以选择将这堆数字分成两堆,而Bob可以选择任意一堆将这堆数字全部删除,并且将剩下的一堆的每个数字减一。当出现0的时候,Alice win,当所有数字都被删完时,Bob win。1个1和这些等价:2个2,4个3,8个4,那么就将所有的都转化为1,如果最后1的个数>1,那么就是Alice win,否则就是Bob win。思路:随机生成n个在[0,1]之间的数字,进行m次操作,每次有可能删除最大值或者最小值,求最后剩下的数的和的期望值。这个结论其实是猜出来的=-=。

2022-08-25 14:33:27 215

原创 “蔚来杯“2022牛客暑期多校训练营2题解

答案就是f[m][n][0]。也可是是补全序列的第[1,i-1]中的某一位匹配上了s[j],则+=f[i-1][j][k + 1]。也可是是补全序列的第[1,i-1]中的某一位匹配上了s[j],则+=f[i-1][j][k - 1],需要k大于等于1。思路:f[i][j][k]表示在补全序列的前i位中,包含原序列的前j位,左括号-右括号=k(下标从0开始,天然保证了左括号数量大于等于右括号数量,也就是保证了构造出来的序列肯定是满足成为一个合法括号序列的,后面就不需要再考虑是否合法了),的方案数。

2022-08-25 00:50:51 145

原创 “蔚来杯“2022牛客暑期多校训练营3 题解

题意:给你两棵树A和B,点的编号从1到n,根结点是1,且每个点都有一个价值,现在给你k个点,选任意k-1个不同的点,分别求这些点在两颗树上的最近公共祖先fa, fb,问存在多少种情况满足A树上fa的价值大于B树上fb的价值。思路:有一个结论是:求树上多个点的LCA的方法是求这些点在树上的dfs序的最小值的点和最大值的点的LCA。所以我们求出来两颗树的dfs序后,将k个点按照dfs序的大小来排序后,离线处理,再按照上面的结论进行计算就行。思路:给出几个数字段,求能组成的字典序最小的字符串。

2022-08-25 00:28:34 79

原创 “蔚来杯“2022牛客暑期多校训练营4题解

思路:n个粒子,每个粒子有一个能量ai。思路:可以发现每次击败敌人需要升级次数最多不会超过n的位数,这点通过鸽巢原理可知,那么就可以从1开始枚举需要添加几位数字,如果添加i位数字就能击败敌人,那么一定存在一个x使得y*now+x同余1,y是一个由i位9构成的常数并且x∈[0, y],其实也就是攻击力的增量和1同余的意思,于是就可以从1开始枚举要添加几位数字了,O(1)判断出是否能击败敌人,最终统计一下答案即可,最后要注意n = 1的情况答案是0而不是1。K题 NIO’s Sword。

2022-08-24 23:13:34 111

原创 “蔚来杯“2022牛客暑期多校训练营6 题解

G题 Icon Design思路:等比例输出图形即可。J题 Number Game思路:列出abc的变化公式然后找出规律,只有符合公式的情况才能够将c变化成x,其他情况都不行。M题 Z-Game On the Grid题意:爱丽丝和鲍勃正在玩一个n×m网格的游戏,其中每个单元格都有“A”、“B”或“.”写在上面。他们轮流在格子上移动棋子,爱丽丝先移动。最初,该棋子位于单元格(1,1)上。在每个玩家的回合中,他或她可以将棋子向右移动一格或向下移动一格。也就是说,如果该棋子在回合前位于单元格(x,y)

2022-08-24 18:22:24 1021

原创 “蔚来杯“2022牛客暑期多校训练营7 题解

思路:把数字分为在A中出现过和没出现过两种,在构造的时候先用出现过的数字填补,这里我选择的是用错位填补的方法,即Pi=A(i+1),如果遇到相同的数字,就用没出现过的数字填补即可。一个数组只包含小于k的非负数,它的优度定义为和能整除k的非空连续子数组的个数。思路:n个人围成一个圈,每个人有一个数字,相邻的人数字相同或者是数字相加为一个给定的数字x就可以消除,然后组成新的圈,问能消除的最大次数。C题 Constructive Problems Never Die。G题 Regular Expression。

2022-08-24 17:55:06 95

原创 “蔚来杯“2022牛客暑期多校训练营8 题解

x+b*x+c)%p构造s和t数组,问s和t的最长公共子序列有多长。如果x相同的话,那后面的所有存在元素都一定相同,但是x不同的话,也有可能通过%p使得后一个数相同。思路:一共有十种类型的牌型,模拟AB拿到牌的可能性,由此判断AB必胜或者平局的情况。F题 Longest Common Subsequence。思路:通过一个函数公式x->(a。D题 Poker Game。

2022-08-24 12:16:16 176

原创 “蔚来杯“2022牛客暑期多校训练营9 题解

求两只青蛙跳的次数相同的期望。由于青蛙有很多种不同的跳法都可能导致步数相同,青蛙在荷叶i上跳到之后的ai片荷叶上的概率都是相等的1/ai,基本的思路就是将步数相同的情况的概率两两相乘再相加,用逆元处理分数模的情况。有一个很妙的情况是,两两相乘再相加的情况可以转换成平方和的形式,这样就大大降低了时间复杂度。思路:利用双指针,固定每次搜索的左指针向右搜索每个可能的区间,只要搜到了一个符合的区间,那这个区间里再增加元素也一定是符合要求的,停止搜索以减少复杂度。B题 Two Frogs。A题 Car show。

2022-08-23 20:44:31 135

原创 “蔚来杯“2022牛客暑期多校训练营10 题解

思路:对于A和B来说,随从是共用的,只要随从被咒语砸中就是为两个人抵挡伤害,所以只需要考虑AB的生命值即可。AB能抵挡的攻击次数分别为ceil(A/10.0)和ceil(B/10.0),最少攻击次数就是ceil(B/10.0)最多次数就是ceil(B/10.0)+ceil(A/10.0)-1。思路:这是一道博弈论的题,一般要从后往前想,t这个点一定是必胜态,然后能有两条路径到必胜态的情况也一定是必胜态,因为join保证了一定不会被cut给拦截。F题 Shannon Switching Game?

2022-08-22 11:52:08 93

原创 《算法竞赛从入门到进阶》笔记整理 3.1.3队列和queue

队列的特点是先进先出。

2022-07-15 15:38:57 85

原创 《算法竞赛从入门到进阶》笔记整理 3.1.2 栈和stack

栈的特点是先进后出,即先进入栈的元素后出来,这里的先后是相对的。栈的头文件:栈的常用操作:存在问题:爆栈问题。栈需要空间存储,如果深度太大,或者存进栈的数组太大,那么总数会超过系统为栈分配的空间,这样就会导致栈的元素溢出,也就是爆栈。解决爆栈的问题有下面两种:(1)在程序中调大系统的栈,这种方法依赖于系统和编译器。(2)手工写栈,在10.5节中会提及。...

2022-07-12 19:08:42 102

原创 《算法竞赛从入门到进阶》笔记整理 3.1.1 vector

vector容器用法整理

2022-07-11 19:38:39 253

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除