- 博客(18)
- 收藏
- 关注
原创 题解:AT_agc058_a [AGC058A] Make it Zigzag
这道AGC的题普通思路很容易想到,但需要一点点。容易想到做法:遍历整个数列,找到不符合波浪数列条件的那个数进行交换,但问题在于,这个操作能在次以内完成吗?因为 ,所以排列是一共有个的。如果是,即每相邻两个都要交换一次,那么肯定无法在次以内完成。这时候就选的两个地判断,每次结合左右两个数一起判断,如果右边的数比左边的大,则交换这个数和它左边的,反之交换这个数和它右边的。肯定比次少或一样多。
2024-07-08 21:50:46
146
原创 函数中递归的优化
其它别的情况就返回w(a−1,b,c)+w(a−1,b−1,c) + w(a−1,b,c−1)−w(a−1,b-1,c -1)a,5 b,7 c,3 结果:32,初步推断2的a次方。a,45 b,7 c,6 结果:16,初步推断2的a次方。例如a,3 b,2 c,4 结果:8;a,4 b,3 c,5 结果:16,初步推断2的a次方。a,5 b,6 c,3 结果:32,初步推断2的a次方。如果a<b并且b<c就返回w(a,b,c−1)+w(a,b−1,c−1)−w(a,b−1,c),
2024-07-07 22:04:57
270
原创 二次复习——DFS剪枝
DFS,深度优先搜索,从一个起始节点开始,沿着一条路径尽可能远地访问节点,直到到达不能继续前进的节点,然后返回上一层继续探索其他路径。这个过程是递归的,通过不断地深入进入节点的子节点,直到遍历完整个图。而DFS中的剪枝,是非常重要的一个部分,可以优化DFS中多余无效的查找,其中有五种比较常见且重要的剪枝方法。
2024-07-02 21:06:10
161
原创 寒假集训总结
是运用了dp的思想。初始化结束后,开始进行三重循环,每层循环从第一个节点开始遍历,直至遍历到第n个节点,设最外层循环当前节点为i,中间层循环的当前节点为j,内层循环的当前节点为k,且i≠j≠k。则以节点i为中介点,以节点j为起点,节点k为目标点,判断由起点j经由中介点i到达目标点k的代价值是否小于由起点j直接到目标点k的代价值,若小于,则将从起点j到目标点k的代价值d[j][k]更新为d[j][i]+d[i][k]。在遍历当前节点的邻居节点时,可以计算从起点到邻居节点的距离,并更新距离和路径信息。
2024-01-31 16:57:40
289
1
原创 【Usaco Dec07 Silver】修建道路 最小生成树
只不过要注意,最后的输出要保留二位小数。可以像我一样cout<<fixed<<setprecision(2)<<ans,也可以printf("%llf",ans)。每一行输入的都是二维坐标,因此可以开双重循环,记录每一条路之间的距离。FJ一共有4个坐标分别为(1,1),(3,1),(2,3),(4,3)的农场。这样,所建道路的总长为4.00,并且这是所有方案中道路。FJ选择在农场1和农场2间建一条长度为2.00的道路,在农场3和农场4间建一。最后,就是并查集的合并了,步骤和模板并无大差。
2024-01-26 18:37:15
303
1
原创 [JSOI2007] 建筑抢修 二叉堆
现在的情况是:T 部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间。同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修理多个建筑。你的任务是帮小刚合理的制订一个修理顺序,以抢修尽可能多的建筑。接下来 N 行,每行两个整数 T1,T2 描述一个建筑:修理这个建筑需要 T1 秒,如果在 T2 秒之内还没有修理完成,这个建筑就报废了。每一次将T1弹进堆里,等到时间已经超的时候,就把堆里面T1最大的建筑换成当前一个,同时ans--。第一行,一个整数 N。
2023-12-03 17:44:03
523
1
原创 带权并查集——【NOI2002 Day1 T1】银河英雄传说
合并指令为M i j,含义为让第i号战舰所在的整个战舰队列,作为一个整体(头在前尾在后)接至第j号战舰所在的战舰队列的尾部。该指令意思是,询问电脑,杨威利的第i号战舰与第j号战舰当前是否在同一列中,如果在同一列中,那么它们之间布置有多少战舰。该指令是莱因哈特窃听到的杨威利发布的舰队调动指令,并且保证第i号战舰与第j号战舰不在同一列。如果是莱因哈特发布的询问指令,你的程序要输出一行,仅包含一个整数,表示在同一列上,第i号战舰与第j号战舰之间布置的战舰数目。同时,每个战舰的father为自己,f[i]=i;
2023-11-25 15:43:40
1174
转载 a++和++a的区别
原文链接:https://blog.csdn.net/m0_70117540/article/details/124781813。由此就可以看出a先将0值赋给了b,才加了1。因此就可以说a++是先将a的值赋给了b再自加。初学者在学习C语言的时候,可能会分不清a++ , ++a。这里我就带大家来讲一下如何区分a++,和++a。由此就可以看出a先加1变成1,再将值赋给b。因此就可以说++a是先自加然后再将值赋给b。如果在不理解我们可以将b=a++;} 这样就好理解了。同理,我们给出++a的程序及运行结果。
2023-06-06 19:25:23
156
原创 栈——火车调度
某城市有一个火车站,如下图 所示,现有 n(n < =10000)节火车车厢,顺序编号为 1,2,3,...,n,按编号连续依次从 A 方向的铁轨驶入车站,从 B 方向铁轨驶出。在车站的门口有工人可以将车厢拖出车站,工人一次只能拖一节车厢,并且只能将车厢拖入B方向的铁轨。为了方便装货,调度员需要将车厢从新排列,问能否将车厢编号排列成A1,A2,......,An。如果能输出"yes",否则输出"no"。第二行,n个用空格间隔的整数,表示出站时车厢编号要排列成的顺序A1,A2,......,An。
2023-06-06 19:25:17
901
转载 CSDN-怎么设置被粉丝关注之后的自动回复
粉丝关注真是一件可喜可贺的事,那怎么对粉丝的关注进行回复呢。这篇文章来带你答疑解惑。进入csdn,找到右边侧边栏的小耳机图标。点击csdn机器人发送的链接。
2023-05-29 17:20:02
445
1
原创 打怪之贪心策略
为了打败第i只怪物,你需要消耗d[i]点生命值,但怪物死后会掉落血药,使你恢复a[i]点生命值。任何时候你的生命值都不能降到0(或0以下)。第一行两个整数n,z(1<=n,z<=100000),分别表示怪物的数量和你的初始生命值。请问是否存在一种打怪顺序,使得你可以打完这n只怪物而不死掉。一行为TAK(是)或NIE(否),表示是否存在这样的顺序。在一款电脑游戏中,你需要打败n只怪物(从1到n编号)。,如果总体下来是赚到了(加血),那么看做。首先是加血的怪,注意是要将扣的血。而扣血的怪是按加的血。
2023-05-25 19:21:34
124
1
原创 A数字三角 怨种
因为她非常热爱直角三角形,所以在纸上写下的数字按照直角三角形排列。现在告 诉你写她了 N 行数字,要求你打出这些数字。输出 N 行,第 i 行有 i 个数字,表示 zlx 写下的数字三角形。有一天,无聊的 zlx 从 1 开始数数,同时在纸上写下每个数的。一行一个数 N,表示 zlx 已经写了 N 行数字。
2023-05-23 20:51:15
64
1
原创 【语法基础】关灯
有n个灯排成一排,编号为1到n。有m个人从1到m编号。2号将凡是2的倍数的灯打开;3号将凡是3的倍数的灯做相反处理(将打开的关闭,将关闭的打开);以后的人都和3号一样,将。请计算第m个人操作之后,哪些等是点亮的。从键盘输入两个整数n和m(m
2023-05-23 18:46:33
123
1
原创 贪心之P5220摄像头1
有一个监控工程:在一条长度为L的笔直的公路上安装若干个摄像头,用于监控交通状况。我们可以把这条公路看作数轴[0,L]。何老板承包了这项工程,但交管部门对摄像头的安置提出了n个要求,每个要求形如[x,y],表示在[x,y]这段区间至少要安置一个摄像头。何老板想要用尽可能少的成本完成这项工程,因此,他想知道,最少需要安装多少个摄像头?
2023-05-15 18:38:48
59
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人