- 博客(52)
- 收藏
- 关注
原创 xrc的比赛题解3
这道题贪心:我们倒着做,首先我们可以发现如果我们的ai是x的话,那么小于x的我们统计出个数加上大于x的需要贿赂的就行了,这里开一个小根堆。longlong。
2024-11-27 19:27:49
1002
2
原创 wcy的比赛题解2
这道题目是之前做过的首先我们看到这个题一定就会想到数学方面的知识。我们学过什么就用什么就行了,具体的就是找最大公约数,不断的约分,最后就退出来了具体的式子看这个longlong。
2024-11-26 09:58:36
694
原创 梦熊NOIP模拟赛
这道题贪心,实际上做了很久。我们首先可以将4个相同的拆成3+1,这样是正确的。然后我们就可以贪心枚举3+1,3+3+2,3+2,34,33,3*2,3这样的顺序来贪心。最重要的是细节和顺序。想出贪心策略后,这道题还是很简单的。longlong。
2024-11-25 08:50:13
944
原创 xbh的比赛
我们发现第一问很好解决,就直接按照从大到小的顺序排序,然后依次选就行了。然后第一问的答案就出来了。随后我们看第二问,我们发现和零一背包很相似。解决这样一个问题, 我们可以使用 01 背包。用fijk表示在前 i 个瓶子中选择了 j 个瓶子, 总容积为 k 的最大不移动的液体体积和。fijkmaxfi−1jkfi−1j−1k−biai然后我们用滚动数组优化,把i这维省去就可以了longlong。
2024-11-22 20:43:30
661
原创 yyd的比赛
这道题根据性质连边,然后用拓扑判断就行了首先是建图,对于等于的我们用并查集将他合并一下,然后就建好图了,然后我们进行拓扑,当发现在拓扑中同时出现两个点入度为零,就不能得到完整的,若不能进行拓扑,就会有冲突。longlong多测不清空,含泪见祖宗。
2024-11-21 18:28:53
563
原创 梦熊 NOIP-S2
这道题我一开始想的是优先队列,但是处理零这个情况的时候,没想好,我直接用一个队列村的所有打印机,每个打印机初始值都是0,就想寄了。然后考虑暴力:直接循环暴力找到第一个可以做的打印机就好了。得分55ptslonglong然后考虑正解,我们可以做出来两个队列,一个存使用的,一个存没有使用过的,即0然后将文件按照下发时间排好序,枚举这些文件,到当前文件后,看队头的元素是否满足当前的时间,如果满足,直接更改,若不满足,就从看还有没有没使用过的打印机,若还是没有,就更改队头(相当于等待了)。
2024-11-19 09:58:02
856
原创 比赛题题解
考虑在每个加油站都加满油,然后如果走到某个加油站使用的油比当前油箱内的油贵的话,就将油箱中比它贵的油卖掉,并加满当前的油,如果当前油箱的油达不到下一个加油站的话,那么就不可行,输出。因为是贪心,所以我们尽可能满足遇到的所有顾客,如果当前顾客不能被满足,那么就把之前购买量最大的给删掉,并满足该顾客,如果满足的话,就直接满足就行。这样做是优的:因为将之前购买量大的删去并满足这个顾客的时候,剩余的库存量是增加的,而满足的顾客数没变。这道题考虑贪心,往后贪心,如果贪不动了,我们考虑反悔。到它的子树中节点的答案。
2024-11-15 09:48:45
621
原创 2021NOIP题解
这道题就是考的预处理,查询都可以做到O1预处理时,对每个数进行标记,如果被标记就直接跳过,如果含有数字7,就将这个数的所有倍数都标记上然后查询时,如果被标记后就输出−1,否则输出输出这个数下一个报的数是多少longlong考试的时候挂在细节上了,定义的N是1e710,然后预处理出来的数少了,就寄掉了。
2024-11-10 17:34:10
303
原创 梦熊NOIP第一场
这道题考试时想到正解了,写了一遍发现写挂了,看了一下时间果断写了部分分部分分还是很好写的,就是序列全是1或0,得分30ptslonglong然后来考虑正解:,先手玩样例,我们不难发现将序列的每个点和对应点连接起来就会发现形成了一个环,通过证明可以得出最多会形成一个环,证明写在最后。然后我们处理出来每个点到环的距离,并预处理出来倍增数组,从某个点往下跳2k后会到哪一个点,求出环的长度,最后处理一下常数即可,基环树的题,考试时基环树不太会,写了半天还写挂了,。常数就是那些周期。
2024-11-09 16:25:47
510
原创 WCY的比赛题解
面对这种删边问题,一般都是通过倒推的方法变为加边问题,往往会好做。所以考虑倒推,问题转换为:通过不断加边,则每个点的掉落时间为它第一次与1号节点联通的时间,可用并查集维护。但是,一个问题来了:在一块连通块B与1号节点所在的连通块相连时,怎么更新B内的节点?1.fi记录i节点的父亲初始值fii;2.headi记录i节点的连通块的节点中编号最小的点;3.taili记录i节点的连通块的节点中编号最大的点;其中head。
2024-11-05 22:56:41
977
1
原创 xbh的比赛题
这个题目是需要往后考虑的,我考虑的少了一点没有考虑之后的区间,一道某节点不合法就直接输出了但是数据水的话还是能过不少点的就会发现缺少一个计数,应该是记录两个颜色的,我只记录了一个所以我们需要处理出来区间的比值那个特殊性质特判就行对于其它情况,发现所有段的比值都等于整个串里面的比值,也就是比值固定。在这个前提下,发现如果对于某一个满足比值区间,其子区间同样满足这个比值,将这个大区间拆成这个子区间和其补集同样满足条件,而且划分出的区间还多了一个。
2024-11-03 16:53:46
876
原创 春季测试 2023 我的题解
这道题目还是比较简单的容易发现,位于xiyi的格子的颜色只取决于 xi行与yi列的颜色。这时候可以想到开两个数组,分别存储列与行的绘画信息,然后发现前后的互相覆盖可以通过存储绘画顺序来得出。考虑Li表示第i行最后一次被染成什么颜色,Ui表示第i列最后一次被染成什么颜色,同时记录下这些操作的时间先后顺序。那么对于最终的格子ij,它的颜色就是Li和Uj中更晚的一个,简单判断一下然后输出即可。
2024-10-30 19:16:36
1024
原创 NOIP-2022 题解
一眼是计数类的题目,那就要思考怎么计数了这道题目还是很简单的类似于动态规划,只要找到转移的方法就行了,从哪里可以做出来首先先考虑C因为F是C下边随便加一个点所以只要求出C就求出了F。下边来考虑如何求C。注意到他并没有要求上下行一样唯一的要求是C的两个横要隔一行这就是问题的突破点这题很明显的计数计数用到什么?乘法原理加法原理。假设上边的有a个合法的横那考虑这一行每一个合法的横(这里说的不同是长度不同)给答案的贡献是什么?是不是每一个贡献a。
2024-10-29 14:41:28
898
原创 这几次比赛题解
因为考虑到再看,所以将所有题目都做成了pdf格式梦熊十三连测T1这道题其实什么也不用想,就按照题目给的意思来打代码就行,这就有40分可以拿。懒人做法#include<bits/stdc++.h>using namespace std;typedef long long ll;ll read(){ ll x=0,f=1;char ch=getchar(); while(ch>'9'||ch<'0') { if(ch=='-') f=-1; ch=getch
2024-10-22 17:50:23
1091
原创 做比赛记录
然后就是出题 找题 是需要时间的,彻底搞懂这些题目也是要时间的,没有说“看懂而讲不出来”,如果真正的理解透彻的话,不论怎样都会清楚明白的,可能会表述不清,但是不会讲不出来。首先是这个T1,是一个模板题,这个就需要我们熟练掌握模板了,所以这100分也是很简单就能拿到,可能会存在别人会而自己不会的板子,需要多运用。T2可能就偏重数学思维了,这道题用暴力DP也能拿一个不错的分数,虽然不是特别高,但是对于我这个水平来说就很不错了。T3也要有数学的推理能力,然后就是基础算法,如何实现。所以 基础+掌握 是重中之重。
2024-10-22 11:24:14
142
原创 CF54D P4683
/最后在将这颗子树递归输出,还是到了被标记的子树后先输出不被标记的,最后再输出标记的子树。//很容易发现,建立trie树之后总的答案数就是每颗子树的大小*2减去最长的单词的长度。//给最长单词所在的整棵根节点的子树打上标记,访问到后就跳过。//在递归时统计输出和答案大小,这就需要算法保证离线。暴力枚举,遇到1就在序列中加入子序列并判断是否成立。//输出顺序只需要保证最长的单词最后在输出就可以了。需要注意的细节是0的时候不能是子序列开头。//最长的长度也可以在进行递归时统计。
2024-09-13 15:33:36
286
原创 P3607 [USACO17JAN] Subsequence Reversal P
接下来考虑序列转移后,转移方程怎么弄,既然要转换,也要是最长不下降子序列,则要判断,转换后,是否是最长不下降子序列,则为。但是他又说在求这个最长上升子序列之前可以将任意一个序列旋转一次就是将其中元素组成的序列进行reserve操作。这道题看到前面就是最长上升子序列问题(不严格单调递增)首先,我们设一个数组 dpl,r,L,R,表示从。转移方程:我们先看看它不转换序列,最大价值,则为。
2024-08-20 16:15:54
221
原创 P5424 [USACO19OPEN] Snakes G
第三重: 循环 k 表示将编号 k+1 到 i 的物品分配给第 j组。第二重: 循环 j 表示现在要分配第 j组物品。那么这类 DP 怎么做呢?第一重: 循环 i 表示前 i 个物品。典型的资源分配类 DP。将sum进行前缀和处理。
2024-08-19 19:44:59
238
原创 P6120 [USACO17JAN] Hoof, Paper, Scissor S
首先,如果要在第 k次变,前面是出x手势,后面出y手势,那么就是k[x]1−x+k[y]x−n。其实k数组是可以用前缀和完成。
2024-08-19 19:42:50
235
原创 P5322 [BJOI2019] 排兵布阵
设dp[i][j]表示第i个城堡时,已派出j个士兵。决策时,贪心派出恰好严格大于某一玩家派出的数量的两倍(不然浪费)。我们发现又可以排序预处理出a[i][j]表示第i个城堡,出兵数量第j大的人出兵数量(因为这样可以很容易算出贡献,即为k×i)dp转移方程即为: dp[j]=MAX(dp[j−a[i][k]∗2−1]+k∗i,dp[j]);排序+贪心+分组背包。
2024-08-18 17:03:13
213
原创 P5020 [NOIP2018 提高组] 货币系统
不难证明其中b集合中的数一定属于a集合所求的就是将a集合中能用剩下的数表示出来的数的个数。其中最小的必选,就是一个完全背包问题后面的数字被标记了就不选。先将集合中的数排序,
2024-08-18 16:58:36
222
原创 P6280 [USACO20OPEN] Exercise G
我们设 f(i,j)表示前 i个素数总和为 j的所有 k 的总和,枚举第 i 个素数的幂进行转移,因为之前并没有用过第 i个素数,所以应把上一个状态乘上 ,所以直接方程 f(i,j)=∑f(i−1,j−。如果数字能回到原位置那么这些数就在一个环上所以我们求的就是这些环长的最小公倍数的和。倒序枚举即可,初始状态 f(0)=1,最后答案是 ∑f(i)接下来就是求环长为n的所有情况的最小公倍数的和。求最小公倍数就是拆成的所有质数的最高次幂的乘积。使最小公倍数最多就要使每个环长都互质。
2024-08-18 16:44:01
403
原创 P4817 [USACO15DEC] Fruit Feast G
转移方程f[i]|=f[i-a(b)]这道题枚举状态并转移就行了。先一直吃然后喝水再一直吃。
2024-08-18 16:13:21
148
原创 CF1209D Cow and Snacks
更进一步说,无论连边的顺序如何,在 k 个点间连 k−1 条边(无重边)能够让 G连通。对于一个有 k个点的图 G ,如果想要让它连通,那么。那么我们一边读入边一边用并查集维护连通关系就行了。在 k 个点间连 k−1 条边(无重边)。
2024-05-27 21:34:59
164
原创 B3600 [图论与代数结构 101] 图的代数表示
关联矩阵即用一个矩阵来表示各个点和每条边之间的关系,所以当图不是赋权图且无自环时,可以用关联矩阵表示。使用vector动态数组。
2024-05-27 20:41:59
260
原创 P2960 [USACO09OCT] Invasion of the Milkweed G 乳草的入侵
说实话,刚开始看到这个输入输出的时候非常蒙,幸亏老师给了翻译。
2024-03-18 21:06:13
581
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人