- 博客(37)
- 问答 (1)
- 收藏
- 关注
原创 P4181 [USACO18JAN] Rental Service S
一头牛的情况,是卖出[牛奶]还是[租赁]看哪个赚得更多。但对于某一头牛来说,假如牛的产奶量很高,虽然目前卖的钱很多,但如果贪心的卖掉了它,导致后期没有牛租赁出去(邻居个数是固定的。 现在找出一种方案(售卖牛奶、租赁奶牛),如何安排使得赚的钱数量最多,求出这个钱数。对于牛的产奶量排序(优先处理产奶量少的牛),然后对比。个),后面的牛产奶量也没它多,那岂不是亏惨了?家商店愿意以一定的价格购买一定的牛奶,也有。头牛,每头牛每天可以产一定的奶量,有。 考虑简单的情况,一头牛。美分的价格租赁一头奶牛。
2025-01-27 14:26:23
835
原创 P3131 [USACO16JAN] Subsequences Summing to Sevens S
是枚举序列的符合要求的起点和终点,但如果只有一个元素的时候,答案就不正确了被 hack,正确的做法是将。的操作,一是加速计算区间和,二是符合题目的区间和要求。的倍数来查找出符合的区间长度作更新,具体代码可以看下面。的倍数,找出这一段的长度是为多少,如果不存在输出。时,满足上述规律,证明起来比较简单,这里不再赘述。,再从序列的起点开始扫找第一个等于余数。开始,因为我们发现如果和整除七的一段是。,再从序列的末尾开始扫第一个等于余数。,枚举区间的起点和终点。的序列,故不需要加一。,而上面也说过,和为。
2025-01-27 12:59:31
871
原创 P6120 [USACO17JAN] Hoof, Paper, Scissor S
题意理解了,我感觉就是很简单,可以用双指针做,也可以用前缀和分开两段来做。这里讲述前缀和分两段的分别统计贡献的方式来做。另外一人,只允许修改一次机会的情况下,求最多可以赢的局面数量。 根据题意可知,手势一旦确定为。 石头、剪刀、布游戏,先给出。,那么贡献(胜利的局数)就是。数组可以用前缀和来完成。,那么只允许在后面第。
2025-01-27 12:57:32
760
原创 P5665 [CSP-S2019] 划分
P5665 [CSP-S2019] 划分难度:省选/NOI-。考点:单调队列、贪心、前缀和。题意:没有题目大意,本题题目描述较长,认真阅读每一个信息。 这个题的样例有 nnn 组数据,数据从 1∼n1 \sim n1∼n 编号,iii 号数据的规模为 aia_iai。 小明对该题设计出了一个暴力程序,对于一组规模为 uuu 的数据,该程序的运行时间为 u2u^2u2。然而这个程序运行完一组规模为 uuu 的数据之后,它将在任何一组规模小于 uuu 的数据上运行错误。样例中的 aia_i
2024-11-07 23:27:21
934
原创 P1315 [NOIP2011 提高组] 观光公交
那么每次操作都会形成新的子集合(有可能会破开),从新的子集合中再挑选一段来操作,也会如上分析一样分成两个部分,当然也会选择「左端点」开始操作,这么显然的性质为什么又要重新提及呢?因为要引出一个结论,如果每次都选择符合区间的「左端点」来操作,直接每次选择「收益最高的点」的来操作就可以了,经过刚刚的分析就可以得到全局最优解。 每一段行驶的长度是固定的,人「到达」和「离开」景点的时间也是固定的,每个乘客的等待时间 = 公交车到达景点。,形如下图,会有若干个「加速段」,加速段都满足什么性质呢?
2024-11-06 21:07:10
888
原创 P2672 [NOIP2015 普及组] 推销员
对应的最大话费都是线性的,再加上排序,总时间复杂度是。家住户推销产品的最大话费只有两种情况:推销给。大的位置,其他选择的位置也不会是最优解。问如何在不走多余的路前提下,他。个住户的情况下,沟通带来的疲劳值之和。较远的住户都有可能,因为任意一种只要。 而关联到疲劳值消耗最大,应该要从。中可能会出现两种选择的情况,选择的。个住户的情况下消耗最大,其中距离。,以及所选择住户中最远的住户距离。 那么服务的住户肯定是选择的前。个住户,小明每走一米消耗。名住户,分别代表所选择的。都是固定的,那么应该要让。
2024-11-05 23:20:01
878
原创 P9220 「TAOI-1」椎名真昼
根据题目中对两点能互相到达的定义,我们很容易知道 – 若对某个 SCC 中的点进行一次操作,那么同处于这个 SCC 的其他点的颜色也都会翻转(但不止这些点的颜色被翻转)。:此时不难发现,如果某个 SCC 中存在异色点,那么无论怎么翻转,它们都不会变为统一颜色,于是这种情况可以直接判成平局,否则我们就把这个强连通分量染成内部点的颜色。因为若是超过两步,认为自己会输的那一方将会想尽办法不让你赢,具体表现就是重复另一方先前的操作,让图变为另一方操作前的状态,最终陷入死循环。只需关注一步定胜负和两步定胜负。
2024-11-04 00:17:34
645
原创 P11233 [CSP-S 2024] 染色
最开始就是如上的思路去解题的,但想了一下第二个维度有必要开么?否则在这之间找到相同的数并染色为同色收益也会更大。会选择最优的策略,那么(此时可以选择不和。的染色为相同时的最大分值之和,复杂度是。,需要最大化最终得分,请求出最终得分的。确定是前面最靠近相同的数染为相同色,上一次出现的位置,初始化令所有的。,暴力枚举每个数字两种染色的情况。前面存在相同的数,假设以染色为。相同色的数的位置(可预处理出来,左侧最靠近且相同的数字位置下标。,前面确定也存在一个染色染色为。进行染色,只有两种颜色。
2024-11-02 00:53:40
1256
原创 P11232 [CSP-S 2024] 超速检测
(符合要求):拍摄到超速测速仪,也好求**(二分)**求「前缀 / 后缀」。(如上图所示,答案就是一段一段连续的区间,代表某辆车被检测到超速的测速仪区间)),我们可以用(贪心)贴心的准备了加速度相关的公式(虽然只有一个有用);,最直接的办法就是想办法出掉精度丢失上带来的误差, 暴力枚举,每个测速仪开和关的状态,共。:保留若干个点,便得每个区间至少有一个点。题意较长,没有题目大意,否则你也大意。在主干道上「首个」测速仪的位置,,(有可能驶入主干道就超速了)。(区间的右端点排序),如下图。
2024-11-01 13:46:50
1021
原创 结营考试- 算法进阶营地 - DAY11
可是,地图上每个城市的粮食数不是它本身的粮食数,而是它与它相邻的所有的城市的粮食数之和。拓扑序,如果不是,在转移当前点时可能某个前驱节点还没转移到,如果从那个节点转移到这个节点刚好是最优解(或者最优解的一部分),答案就会出错。因为每个城市在小 A 地图上的粮食数都是它与它相邻的所有的城市的粮食数之和,所以我们可以通过它得到它所在的。位为 1,且与已得出的更高位部分的答案不矛盾,则可以贪心的开启新的一段。矩阵的中心的城市并将其在地图上显示的粮食数相加即可得到实际粮食数的总和。,最长不下降子序列的最大长度。
2024-08-19 00:24:19
1597
1
原创 2024 CSP暑期集训营地 - 思维题&异或 -晚测
{m-2 个 x}$ = $ \underbrace{ x⊕⋯⊕x }_{m-2 个 x}${m 个 x}$ = 0 ⊕ $ \underbrace{ x⊕⋯⊕x },然后从这个反转价值最小的点反转,再一次性走到。故可以得到任意正整数,只有 0 无法被得到。,所以我们要找到所有条件下最后面的那个点。 因为每一次的条件都是从后面的一个点。均为偶数,其他都必须进行一次操作。你可以对这个序列进行若干次操作。个相同正整数异或得到的结果都是。的每个二进制位都相同,所以。因而能得到的整数只有 0。
2024-08-15 22:14:43
835
原创 2024 CSP暑期集训营地 - 图&topo -晚测
图的深搜;题意:给定n个点,m条无向边,1号点作为起点,找到达k点的路径数量。根据41-6-7-3-8u1ukuvvuukk。
2024-08-14 18:59:40
792
原创 2024 CSP暑期集训营地 -入门DP&线性DP -晚测
这道题的大意是要从地图的 (1,1) 点起,走到 (n,n) 点,要求不能走在草堆上,并且转弯不能超过 k 次,求有多少种可行的方案。,就把该状态的方案数记录下来。以后如果遇到同样的状态的话,就可以直接返回该状态的方案数了。并且,在开始的时候,我们要把整个记忆化数组初始化为 −1。(0 代表往右走,1 代表往下走)。记忆化搜索能很好的解决这种问题:开一个。的求解过程中,有许多重复的子问题。额,这就 90 分,
2024-08-09 19:43:06
257
1
原创 P2782 友好城市
我们按北岸坐标大小对城市进行排序,来保证北岸序列单调上升; 因此,要满足题目中的条件,需要保证南岸序列和北岸序列。其中 $ 1 \le j \lt i$,尝试加入到以。(或恰好相反)的航道将不能被批准,因为他们发生了交叉。为结尾的序列上是否可以更长,如果可以则更新。来存放目前处理的最长上升子序列元素,保持。如果有一条已经被批准的航道,南北坐标为。,超时,所以需要用二分进行优化!为结尾的最长上升子序列长度。长度就能够批准的航线条数。分析下,航道不交叉的条件。中查找第一个大于等于。 然后,南岸序列的。
2024-08-06 11:45:38
887
原创 P3955 [NOIP2017 普及组] 图书管理员
给定n个数,q次查询。每次查询给出数字的长度len,以及数字num,寻找n个数中末尾的len个数字是否与数字num相等,如果相等输出最小值的一个数,否则输出−1。设定有一个字符串s,整型类型num;s.size()获取该字符串s的长度。获取字符串s下标从pos开始,长度为len的子串,如果len不填写则默认从pos截取到末尾的子串。将整型类型num转为字符串类型。(~~没有分析,~~纯模拟,看注释)
2024-07-19 13:05:57
712
原创 P1058 [NOIP2008 普及组] 立体图
同时我们可以发现这个图形坐标的规律。然后按照顺序进行绘制就可以了,注意,无论是输入还是输出还是处理使用【左下角】坐标是 (0,0) 的思想,这个过程会使得过程更加直观容易理解。坐标进行绘制,把立方体放到二维平面进行处理,可以从下往上,从左往右,从前往后。 我们发现只需要绘制三个面,根据坐标的规律,我们分别对这块的坐标进行绘制。我们讲这个右上角坐标取最大值,就是整张图的范围了。本题将会带大家从图形上分析立方体的规律,先。列,可以看作下图的排列,其中。从大的开始绘制和读入。
2024-07-19 02:14:29
858
原创 USACO 2012 - Jan 吃草模式
USACO 2012 - Jan 吃草模式测评链接:放牧模式;考点:基础图搜、dfs题意&分析 有一个矩阵 5×55 \times 55×5,给定 nnn 个障碍点牛不可以往这边移动,其他都是草场,其中左上角为搜索起点,右下角为搜索的终点,题目要求吃完格子的内草并到达右下角的方案数有多少种?很明显,本题就是每一个可行的点,搜索四个方向尝试移动,并且标记已经吃过的草不能回头吃(好牛不吃回头草),如果存在一条路径达到 条件:吃完格子内所有草,这个需要考虑进去,故需要用一个变量来记录 障碍物
2024-07-17 00:11:51
384
原创 P1043 [NOIP2003 普及组] 数字游戏
首先将环从起点断开,然后复制一遍接在后面,这样原问题就转化线段型的模型(“破环成链” 环形dp-> 区间dp)。如何计算,关键是寻找“集合划分的依据”,划分依据一般选择“最后一步的操作”,所以我们可以按最后一部分的位置来将。[手写笔记链接](./P1043 [NOIP2003 普及组] 数字游戏.one)的区间,取最大值 / 最小值即可。,那么这一类的最大是。
2024-07-14 17:59:05
847
1
原创 P1057 [NOIP2008 普及组] 传球游戏
(也是为了方便处理第一位同学和最后一位同学的传球)的时间,因此总时间复杂度是。个状态,计算每个状态需要。不妨设置小蛮的位置在。时需要特殊处理边界。
2024-07-14 17:52:45
809
1
原创 P1095 [NOIP2007 普及组] 守望者的逃离
因此当我们有充足的放技能时间,一定要尽可能放技能,所以只有最后一小段没有时间放技能的时候,才尝试用跑步的方式。再用跑步的方式来“插缝”,递推出结合两种方式,每秒最多可以跑多远。先求出只用闪烁技能时,每秒最多可以跑多远。的时间,所以总时间复杂度是。的时间,最多可以跑多远。个,计算每个状态需要。
2024-07-14 17:49:57
589
原创 vscode下载及配置C++11(适用于NOIP学生)
撰写日期:2023年3月14日核心目的:解决Windows10及以上电脑vscode配置C++11并使用调试功能,进行迭代修改(
2023-03-14 19:30:49
3718
空空如也
python中如何在获取好了的列表中的字典 如何输出字典的值,键已经锁定了(不用输出)。
2019-01-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人