- 博客(73)
- 收藏
- 关注
原创 P5661 [CSP-J 2019] 公交换乘 模拟
第 i 行的第 1 个整数代表第 i 条记录乘坐的交通工具,0 代表地铁,1 代表公交车;第三个整数代表第 i 条记录开始乘车的时间 ti(距 0 时刻的分钟数)。相当于遍历整个队列,由于队列无法进行关于下标的操作,所以每次都把不用的优惠卷弹出去,到备用队列。我们保证出行记录是按照开始乘车的时间顺序给出的,且不会有两次乘车记录出现在同一分钟。现在你得到了小轩最近的公共交通出行记录,你能帮他算算他的花费吗?输入文件的第一行包含一个正整数 n,代表乘车记录的数量。直接用代码模拟他就好了。
2023-07-07 15:11:51
433
原创 洛谷 P2782 友好城市 排序 动态规划
有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。编程帮助政府做出一些批准和拒绝申请的决定,使得在保证任意两条航道不相交的情况下,被批准的申请尽量多。第2行到第n+1行,每行两个整数,中间用一个空格隔开,分别表示南岸和北岸的一对友好城市的坐标。可以看到他的输入是无序的,我们先按照他们的北岸的编号来排个序。刚才做的,是把3和5舍去了,剩下的是1 2 4,也就构成了一个叫做“考虑25,他进入序列,就会把两个数都踢了,不划算,不要了。仅一行,输出一个整数,表示政府所能批准的最多申请数。
2023-06-23 15:14:51
452
原创 C++算法————二分查找
又是鸽了三千万年马上要打csp了,开始回流学j组的知识了,浅说一下二分吧()二分查找,是一种极其高效的算法。它适用于在一个有序数组中找一个元素。假设在一个升序数组里寻找一个数字,定义一个区间,两个变量,表示区间的起始和终止坐标。每次去寻找这个区间内的中间值,分为三种可能性:(1)这个数就是要找的,那么结束搜索。(2)这个数比要找的小,那么改变区间的起始坐标,将区间整体右移。(3)这个数比要找的大,那么改变区间的终止坐标,将区间整体左移。
2023-06-15 22:42:49
2137
1
原创 C++高级数据结构——ST表(倍增表)
今天我们所讲的叫做ST表,也被称为倍增表。ST表一般来说是用来处理“区间最值问题”(RMQ问题),就比如一个区间内的最大值、最小值之类的。
2023-05-29 21:15:06
1392
原创 P3029 [USACO11NOV]Cow Lineup S 双指针 单调队列
五一”小长假来了趟上海,在倒数第二天终于有时间做了一会儿题目,A了之后过来写一篇题解【问题描述】农民约翰雇一个专业摄影师给他的部分牛拍照。由于约翰的牛有好多品种,他喜欢他的照片包含每个品种的至少一头牛。约翰的牛都站在一条沿线的不同地方, 每一头牛由一个整数位置 X_i以及整数品种编号 ID_i表示。约翰想拍一张照片,这照片由沿线的奶牛的连续范围组成。照片的成本与规模相当,这就意味着,在一系列照片中的最大和最小 X 坐标的差距决定了照片的成本。
2023-05-02 19:07:19
874
2
原创 C++ 高级数据结构————[ 单调栈 ]
每周一篇的算法文章来了今天讲解的是高级数据结构中的——单调栈单调栈,顾名思义,就是升级版的栈()先回顾一下栈把,是一种线性表,它的特点是只能从一边进出,并且先进后出,后进先出。就想枪的弹夹一样。而单调栈,跟他有一点不同,每时每刻都要保持栈中呈现单调递增或单调递减但是,有一个问题:还是举个栗子如果把6,7,12,3,1,8依次入栈,那么就会呈现这种样子怎么看,他都不是单调递增或递减那我们就要引入单调栈的方法了。
2023-04-19 21:26:16
1108
原创 C++ [图论算法详解] 欧拉路&欧拉回路
蒟蒻还在上课,所以文章更新的实在慢了点那今天就来写一篇这周刚学的欧拉路和欧拉回路吧在18世纪初普鲁士的哥尼斯堡,有一条河穿过,河上有两个小岛,有七座桥把两个岛与河岸联系起来。有个人提出一个问题:一个步行者怎样才能不重复、不遗漏地一次走完七座桥,最后回到出发点。后来大数学家把它转化成一个几何问题——。大概就是这么个图就是现在人们所说的一笔画问题上面这个图太乱了,根本无法分析嗯~熟悉多了现在的问题就是,如果不重复且不遗漏地走过所有的边(点可以无限次走,没有限制)
2023-04-13 21:09:21
1939
1
原创 我的创作纪念日
完成每周的作业后,在晚上总会抽出精力来写博客。有时觉得数据上不去了,也会写一写算法详解。其实也没什么,就是在2023的csp中能取得一个满意的成绩(最大的愿望了算是)当时刚学了一年C++的蒟蒻,AC了一个省选的动态规划(尽管有些水)在看题解的时候了解了CSDN,并注册了账号。总访问量达到29814。
2023-04-04 15:03:48
243
1
原创 [图论] 暴力而又经典的多源最短路径算法————Floyd
没学过链式前向星或是邻接表就想做最短路径的题目?Dijkstra太难懂?你的一切顾虑都可以被Floyd轻松消灭前面所说的或是,都有一个大前提,的最短路也就是说,起点是一定的但如果题目是计算u和v的最短路径,那就得做许多次单源最短路径的计算,时间太长了而我们今天讲的Floyd是叫也就是说,只需要调用一次这个函数,就可以把所有情况都涵盖到。
2023-04-02 21:26:01
482
原创 P1353 [USACO08JAN]Running S 动态规划
奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运动方式是每天进行 n 分钟的晨跑。在每分钟的开始,贝茜会选择下一分钟是用来跑步还是休息。贝茜的体力限制了她跑步的距离。更具体地,如果贝茜选择在第 i 分钟内跑步,她可以在这一分钟内跑 di 米,并且她的疲劳度会增加 11。不过,无论何时贝茜的疲劳度都不能超过 m。如果贝茜选择休息,那么她的疲劳度就会每分钟减少 11,但她必须休息到疲劳度恢复到 0 为止。在疲劳度为 0 时休息的话,疲劳度不会再变动。晨跑开始时,贝茜的疲劳度为 0 。还
2023-03-21 21:38:41
350
2
原创 P1078 [NOIP2012 普及组] 文化之旅 Floyd
如果第i个文化被标记为已经访问过,那么下次发现更短的路径时就不会访问。首先抽象起来很简单,把每个国家看成一个点,每个国家之间的路径看做边。要访问的国家文化已经访问过。这时,主人公使者也不能去下一个国家。这种方法有一个弊端,就是如果需要判断是否访问过,就得用数组表示。一种是在最短路径函数中,加入判断,文明没有访问过且不矛盾。这时,主人公使者就不能去到下一个国家。第二种方法,在加边时,就把两种条件删掉。取值范围:本题中n小于等于100。其他地方全部为floyd模板。蒟蒻用的就是第二种方法。
2023-03-16 21:00:05
604
原创 图论详解——Dijkstra最短路径算法详解
1. 思想ford算法是利用动态规划的思想,而dijkstra是运用贪心策略,找到原点的最短路径2. 演示dijkstra利用蓝白点的思想蓝点代表还未访问,白点代表已经更新原点:1目标点:5
2023-03-12 12:43:56
774
原创 洛谷 P1821 [USACO07FEB] Cow Party S 最短路径spfa
寒假到了,n 头牛都要去参加一场在编号为 x 的牛的农场举行的派对,农场之间有 m 条有向路,每条路都有一定的长度。每头牛参加完派对后都必须回家,无论是去参加派对还是回家,每头牛都会选择最短路径,求这 n 头牛的最短路径(一个来回)中最长的一条路径长度。
2023-03-12 11:22:16
453
原创 动态规划详解(3)——易错点以及经典例题
虽然上一篇文章说了完结了,但经过高人指点,还需要出个第三期言归正传首先,我们先来说说易错点总结了以下几点:子问题重叠性,在使用min或max时,要根据题目决定是否将目前的状态假如,此易错点在上一篇文章已经说过,大家可以回看一下数组的下标,我们正常使用c++都是从1开始,但是数组的开始是0.初始化,有时不能简单的初始化为0,有时需要最大化,有时需要特殊值。而且f[0]这个位置也要考虑到for循环边界,有的题就是简单的1-n等等,到有的初始值不一样,所以要格外注意。
2023-02-07 18:27:41
1014
9
原创 动态规划详解(2)——初见代码
也被称作动态规划三要素,在我往期的动态规划文章都说过状态定义也就是上面说的f[i]或者f[i][j]所谓的状态定义就是定义f[i]或者f[i][j]代表的是什么状态。第i个人?第i个牛棚?第i个物品?……初始化尽人皆知,c++全局变量默认全部为0假如要求损失最小值,那么就得用min一般是min(当前状态,要被转移过来的状态)这里有两个点要讲:因为用的是min所以只要被转移状态大于0,当前状态就会不变,还是默认值0为什么还要min一下当前状态呢?
2023-02-06 17:58:06
1409
1
原创 动态规划详解(1)——基础概念
动态规划是数学、编程中一个重要的算法动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域,并在背包问题、生产经营问题、资金管理问题、资源分配问题最短路径问题和复杂系统可靠性问题等中取得了显著的效果。
2023-02-03 17:57:35
1034
原创 C++数论————质数筛法(单独判断一个数,判断N个数) 埃氏筛法
质数想必大家都不陌生从小学到大质数的概念:一个数如果除了1和本身之外没有其他的因子,那么这个数被称为质数今天要讲两个知识点:在C++中如何判断一个数是否为质数在C++中如何判断1-N之间哪些数为整数这个知识点较为简单充分利用上面的概念我们用一个for循环来解决因为对于每个数来说,1和n都是他们的因子所以循环开始为2,终止为n-1。
2023-02-02 19:03:29
2091
5
原创 洛谷 P2970 [USACO09DEC]Selfish Grazing S
约翰有N(1≤N≤50000)头牛,约翰的草地可以认为是一条直线.每只牛只喜欢在某个特定的范围内吃草.第i头牛喜欢在区间(Si,Ei)吃草,1≤Si=Ej或者Ei≤Sj.约翰想知道在同一时刻,最多可以有多少头奶牛同时吃草?奶牛们都很自私,他们不喜欢和其他奶牛共享自己喜欢吃草的领域,因此约翰要保证任意。很容易想到的排序方式就是,左端点排序,跨度值排序。因为他要看n个区间内,哪些是不重合的。
2023-02-02 16:47:25
538
原创 洛谷 P2983 [USACO10FEB]Chocolate Buying S
Bessie and the herd love chocolate so Farmer John is buying them some.The Bovine Chocolate Store features N (1
2023-02-01 16:40:34
472
原创 洛谷 P1417 烹调方案 01背包题解 动态规划
题目背景由于你的帮助,火星只遭受了最小的损失。但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星。不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~gw还是会做饭的,于是拿出了储藏的食物准备填饱肚子。gw希望能在T时间内做出最美味的食物,但是这些食物美味程度的计算方式比较奇葩,于是绝望的gw只好求助于你了。题目描述一共有n件食材,每件食材有三个属性,ai,bi和ci,如果在t时刻完成第i样食材则得到ai-t*bi的美味指数,用第i件食材做饭要花去ci的时间。众所周知,gw的厨艺
2023-01-30 17:46:58
664
原创 AcWing 1049 大盗阿福 线性dp
接下来的每组数据,第一行是一个整数N(1≤N≤100,000) ,表示一共有N家店铺。第二行是N个被空格分开的正整数,表示每一家店铺中的现金数量。阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃。他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金?该行包含一个整数,表示阿福在不惊动警察的情况下可以得到的现金数量。输入的第一行是一个整数T(T≤50) ,表示一共有T组数据。
2023-01-13 13:59:33
866
原创 洛谷 P1194 买礼物 (图论 最小生成树)
如果你买了第 II 样东西,再买第 JJ 样,那么就可以只花 K_{I,J}KI,J 元,更巧的是,K_{I,J}KI,J 竟然等于 K_{J,I}。又到了一年一度的明明生日了,明明想要买 BB 样东西,巧的是,这 BB 样东西价格都是 AA 元。而边往往是最难的,在这题里,如果两个物品之间有优惠,就建一条边,权值为优惠价格。特别的,如果 K_{I,J}=0,那么表示这两样东西之间不会导致优惠。我们保证 K_{I,J}=K_{J,I},并且 K_{I,I}=0。现在明明想知道,他最少要花多少钱。
2023-01-11 11:58:24
736
原创 Usaco Training 刷怪旅 第三层 第六题:Ski Course Design
Farmer John has N hills on his farm (1
2023-01-05 18:36:10
656
原创 Usaco Training刷怪旅 第三层 第五题:Wormholes
Farmer John's hobby of conducting high-energy physics experiments on weekends has backfired, causing N wormholes (2
2023-01-05 18:02:09
490
原创 Usaco Training 刷怪旅 第三层 第四题 :Combination Lock
Farmer John's cows keep escaping from his farm and causing mischief. To try and prevent them from leaving, he purchases a fancy combination lock to keep his cows from opening the pasture gate.Knowing that his cows are quite clever, Farmer John wants to m
2023-01-02 16:37:25
411
原创 Usaco Training刷怪旅 第三层 第三题:Prime Cryptarithm
(This poorly named task has nothing to do with prime numbers or even, really, prime digits. Sorry 'bout that.)A cryptarithm is usually presented as a pencil-and-paper task in which the solver is required to substitute a digit for each of the asterisks (o
2022-12-29 18:44:10
1007
原创 Usaco Training刷怪旅 第三层 The Second One : Barn Repair
It was a dark and stormy night that ripped the roof and gates off the stalls that hold Farmer John's cows. Happily, many of the cows were on vacation, so the barn was not completely full.The cows spend the night in stalls that are arranged adjacent to ea
2022-12-28 20:15:32
380
原创 Usaco Training第三层 第一题:Mixing Milk
The Merry Milk Makers company buys milk from farmers, packages it into attractive 1- and 2-Unit bottles, and then sells that milk to grocery stores so we can each start our day with delicious cereal and milk.Since milk packaging is such a difficult busin
2022-12-26 17:17:35
1147
原创 Usaco Training刷怪旅 第二层第四题:Palindromic Squares
Palindromes are numbers that read the same forwards as backwards. The number 12321 is a typical palindrome.Given a number base B (2
2022-12-24 20:25:31
1021
2
原创 Usaco Training 第二层 第三题 Name That Number
Among the large Wisconsin cattle ranchers, it is customary to brand cows with serial numbers to please the Accounting Department. The cow hands don't appreciate the advantage of this filing system, though, and wish to call the members of their herd by a pl
2022-12-24 20:17:29
1043
原创 Usaco Training刷怪旅 第二层第二题:Transformations
A square pattern of size N x N (1
2022-12-21 18:39:42
385
原创 Usaco Training刷怪旅 第二层第一题:Milking Cows
Three farmers rise at 5 am each morning and head for the barn to milk three cows. The first farmer begins milking his cow at time 300 (measured in seconds after 5 am) and ends at time 1000. The second farmer begins at time 700 and ends at time 1200. The th
2022-12-21 18:17:51
693
原创 动态规划练习:股票买卖 线性dp
最近越来越多的人都投身股市,阿福也有点心动了。谨记着“股市有风险,入市需谨慎”,阿福决定先来研究一下简化版的股票买卖问题。假设阿福已经准确预测出了某只股票在未来N天的价格,他希望买卖两次,使得获得的利润最高。为了计算简单起见,利润的计算方式为卖出的价格减去买入的价格。同一天可以进行多次买卖。但是在第一次买入之后,必须要先卖出,然后才可以第二次买入。现在,阿福想知道他最多可以获得多少利润。输入的第一行是一个整数T(T≤50),表示一共有T组数据。
2022-12-15 15:59:52
412
原创 Usaco Training刷怪旅 第一层第四题:Broken Necklace
You have a necklace of N red, white, or blue beads (3
2022-12-14 17:53:04
109
空空如也
对于博弈论蒟蒻的一个不成熟的想法
2022-12-30
优先队列怎么返回队尾元素??
2022-09-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人