- 博客(56)
- 资源 (1)
- 收藏
- 关注
原创 20231116模拟赛题解
此处有一个细节,就是如果某一个点在暴力覆盖其他点时发现某一个点已经被覆盖了,这时候我们应该继续往它的子孙处覆盖,因为它虽然被覆盖了,但是深度更大的子孙处很可能未被覆盖。打个表,把最终答案里分别以1到m为结尾的贡献求出来,然后观察一个数没有重复质因数的情况。可以发现,这个数的贡献即为它的质因子贡献的乘积。由此可以推断出,一个数的贡献就是将其中每个质因数按照同一质因子的情况计算,然后再相乘即可。层,找到它的祖先,在它的祖先处设立站点,随后再从它的祖先处开始暴力地覆盖节点。,注意此处并没有算自身乘自身的情况。
2023-11-20 20:21:21
130
原创 CSP2023反思
这次比赛的优点就是把自己会的分数基本都拿到了,没有非常离谱的失分,缺点首先是思维不够灵活,其次是代码能力不够导致提高T3没能打出部分分,在以后的训练中一定要改进。
2023-10-30 16:02:51
149
原创 P3011 [USACO11JAN] Traffic Lights S 题解
避免复杂的代码操作,所以我们可以通过一种朴实无华的简单思路来实现状态统一:我们可以将当前城市的时间加一,再次入队。这样就可以搞定第二种情况了,但是代码跑的比较慢,需要加上一个优化:当时间过大时,不再继续通过该状态更新其他点。剩下的就是判断当前时间当前点颜色了,自己思考吧hhh。第一种情况可以直接松弛并入队,第二种情况为了(题目不难,跑个spfa就行。记得无解情况输出0。
2023-08-26 21:26:58
248
原创 P4088 [USACO18FEB] Slingshot P 题解
第一种情况在树状数组中可以直接正向维护,因为它是由小到大的(如果看不懂可以自己思考一下),那第二种情况呢?我们可以把第二种情况倒过来处理,这样就转化为由小到大了。式子中含有绝对值,这让人很棘手,这时候就需要用到一个经典的办法,分类讨论,把绝对值拆开。,这个限制条件很好处理,只需要把牛粪和弹弓放在一起按第一关键字(写的比较快,所以不是很好,可能以后会改一下上面的题解吧。把与弹弓有关的值看做变量,其他的看做常量,式子化为。个弹弓(不考虑能否减少时间),需要的时间是多少?的最小值即可得出答案,但如何维护?
2023-08-26 21:26:04
207
原创 树上游戏(ABC218 G)题解
首先把所有点的权值离散化,每次插入一个值就给对应的点加一,这样能够更快的求出比某一个值小的元素数量。这里也可以用树状数组+二分维护。树状数组的基本操作大家应该都会,就不赘述了。如果是奇数个数,查找到这里就可以了,但是偶数不行,还要找出另一个数取平均。主要思路其他题解都有,不说了,主要说一下维护中位数的方法。接下来就是二分查找中位数,这也是比较简单的,代码如下。,所以维护时间复杂度。
2023-07-08 11:48:45
251
原创 AtcoderABC218(D~G)题解
遍历一遍树,维护当前路径上的中位数,这个离散化一下,用树状数组维护,二分查找中位数就行。把删边改为加边,问题转化为求加任意数量的边,使得最终图为连通图,最少能得到多少钱?时可以对未删边时的最短路上的边进行标记,如果没有删掉这些边,那答案是与第一次。所以先标记选择的最小生成树上的边,然后在剩下的边里选择,得到最大的钱数。首先想到的是暴力去做,但是这样的时间复杂度错了,因为边数最大的情况为。轴平行的边,然后暴力判断其中两条边能不能构成矩形。,又要是连通图,就是最小生成树。一定会选择子树中最大的那一个,小。
2023-07-08 09:24:48
266
原创 USACO13NOV银组&金组(20230706模拟赛)题解
,然后再修改一下循环,让代码访问数组时尽量一行一行地访问,这样可以加快读取速度。左右两边也好办,优先队列维护,每次更新一下堆顶,只要保证堆顶元素在。,无法通过,于是加上一点小优化,先修改一下循环范围,让循环次数变少(下面代码中最大循环循环次数为。于是输入时就可以直接暴力求出每个房间被喜欢的奶牛头数,然后再暴力推两遍房间,因为是环形。但是,这是一道2013年的题目,所以正解的时间复杂度应为。距离以内就行,队列里其他的元素不影响。,由于每个元素进队出队各一次,所以也是。以后的最大收益,转移方程也很好想。
2023-07-08 08:39:04
181
原创 USACO22DEC银组&金组(20230704模拟赛)题解
这时候会出现两种情况,第一种是有一个人,既用冰激凌又用钱,第二种是前面的一部分用冰激凌,后面的用钱。作为先手,需要让必胜态尽量快点被取完,所以就减去一个尽量大的质数使得这个数变为。中的值都是上升的,所以我们在判断它能否插入时,只需要与左边的第一个比较就行了。而钱主要是被花费在冰激凌不值钱的人身上,所以从后往前做一次背包,只考虑金钱。的大小排序,从前往后做一次背包,不考虑钱,只考虑冰激凌的花费。,所以取走任意合法个数后,后手都有办法将这个数重新变为。,以达到更新右侧的效果。时后手必胜,其余情况先手必胜。
2023-07-05 11:14:12
132
原创 USACO16JAN金组(20230703模拟赛)题解
怎么写,我们需要确定这个力度能否使所有干草堆爆炸,还需要确定一个因素,就是爆炸的位置。由于数据范围很小,所以可以直接模拟,关键问题在于如何判断奶牛已经能够判断出当前位置。奶牛判断当前位置会参考两个数据,一是边长,二是角度。思路得到了,但是代码也比较难写,这里提供一种代码较短的写法。这道题有二分和贪心两种解法,我考试时先想到的是二分,但是没有想清楚,得了。我们可以通过二分的方法确定,然后暴力向左右扩展,判断是否可行。路线已经固定,且必须走完,这就给我们一个启发,可以用。里,这里数据范围小,可以通过)
2023-07-05 10:41:57
136
原创 任意模数多项式乘法(MTT)笔记
对于任意模数下的多项式乘法,普通的FFTFFTFFT或者NTTNTTNTT已经无法满足我们的需求,因此我们需要寻找一种新的方法来解决这个问题,它就是MTTMTTMTT。
2023-07-02 20:33:54
294
原创 2023.1.13模拟赛总结
经典树剖,修改路径上的点,统计子树总和(此处注意子树节点实质上编号是在一起的,可以线段树区间修改)。直接建一棵区间为1~m的线段树,每插入一点就将该点值修改,维护区间最大值。,我们就可以减去这些情况,得到最终的结果。经典操作,维护区间最大连续子段和,单点修改。的情况没减掉,且这些情况的最大公约数为。区间翻转,区间修改,区间最大值查询。这样,我们就把问题转化为了求在现在的。虽然是莫反题,但是递推是可以搞的。但这之中还有些最大公约数不为。个数,使得最大公约数刚好为。:莫比乌斯反演、递推;的倍数个数,容易得到。
2023-01-14 08:31:36
594
原创 大步小步(bsgs)算法详解
大步小步(Baby Step,Giant Step,BSGS)算法,用来求解类似于。加入哈希表(可用map)中,再枚举。就可以算出了,方程的解也可以求出。已经给出,本算法只能解决。,在哈希表中找出对应的。例题:abc270g,接下来考虑枚举所有的。
2022-11-15 21:18:43
683
原创 AtCoder abc232 刷题总结
用两个字符串的第一个字符求出它们的差值,记得加上26再mod26,这样能保证该差值为非负数。然后再用差值将t数组推出,再比较推出的数组和t数组是否相等。Takahashi有一个字符串S,该字符串由小写英文字母组成,在这个字符串上,他可以做以下操作,只能做一次。那就直接处理出n个数的全排列,再暴力尝试即可AC。到其他点的最大距离即为可访问的最多格子数。给你字符串S和T,判断Takahashi是否能够将S变为T。给你一个由三个字符组成的字符串,就是两个字符之间有一个。到其他点的距离,然后找出最大值。...
2022-07-15 20:11:14
405
原创 manacher算法笔记
该算法由 Glenn K. Manacher 在 1975 年提出,是一种可以在O(N)时间复杂度下求字符串所有回文子串的算法,也是求最大回文子串最高效的算法。该算法的难度主要在于理解。求最大回文字串,首先要注意奇回文串与偶回文串的区别,如果不进行处理统一,就会使代码变得很复杂。那么怎么来统一呢?可以在每两个字符之间加上字符串中不曾出现的字符(包括头和尾),这样就可以使得字符串长度变为奇数,原因如下:设原字符串长度为k,则经过操作后变为2k+1,必定为奇数.设原字符串长度为k,则经过操作后变为2k+1,必定
2022-07-10 16:21:35
183
原创 【题解】[SDOI2011]计算器
[SDOI2011]计算器题目描述你被要求设计一个计算器完成以下三项任务:给定 y,z,py,z,py,z,p,计算 yz mod py^z \bmod pyzmodp 的值;给定 y,z,py,z,py,z,p,计算满足 xy≡z(modp)xy \equiv z \pmod pxy≡z(modp) 的最小非负整数 xxx;给定 y,z,py,z,py,z,p,计算满足 yx≡z(modp)y^x \equiv z \pmod pyx≡z(modp) 的最小非负整数 xxx。为了拿到奖品,
2022-05-24 19:38:12
354
原创 20211019普及组模拟赛总结
T1 餐馆吃饭题解:很容易想到,最少花费一定是四道菜中价格最小的一道和三道甜品中价格最小的一道之和。#include<bits/stdc++.h>using namespace std;int a[10],b[10];int main(){ for(int i=1;i<=4;i++){ scanf("%d",&a[i]); } for(int i=1;i<=3;i++){ scanf("%d",&b[
2022-04-19 20:43:02
137
原创 GDOI2022 普及组 游记
GDOI2022 普及组 游记Day -4突然被大宝叫走,很慌,结果是停课……Day -2来了场模拟赛,第六名,初一第三,还不错。Day -1依旧是模拟赛,考的一般。Day 0上午依旧是上文化课,非常的不爽开心。下午到机房,配置了一大堆东西,线上赛好麻烦。配置完$ vscode $和录频软件,来了场打击信心赛。拿了第七,竞赛班第一,初一第一,信心++。Day 1精神状态一般,提前来机房复习了一波$ dij $、快速幂之类的算法基础。$ 8:30 $,比赛终于开始了。T
2022-04-19 20:42:29
460
原创 NOI Online 2022 入门组总结
NOI Online 2022 入门组总结T1 王国比赛民间数据:100 pts官方数据:100 pts【思路】赛时思路:先根据大臣的答案统计每一道题的预测答案,然后再把预测的答案和真正的答案比较。正解:同上。【情况】这道题不用太多思考,看懂题就行,考试的时候正常发挥,快速打完了。T2 数学游戏民间数据:40 pts官方数据:70 pts【思路】赛时思路:z=x∗y∗gcd(x,y)z=x*y*gcd(x,y)z=x∗y∗gcd(x,y)z/x=y∗gcd(x,y)z
2022-03-31 19:36:44
4022
1
原创 【题解】商店购物
题目链接题解如下:大体思路就是枚举5个需要的物品的数量和优惠方案,然后和原价进行比较,取min值。首先很容易能够得出一个最基础的状态转移方程:f[i][j][k][o][v]=min(f[i][j][k][o][v],f[i-p[w][1]][j-p[w][2]][k-p[w][3]][o-p[w][4]][v-p[w][5]]+price[w]);其中f[i][j][k][o][v]表示在第1种商品拿i个、第2个商品拿j个……以此类推的情况下所需要的最小价格。但是这样只能拿部分分,仔细.
2022-03-22 20:25:13
268
原创 【题解】纪中篮球联赛
【题目描述】纪中有自己的篮球联赛,简称JBA,比赛共48分钟,需要注意的是比赛没有罚篮,没有3分球,所以每次得分一定是得2分。当比赛结束时,各项技术统计就应该出炉。作为记分员的你负责记录每一次的得分情况,现在你突然对两支队伍领先持续的总时间感兴趣。【输入】第一行包含一个整数N(1<=N<=100),接下来N行,每行描述一次得分。每个得分描述包含得分的队伍编号1或2,还包含得分时刻MM:SS(MM表示分,范围为[00,47],SS表示秒,范围为[00,59]),队伍和时刻之间用一个空格隔开
2022-03-22 20:24:33
150
原创 【总结】普及组比赛20211019
T1 餐馆吃饭题解:很容易想到,最少花费一定是四道菜中价格最小的一道和三道甜品中价格最小的一道之和。#include<bits/stdc++.h>using namespace std;int a[10],b[10];int main(){ for(int i=1;i<=4;i++){ scanf("%d",&a[i]); } for(int i=1;i<=3;i++){ scanf("%d",&b[
2022-03-22 20:23:54
162
原创 【学术】20道经典题代码汇总
【目录】高精度加法高精度减法高精度乘法高精度除以整型高精度除法并查集树状数组(子区间的和)快速幂取模埃氏筛法欧拉函数哈希+宽搜(八数码问题)全排列有重复元素的全排列n的全排列求n的r组合汉诺塔问题八皇后自然数的拆分手打快排逆元欧拉筛法最短路减半问题(未完待续)【正文】1.高精度加法#include<bits/stdc++.h>using namespace std;string ra,rb;int lena,lenb;int a[
2022-03-22 20:22:41
270
原创 【题解】收集邮票
#include<bits/stdc++.h>using namespace std;//设g[i]表示购买了i张邮票,买完剩下邮票需要的期望钱数.//设f[i]表示拿到了i张邮票,要取完剩下邮票需要的期望次数.//∴有n-i/n的几率拿到没有拿过的邮票,有i/n的几率拿到拿过的邮票.//那么有:f[i]=((n-i)/n)*f[i+1]+(i/n)*f[i]+1.// ((n-i)/n)*f[i]=((n-i)/n)*f[i+1]+1.// f[i]=f[i+
2022-03-08 20:23:37
578
原创 【题解】red is good
// 设f[i][j]表示有i张红牌,j张黑牌的最优策略的期望。#include<bits/stdc++.h>using namespace std;long long r,b;double f[5001][5001];int main(){ scanf("%lld%lld",&r,&b); f[1][0]=1; f[0][1]=0; for(long long i=1;i<=r;i++){ f[i][0]=i;
2022-03-08 19:45:45
115
原创 CSP-J2021总结
这次考试心态还可以,但是四道题只对了一道,两道超时,一道答案错误。做得不好,没有达到预期。除了第三题之外,其他题对拍全过,时间复杂度太高。洛谷自测分数分糖果插入排序网络连接小熊的果篮总分AC 100TLE 72WA 25TLE 702671.分糖果这道题做的还不错,想的时候没有花太多时间。L和R数据范围达到了恐怖的10910^9109,很明显不能暴力,只能考虑O(1)O(1)O(1)。...
2021-10-26 20:11:47
1367
2
原创 【算法】动态规划详解
Part 1 什么是动态规划首先我们需要明确一点,什么是动态规划?将一个问题分解为若干规模较小的子问题,通过求出子问题并保存子问题的解,然后再通过子问题来推导出原问题的解,这种算法就叫动态规划。那怎么分辨动态规划算法与其他类似算法的区别呢?你需要知道这三点:1.最优子结构2.状态转移方程3.无后效性这就是动态规划的性质什么,你还是分不清?请看Part 2。Part 2 动态规划与常见算法的区别动态规划vs递推动态规划的代码与递推算法是非常相似的,很多人会分不清,包括作者本人。
2021-08-27 20:06:50
544
原创 【2012年中山纪念中学信息学竞赛初一选拔赛一】纪中游戏(d)
【2012年中山纪念中学信息学竞赛初一选拔赛一】纪中游戏(d)(File IO): input:d.in output:d.out 时间限制: 1000 ms 空间限制: 262144 KB【题目描述】纪中的学生是很幸福的,因为纪中有很多课外活动,每一个学生都能找到施展才华的舞台。除了上面说的JBA外,每年还有元旦晚会、主持人大赛、形象大使、街舞比赛、心声晚会、每周一演等等很多活动。最近纪中又推出一项益智类的游戏——玩骰子,骰子是一个立方体,数字1到6分布在6个面上(如图所示),而且对着的两个面上的
2020-11-29 14:57:15
753
原创 【2012年中山纪念中学信息学竞赛初一选拔赛一】纪中作业(c)
【2012年中山纪念中学信息学竞赛初一选拔赛一】纪中作业(c)(File IO): input:c.in output:c.out 时间限制: 1000 ms 空间限制: 262144 KB【题目描述】入学第一天,老师给你布置了一份作业,求两个数A和B的最大公约数。由于A,B非常大,所以输入N个数,这N个数的乘积作为A的值,再输入M个数,这M个数的乘积作为B的值。要求你编程计算出A和B的最大公约数,由于答案可能很大,所以如果结果超过9位则只需要输出最后9位即可。【输入】第一行包含一个正整数N(1
2020-11-29 14:43:09
871
2
原创 【2012年中山纪念中学信息学竞赛初一选拔赛一】纪中篮球联赛(b)
【2012年中山纪念中学信息学竞赛初一选拔赛一】纪中篮球联赛(b)(File IO): input:b.in output:b.out 时间限制: 1000 ms 空间限制: 262144 KB【题目描述】纪中有自己的篮球联赛,简称JBA,比赛共48分钟,需要注意的是比赛没有罚篮,没有3分球,所以每次得分一定是得2分。当比赛结束时,各项技术统计就应该出炉。作为记分员的你负责记录每一次的得分情况,现在你突然对两支队伍领先持续的总时间感兴趣。【输入】第一行包含一个整数N(1<=N<=100
2020-11-29 14:25:13
530
原创 【2012年中山纪念中学信息学竞赛初一选拔赛一】美丽的纪中(a)
【2012年中山纪念中学信息学竞赛初一选拔赛一】美丽的纪中(a)(File IO): input:a.in output:a.out 时间限制: 1000 ms 空间限制: 262144 KB【题目描述】纪中分新旧校区,整个老区红墙绿瓦、飞檐雕梁、厚重古朴、气势恢宏。新区主要为近十年先后竣工的一批与旧区格调一致的现代化建筑。校园内树木参天,花香绿浓,厚重典雅的宫殿式建筑与颇具时代感的现代化大楼交相辉映,景致怡人。凤凰花红 纪中最美!寿屏公园是纪中最独特的一个风景线,上面的道路崎岖不平。有一天你亲自
2020-11-29 14:14:27
650
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人