- 博客(29)
- 收藏
- 关注
原创 3-3模拟赛补题报告
一头奶牛的等待时间等于她的到达时间与她乘坐的大巴的发车时间之差。若如此,它们同样也会消失(如果又有多个这样的区域,则同时消失),然后重力又会使得剩下的方块下落,这一过程持续进行,直到不存在大小至少为K的连通区域为止。类似地,如果当没有奶牛在吃草的时候有多头奶牛同时到达,那么资历最深的奶牛是下一头吃草的奶牛。他的农场上的一块非常小的牧草地出产一种据某些识货的奶牛说是世界上最美味的品种的草。由于手上(更确实的,蹄子上)有大把的空余时间,Farmer John 的农场里的奶牛经常玩电子游戏消磨时光。
2024-03-09 16:44:32
946
原创 状压dp:class1
司令部的将军们打算在N×MN \times MN×M的网格地图上部署他们的炮兵部队。一个N×MN \times MN×M的地图由N行M列组成,地图的每一格可能是山地(用H表示),也可能是平原(用P表示),如下图。没有相邻国王的条件:((k&p)=0&&(x&(p<<1))==0&&(x&(p>>1))==0。f[i][j]k]表示第i行的状态为k 且已经放了j个国王的方案数。dp[i][j]k]表示第i行的状态为j,i-1行状态为k的最大值。枚举i行,i行状态为j,i-1行状态为k,i-2行状态为h。
2024-02-19 16:45:04
376
原创 树上dp:class2
给定一棵n个节点的树,编号1到n,请求出以某个节点为根时,所有节点的深度之和最大。一个节点的深度定义为该节点到根节点的简单路径上边的数量。没有相邻国王的条件:((k&p)=0&&(x&(p1))==0。则f[v]=(f[u]-(g[v]*size[v]))+(n-size[v])f[i][j]k]表示第i行的状态为k 且已经放了j个国王的方案数。固定节点1为根,设g[i]表示以i节点为根节点的子树的深度之和。设f[i]为以节点i为根节点时所有节点的深度之和。
2024-02-18 17:50:24
388
原创 树形dp笔记:class1
给你N−1 个草地(A,B) 的相邻关系,问:最少需要建多少个信号塔能实现所有草地都有信号。与01背包类似,外层枚举总容量,内层枚举子树中选择留下的个数,dp[u][k]=min(dp[u][k-j]+dp[v][j-1]+w)dp[i][0]+=min(dp[v][0],dp[v][1],dp[v][2])被自己覆盖(预设为1)dp[i][1]=tmp+sum(f[v][0],f[v][1])被自己儿子覆盖。dp[i][2]+=min(dp[v][0],dp[v][1])被父亲覆盖。
2024-02-17 22:28:27
425
原创 2.15模拟赛补题报告
小W杀3只:在合法路径上枚举击杀的怪物,记录路径最大最小值和价值和,按最小值降序和最大值降序的结果保存,分别分配给小 W 和小Z,双指针遍历合并,同时只要z最大值严格小于w最小值,就不会有怪曾被重复打。线段左右端点一定递增,所以可以将状态作为点,转移方式作为边,将线段转化为树形结构,对于每一个l,向上找第一个大于r的节点(LCA),可进行树上倍增。每一个点可能存在一只怪兽,杀死它会获得一定价值(两人都 可以选择击杀或不击杀),求长度小于1e5的字符串的不同4位子串个数。杀死的任一只怪兽价值。
2024-02-16 21:11:39
429
原创 Y1:逆元
根据取模的性质,我们可以知道inv[a]*inv[b]=inv[a*b],所以我们可以通过ola筛算出质数逆元,在此基础上通过相乘求出合数逆元。两个正整数n,p(1≤n≤3×106,n<p<20000528),保证p是质数。求前缀积的逆元(此处求sinv[n])sinv[i-1]=sinv[i]*a[i]原数组逆元inva[i]=sv[i]*s[i-1];两边同除a,则inv(a)=a^(p-2)%p。第二行n个整数ai(1≤ai<p)求前缀积s[i]=s[i-1]*a[i]
2023-12-17 09:23:24
339
1
原创 NOIp2023赛后补题报告(分数及题解待补)
T1比较简单,半个小时就写完了,调了调发现最后两个点会超时,满分代码写了一个多小时,不确定对不对,过了大样例,就转到第二题了,还剩3小时不到,T2暴力写了40分左右之后先暂停,到T3写了5分,T4暴力想写8分没调出来,放弃了,最后40分钟编了几个样例,找了些小bug,优化了一下.比赛总分共 4 题,满分 400,赛时拿到 XXX 分,其中第一题 XX 分,第二题。XX 分,第三题 XX 分,第四题 XX 分。情况:赛中 XX 分,补题困难,未完成。情况:赛中 XX 分,补题困难,未完成。
2023-11-26 12:13:29
641
原创 模拟赛の终章总结
我家门前有两个串时间限制:2秒 内存限制:256M我家门前有两个串,一个是01串,另一个也是01串。我有两个01串,长度分别是 n 和 m,命名为 S 和 T。有Q此询问,每次询问给出 l1,r1,l2,r2 ,其中 r1−l1+1=r2−l2+1 ,令a=S[l1..r1],b=T[l2..r2]。你需要求出ai!=bi 的位置个数对2取模的结果。
2023-10-04 16:30:39
87
原创 CSP-S模拟赛总结6
你要不要试试图论时间限制:4秒 内存限制:256M给出三个整数x, y, P,P为素数,可以重复对x执行如下操作:选择一个整数z ∈ [1, P − 1],花费∣ x − z ∣元钱,使得x = x ∗ z mod P。最小需要花费多少钱才能使得x = y?设 ans(i, j) 为 当 x = i, y = j 时的答案,为了减少输出,你需要输出输入两个整数P,t。输出一个整数表示答案。2 10ans矩阵为:0答案为: 0∗10=00∗10=03 233233。
2023-10-03 16:02:45
114
原创 CSP-S模拟赛4总结
野生皮卡丘时间限制:1秒 内存限制:128M题目描述脸颊两边有着小小的电力袋。遇到危险时就会放电。会将尾巴竖起来,去感觉周围是否安全。没错这个就是皮卡丘,野生的皮卡丘大多群体行动,而且很少固定在一个地方。
2023-10-02 16:09:40
161
1
原创 CSP-S模拟赛3总结
虚假的一般图最小匹配时间限制:1秒 内存限制:256M给定 n 个点的完全图,第 i 个的点权为 ai。点 i 和 j 之间的边的边权为∣ai−aj∣。小可想求出这张图的最小 m 匹配,最小 m 匹配的定义如下:从图中选出 2*m 个点和 m 条边,每一条选中的边都恰好连接两个选中的点,每一个选中的点都恰好被一条选中的边相连。匹配的权值定义为所有选中的边的权值和。最小 m 匹配是找出如上描述中,匹配权值最小值。第一行:输入两个整数n,m,表述如题。
2023-10-01 16:23:56
70
原创 CSP-S模拟赛1总结
路灯照明时间限制:1秒 内存限制:256M小可是一个相信光的人,他最近在研究光与距离的问题。给定一个 2∗22∗2 的网格,每个网格都有一盏路灯,且都在格点上,即:四盏路灯的位置分别是左上角, 右上角,左下角,右下角。路灯都是需要耗电的,且耗电量与亮度有关,如果一盏路灯的耗电量是 x ,则它可以为他所在的格子提供 x 的亮度,并且为他相邻的格子提供 ⌊2x⌋,为他对角的格子提供 ⌊4x⌋的亮度,其中⌊x⌋表示对 x 向下取整。
2023-09-30 20:47:00
182
原创 Y1课程笔记:第12-14课时(线段树)
与“战功统计1”相同,小可有 n 个士兵,编号 1~n ,已知他们的初始战功 a [ i ],初始可能是负数,要为他们统计接下来的战功。继 “战功统计1” 之后,小可终于发现了代码的强大之处,为了方便处理,小可将军想要处理另外一种情况,多人战功变化的情况。接下来n行:每行两个数字op和y,表示如题的命令是第op条,要操作的数字 x=y^last。接下来n行:每行两个数字op和x,表示如题的命令是第op条,要操作的数字是x。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。
2023-07-23 23:11:18
76
1
原创 Y1课程笔记:第十一课时(生成树补充&&树状数组)
次小生成树是除了最小生成树之后,最小的那一个,但是分成了两种情况,严格次小生成树和非严格次小生成树。对于sum1数组的修改和之前是一样的,对于sum2数组的修改: sum2[l] 加上 l * x,给 sum2[r + 1] 减去 (r + 1) * x。单点查询是求差分数组前缀,得到某个点的值a[x],如果再求一次前缀,就是我们想要的答案sum[x]。所以,维护两个前缀和数组,sum1维护 d 数组的前缀和,sum2维护 d*i 的前缀和。对于区间求和,我们可以直接输出1-r的前缀和减1-l的前缀和。
2023-07-21 15:59:34
108
1
原创 Y1课程笔记:第十节(并查集补充&&最小生成树)
如图,在求最小生成树时,我们会将两个集合如此链接,之所以v回留下且唯一,是因为别的边都>v,而由题目可知别的边权应当为v+1,除去已有的一条边,两个集合最多可连接s1.size*s2.size-1条边,之后边权增加(s1.size*s2.size-1)*(v+1)。漂亮国要发生战争了,他们现在要开始征兵了,合格的一共有n1个男生,n2个女生,每征收一个人,必须要支付给他10000元,但是考虑到男生和女生之间的关系,如果男生x和女生y有d关系,其中一人被征收了,另一个人的征收费用就会便宜d元。
2023-07-19 21:02:49
102
原创 Y1课程笔记:第九课时(并查集问题)
合并指令为M i j,含义为让第i号战舰所在的整个战舰队列,作为一个整体(头在前尾在后)接至第j号战舰所在的战舰队列的尾部。该指令意思是,询问电脑,杨威利的第i号战舰与第j号战舰当前是否在同一列中,如果在同一列中,那么它们之间布置有多少战舰。如果是莱因哈特发布的询问指令,你的程序要输出一行,仅包含一个整数,表示在同一列上,第i号战舰与第j号战舰之间布置的战舰数目。样例解释{10,20,12,15,18},{13},{14},{16},{17},{19},{11}。输入一行,三个整数A,B,P。
2023-07-18 14:36:12
65
1
原创 Y1课程笔记:第八课时(bellmanford算法,SPFA算法,floyd算法)
这些城市编号从1到n。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几条路。接下来M行,每行包括3个整数A,B,C(1<=A,B<=N,1<=C<=1000),表示在路口A与路口B之间有一条路,我们的工作人员需要C分钟的时间走过这条路。第一行,4个用空格分开的正整数,D,P,C,F。对于100%的数据,1<=D<=1000,1<=P<=200,2<=C<=300,1<=F<=400。
2023-07-17 10:51:57
82
1
原创 Y1课程笔记:第七课时(dijskra算法)
之后大佬给了他一道最短路的题目,题目是这么说的:给定一张连通的非负权的有向图,求得root出发到达每个节点的最短距离,并将root中的所有可达节点的最短距离中的最大值设为当前图的直径。求得直径之后,将直径上的每个边进行修改,设当前图的直径的值为A,对于该直径上的每一条边e,如果该边e长度是奇数,则该边e加上A,如果该边e是偶数则该边变为A,对于生成的新图,请你求出新图下root的直径。第一行为两个数n,m,root (1<=n<=1000,1<=m<=2000000)表示有n个点,m条边,起点为root。
2023-07-16 14:15:08
270
1
原创 Y1课程笔记:第六课时(欧拉路与拓扑问题)
欧拉路径:连通图中,有一路径经过欧拉回路:欧拉路径基础上要回起点欧拉图:有欧拉回路的图时间限制:1秒 内存限制:128M有一个图,图中要么有两个奇点要么0奇点,如果是欧拉回路请从第一个点为起点开始遍历,如果有两个奇点,则以字典序小的为起点开始遍历,在遍历的过程中,字典序小的先遍历。第一行两个整数,n和e,表示有n个节点,e条边,n
2023-07-14 22:23:41
223
1
原创 Y1课程笔记:第五课时(搜索习题)
如果采用宽搜,在n=10000时,会遍历约400000000个数,一定会爆内存,但我们又知道答案是求最小值,一定在状态树的浅层,因此我们可以考虑迭代加深搜索↓。4.对于每一个k(1<=k<=m) 都存在有两个整数i,j(0<=i,j<=k−1 , i 可以和 j 相等 ) ,使得ak=ai+aj。经典宽搜求最短路径,入队时需要拆除的从尾部入队,不需拆除的头部优先入队,出队时头部出队,这样就能优先走无需拆除的路线。中的顺序,遍历搜索树中的节点,但第一次访问节点的累积顺序实际上是广度优先的。
2023-07-13 21:06:48
92
1
原创 Y1课程笔记:第四课时(线性数据结构&&搜索)
运用倍增思想,我们很容易推出在递推中,f[i][j]=max(f[i][j-1],f[i+2^(j-1)][j-1]),在查询时,设k=floor(log2(r-l+1)),则在l-r区间中最大值为max(f[l][k],f[r-po[k]+1][k]),最小值同理。每当黄昏,拔地而起的高楼大厦在灿烂的余晖下似一个个巍峨的巨人,两排立交桥直升到天,错落有致的商店、写字楼、居民房……以此题中最大值为例,设f[i][j]为从i开始长度为2^j的序列中的最大值,先将每个f[i][0]初始化为a[i],
2023-07-11 19:15:41
151
原创 Y1课程笔记:第三课时(线性数据结构)
小可平时为了让自己早起学习,会定n个闹钟,如果长度为m的一段时间内,有K个及以上的闹铃响了,那么小可就会被吵醒,现在请你帮助一下小可,最少关掉多少个闹铃,小可不会被吵醒。表示光标之前的序列为a1,a2,a3…ak,输出max 1≤i≤k Si,其中Si=a1+a2+..+ai。100%的数据下:1≤k≤n≤2∗10^5,1≤m≤10^6,ai≤10^6。输出题面描述的答案,如果i>n-k,则无法查找到最小值,不进行输出。
2023-07-10 23:09:55
88
1
原创 Y1课程笔记:第二课时(线性数据结构)
如果当前位置上的生物等级高于其相邻的右侧生物等级,那么就可以将其直接吃掉,由于生物们反应都非常迅速,同一时刻某一个生物可能存在被吃掉和正在吃掉下一个的情况。小可想将熊划分一下组,组内熊的编号一定是连续的,假设某一组区间为[L,R],那么这个组内熊的。给定一个N,表示一个序列的长度,然后输入这个序列,输出序列每个元素的左边最近的比它小的数字,如果不存在则输出-1。如果栈空,则价值为0;最终所有价值求最大值即可。分别查找每个数字左右第一个小于它的数 的下标l和 r,那么该数就是长度为r-l-1的区间的最小值。
2023-07-09 22:07:33
187
1
原创 Y1课程笔记:第一课时(语法补充)
假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。由题目可以推出优先合并最小的两堆果子费力最小,因此可以考虑优先队列(注意要用小根堆),每次先选出最小的两堆果子合并,将合并耗费的体力即加入答案又压入队列,直到队列内只剩1个数此时输出答案。子分类中,将来源地是此来源地的货物按照字典序排序,每个货物后面有一个括号,里面写货物的总数量。
2023-07-08 22:51:01
114
1
原创 拓扑问题:是否合法
然后,被帮助的那个人将称帮他的人为“师傅”,而提供帮助的人将拥有一个不错的“徒弟”。我们都知道,一个师傅可以有很多徒弟,而一个徒弟可能也可以有很多师傅,这是合法的。但是,有些人并不那么诚实,他们有非法关系。这意味着如果A是B的师傅,而B是C的师傅,则A是C的师傅。对于每种情况,第一行包含两个整数,N(要测试的成员)和M(要测试的关系)(2 <= N,M <= 100)。为简单起见,我们给每个人一个数字(0,1,2,...,N-1)。然后是M行,每行包含一对(x,y),这意味着x是y的师傅,而y是x的徒弟。
2023-04-08 18:55:27
66
1
原创 双向队列宽搜题目——回家之路
为了方便起见,可以将所有地理坐标看作是一个平面直角坐标系,将主要干道的坐标设置为(0,0)点。为了修建这条道路,有些存在原有建筑的地方需要进行拆除。这条路小可想修的横平竖直,即不存在弯曲的地方或者斜着的地方。第一行包含三个整数N,x,y,表示建筑的数量和小可家的坐标。然后输入N行,每行一个坐标,表示建筑所在位置的坐标。小可家的位置比较偏僻,因此小可想修建一条回家之路。请你输出为了修建这条道路,最少需要拆除多少建筑?2.入队时需要拆除尾部入队,不需拆除头部优先入队。1.经典宽搜求最短路径。
2023-04-01 21:59:24
95
原创 深搜剪枝题目:从上到下
小可在玩一个格子游戏。格子游戏的地图是一个大正方形,大正方形被分为了 n\times nn×n 个小正方形。小可一开始位于左上角的格子,要走到左下角的格子上去。走格子的路径有一个规则,必须路过所有格子恰好一次。时间限制:1秒 内存限制:128M。现在小可想知道给定 nn ,有多少条可行路径。一行,一个整数,表示可行路径数。一行,一个整数 nn。
2023-03-24 20:16:28
53
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人