- 博客(26)
- 收藏
- 关注
原创 CCFCSP认证 2019-12D区块链
一张无向图,每个节点有条链,不同链之间有优先级。若一个点获得更高优先级的链,则它会更新自己的链,然后把该链传递给相邻节点(有时间延迟),此过程是递归的。现在按时间顺序给你两种操作:1:把某节点的链加长一块2:查询某节点的链让你输出正确结果。
2023-05-17 17:26:27
355
原创 Codeforces Round #818 (Div. 2) A-E复盘
# 1.a题 思维## 题意:一个棋盘,a和b在左上、左下角,分别要到右下、左上角。每次如果一个人在另一个人走过的路径上,就可以花费1的代价传送到该路径任意一个位置;反之,只能花费1的代价走一步。现在问你两人总步数的最小值## 思路:玩玩样例,发现最优解法是2*n+m-2 .(n,m为棋盘的长和宽),为了让答案最小,显然令x=max(n,m),y=min(n,m), ans=2*y+x-2
2022-09-03 14:21:35
274
原创 #CF Educational Codeforces Round 134 (Rated for Div. 2) A-E复盘
cf 134 div2
2022-09-02 15:48:52
373
原创 #CF div2 1582E. Pchelyonok and Segments题解(dp)
如果我们可以从左到右从一个序列中截取长度为k,k-1,k-2,...,1的子段(是截取所以子段两两不能重叠),且这些子段的元素和单调递增,则称其“k递增”。现在给你个序列,求k最大值。
2022-08-24 23:15:44
222
原创 #CF div2 1287C.Garland题解(贪心)
把一个残缺的全排列补齐,问其“复杂度”的最小值。“复杂度”指该全排列所有长为2的子段中,恰为一奇一偶的子段个数。
2022-08-24 22:41:31
176
原创 #CF 1705d.Mark and Lightbulbs题解(思维、构造)
给一个01串s,问你能否通过某种操作把它变为另一个等长01串t,若能给出最小操作数。这种操作是:如果i+1和i-1位置的元素不同,则可以将第i个元素反相(1变0,0变1).
2022-07-26 17:21:06
227
原创 #CF div2 1670D Very Suspicious题解(思维+贪心)
原题链接.给个无穷大的正六边形棋盘,可以画若干条过六边形对立顶点的直线,问这些直线最多可以构成多少个三角形。刚看题其实自己是挺蒙的,主要由于自己总局限于六边形之中,没有跳出来,用抽象的眼光看问题。后来在模拟中发现3点结论由此,我将此问题抽象为求n条直线最多交点数的问题。然后根据贪心,可知不同斜率的直线的数量之差不得大于1,否则一定可以把较多数量的直线k1,变成较少数量的直线k2,此时交点数至少增加1(画个图就一目了然)。那么我们可以轮流将三种斜率的线画进来,得到的就是最优解。...
2022-06-30 23:37:45
246
原创 #CF 1700d.River Locks 题解(思维、递推、dp)
原题链接.有n个水池,水池的容量是一个数组v[n]。现考虑选定其中m个水池,每个水池插根管子以每秒1单位的速度注水。注意这些水池的高度是按下标顺序递减的,即如果前一个水池的水满了,之后注入的水会流到后面还没满的水池。现在给你q个询问,每个询问给一个时间,问你能否在该时间内把所有水池注满,如果可以,应给出所用管子的最小值。法一:(我的方法)发现随着用时的增加,所用的最小管子数是单调不增的。那么给你一个用时t,怎么算出所用最小管子数minp呢?首先发现,minp>=⌈(∑k=1nvk)/t⌉\displa
2022-06-30 14:16:24
468
原创 C++期末简单梳理
1.前言写本文的目的主要有二。第一,为了分享一下自己在短短的一学期学到的C++知识;第二,把所学记录下来,方便以后复习,告别考完就扔的实用主义。声明:以下内容聚焦于C++的简单特性及应用,内容不是很深,仅供参考。另外,本文章持续更新。2.知识梳理2.1 封装性封装性是指把数据成员和方法封装到类中,调用时只在乎接口而不关心内部细节。2.1.1 名字空间名字空间就是作用域。主要作用就是使不同的名字可以被复用,如两个类可以有同名函数。1 类外定义函数: Type classname::func(
2021-12-29 15:29:25
662
原创 #CF D. MEX Sequences 题解(状态机dp)
原题链接.1.题意:给你一个线性序列,其元素是大小不超过序列长度的自然数,求其中满足某性质的子序列个数。设子序列a[n],如果他的长度为i的前缀满足∣a[i]−mex∣<=1|a[i]-mex|<=1∣a[i]−mex∣<=1(mex为除去该前缀所有出现过的数之外最小的自然数),我们就说这个子序列具有该性质。2.思路:考虑用dp解题,那么为了进行状态转移,我们需要具有该性质的子序列有怎样的规律。手画一下发现满足该性质的子序列无非有...
2021-12-28 12:15:39
508
原创 #BJTUOJ 铁憨憨骑士的小队分配(图论缩点+思维)
1.原题原题链接.在遥远的憨憨王国,有一个铁憨憨骑士团。骑士团中有 n 位骑士。为了使骑士们团结互助、尽可能发挥集体的战斗力,骑士团规定,每位骑士必须成为某一位骑士的“守护骑士”,遇到危险时优先保护他。每位骑士都至少要被一位骑士守护。显然,骑士不能守护自己。骑士团的团长有一天心血来潮,决定将骑士们分成若干个小队。有强迫症的团长对分队方法有着自己的一套要求:1、每个骑士都不能和自己的守护骑士在同一个小队中;2、如果有两个骑士在同一个小队中,并且守护了两个不同的骑士,那么他们守护的那两个骑士也必须
2021-12-10 12:02:35
724
原创 # BJTUOJ tower 题解(二维前缀和+代码能力+手速题)
1.原题(考虑到阅读体验问题,决定把原题贴过来方便查看)描述A国遭到了邪恶的B国的侵略。为了抵御B国的空袭,A国计划修建大量的防空炮。然而这时一个可恶的叛徒窃取了大量机密,并潜逃到了B国,将记有防空炮详细信息的地图交给了B国的国王。A国的地图可看作一个 n×m 个格子组成的矩阵,将A国分成 n×m 个地区。它的左上角为 (1,1) ,右下角为 (n,m) 。地图中一共有 k 个防空炮。其中防空炮 i 位于地区 (xi,yi) ,它的攻击方向为 di ,攻击力为 ai 。每个防空炮攻击距离为无限
2021-12-08 13:20:23
412
原创 # BJTUOJ 一颗姜会长多高? (二分+前缀和+简单贪心)
原题链接.1.题意给你一堆高度为h[i]的姜,现有2种操作,可操作个数分别为m1,m2。操作1:某个姜高度增加1,操作2:某个姜高度直接变成某个特定值。(当然m2<n)。现在给你t个询问,每个询问给你m1,m2,问你在此条件下最矮的姜的最大值为多少?...
2021-12-06 11:56:51
872
2
原创 # CF C. Divan and bitwise operations 题解(位运算+组合数学)
CF C. Divan and bitwise operations 题解(位运算+组合数学)原题链接.1.题意对于某个长为n的序列,给你该序列若干个子段及其所有元素的或(这些子段必然完全覆盖整个序列),告诉你一定存在一个序列满足要求,现在让你构造出满足要求的任一个序列,求它的所有子序列的异或和之和。(只需输出异或和之和)2.思路发现本题较难把整个序列构造出来,不过我们只需要输出异或和之和。...
2021-12-01 13:15:04
1194
2
原创 算法百题斩其三: 单源最短路与算法——其一
算法百题斩其三: 单源最短路与算法——其一写在前面:何所谓“斩”?斩,即快速而有力地切断,指我们用最精简的语言,一针见血地点破算法题的核心难点。斩需三思而后行;斩需借助外力、旁征博引;斩需持之以恒、铁杵磨针!1,dijkstra 与其堆优化1.1 是啥?dijktra算法是一种基于贪心思想的求正权图单源最短路的算法。其定义了一个“最小距离点集”,循环N次,每次将距离起点最小的点加入点集。1.2 特性?朴素dijkstra复杂度为O(n2)O(n^2)O(n2),而堆优化版dijkstra复杂
2021-09-09 00:01:29
139
原创 算法百题斩其二: 双向bfs——bfs的一种优化
算法百题斩其二: 双向bfs——bfs的一种优化写在前面:何所谓“斩”?斩,即快速而有力地切断,指我们用最精简的语言,一针见血地点破算法题的核心难点。斩需三思而后行;斩需借助外力、旁征博引;斩需持之以恒、铁杵磨针!1. 何为双向bfs?是啥?在知道初态和末态、且从两个方向产生的搜索树可覆盖所有(合法)状态的情况下,通过从起点和终点分别进行bfs,直到形成的两个连通块相交(若不交则无解),产生深度减半的搜索树。一般地,选择点集较小的那一侧进行下一次的延申操作,可以最小化“浪费”的状态,或者更直观地
2021-09-01 23:02:09
1031
原创 # 算法百题斩其一: floodfill
算法百题斩其一: floodfill写在前面:何所谓“斩”?斩,即快速而有力地切断,指我们用最精简的语言,一针见血地点破算法题的核心难点。斩需三思而后行;斩需借助外力、旁征博引;斩需持之以恒、铁杵磨针!1. 何为floodfill?floodfill算法,中文名泛洪填充算法。顾名思义,...
2021-09-01 22:08:37
487
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人