【无标题】

本文介绍了广东省赛、江苏省赛及澳门编程比赛中的题目及其解题策略。涉及树形DPOR、最短路模型、单调队列优化DP、线段树、区间修改等算法。还分享了5.3训练赛中的冰激凌店选址和圆形迷宫问题的解决方案,包括差分思想和简化问题的思路。
摘要由CSDN通过智能技术生成

广东省赛

广东省赛:https://pintia.cn/problem-sets/1534086341544497152/problems/type/7

L 启航者

一棵树,每个节点有一权值ai,可以从任意一点出发,每条边只能走一次,到一个节点可以获取ai,问最多得到多少价值

树形dp or 记忆化,记忆化个人觉得容易想不好打或者说容易打错,树形dp难想,不容易打错

E 黑白大陆

n*m的01矩阵,0代表为白,1为黑,每次操作可以翻转一个连通块(上下左右为相邻,同一颜色可以连通),最少几步操作可以使矩阵全为0

缩点+最短路,转换为最短路模型的过程比较巧妙


江苏省赛

江苏省赛:https://codeforces.com/gym/103743
C - Jump and Treasure

•从坐标为 0 的位置出发从左往右跳,只能跳到整数坐标,跳
跃的距离不能超过 p;
• 跳到第 i 个位置获得 ai 个金币,[n + 1, +∞) 是终点;
• 第 x 关只能跳到 x 的倍数的位置;
• Q 个询问,每次询问在某个关卡中获得的最多金币数是多
少.

单调队列优化DP(挂gym上的也会t),线段树被卡常

J - Balanced Tree

• 求 n 个点组成的每个节点都满足左右子树大小相差至多 1
的二叉树个数.
• 0 ≤ n < 2^64

最后写法可能都差不多,但是过程可以是打表找规律,可以推式子,也可以直接画图直接想出规律


澳门

https://ac.nowcoder.com/acm/contest/32475#question
F Sandpile on Clique
容易分析出来操作的顺序对结果是没有影响的,也容易推出来操作最多不会超过n-1次,因为超过n-1次之后,哪些被减去n-1的数字又变成了大于n-1的数,又需要操作所以操作永远不会停止.
然后模拟这个操作的过程即可.这个操作过程主要包括两个部分,一是查询序列中大于n-1的元素的位置,二是把一个数减去n-1,其他数加上1.
二操作看上去是一个区间修改操作,需要懒标记的线段树,但是我们可以通过标记永久化把这个操作变为单点操作.因为把一个数减去n-1,其他数加上1可以视为把所有数都加上1,然后一个数减去n,总体加上的部分用一个全局标记记录即可,只需要单点修改就可以完成.查询操作也很容易用线段树完成.
线段树维护的是区间内的最大值以及所在的位置,也可以通过优先队列来维护


5.3训练

【5.3】周末训练赛:https://codeforces.com/contest/1662

I. Ice Cream Shop

  • 一根x轴
  • n个小屋,每个小屋间隔100m也就是x0 - xn-1 分别是0,100,200… 第i个小屋有pi个人;
  • 有m个冰淇淋店,并给出它们的位置;
  • 每个小屋的人只会选择距离最近的店;
  • 现在要求新建一个冰淇淋店,问最多能收获多少顾客

sol1:处理出每个屋子i到最近的冰淇淋店的距离disi,建一个sum数组,对于下标为xi-disi 到xi+disi的sum+=pi,这一步利用差分思想实现,再前缀和一下就好

sol2:
在这里插入图片描述
感觉比上一种方法难想,不确定有没有人用

O. Circular Maze
在这里插入图片描述

由直线和圆形曲线构成上面图像
直线描述为r1,r2,θ
圆形壁面由半径r、到中心的距离以及沿顺时针方向表示壁面开始和结束的两角θ1、θ2来描述
问能不能从最外面的口进入到最中心

sol1:将问题简化为网格迷宫
sol2:硬搜


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值