- 博客(21)
- 收藏
- 关注
原创 深度搜索bfs/dfs
当前节点没有未访问的邻居节点时,然后回溯到上一个节点,不断的尝试,直到访问到目标节点或所有节点都已访问。访问的,dfs 是按照一个路径。dfs 更适合于求解一个。例如:(八数码问题)
2025-04-08 20:27:00
175
原创 STL及其库函数
练习题单:https://www.luogu.com.cn/training/489520#problems1.1初始化:1.1.1一维:1.1.2二维:1.1.2.1行列均不可变vector v[5]可以这样理解:长度为5的v数组,数组中存储的是vector 数据类型,而该类型就是数组形式,故v为二维数组。其中每个数组元素均为空,因为没有指定长度,所以第二维可变长。可以进行下述操作:1.1.2.2行列均可变2.1定义2.2常见函数例题:https://pintia.cn/probl
2025-04-08 09:14:07
814
原创 next_permutation全排列
next_permutation的意思是下一个排列,与其相对的是prev_permutation,即上一个排列。由于prev_permutation和next_permutation的用法是一样的,下面就值讲解next_permutation的基本用法。next_permutation只能获得下一个排列,如果要获得全排列,那么就需要先对数组进行升序排序。next_permutaion(起始地址,末尾地址+1,自定义排序)二、next_permutation的基本用法。
2025-04-08 08:04:33
174
原创 getline(cin,s)
1,使用 cin >> n 读取整数后,输入缓冲区会残留一个换行符。cin.ignore() 会清除它,避免后续的 getline 读取到空行。2,或者在输入前面加一个这个。
2025-04-05 17:08:35
114
原创 输入输出同步流
优点:简洁,在取消同步流的情况下,一般会比scanf更快。用法:接收一个字符串,可以接收空格并输出。用法:接收一个字符串,可以接收空格并输出。
2025-03-22 16:14:22
204
原创 字符串哈希
STL 对这个序列可以进行查找,插入删除序列中的任意一个元素,而完成这些操作的时间同这个序列中元素个数的对数成比例关系,并且当游标指向一个已删除的元素时,删除操作无效。而一个经过更正的和更加实际的定义应该是:一个集合(set)是一个容器,它其中所包含的元素的值是唯一的。这在收集一个数据的具体值的时候是有用的。集合中的元素按一定的顺序排列,并被作为集合中的实例。一个集合通过一个链表来组织,在插入操作和删除操作上比向量(vector)快,但查找或添加末尾的元素时会有些慢。
2025-03-17 15:12:47
251
原创 回溯法算法
回溯算法能解决如下问题:组合问题:N个数里面按一定规则找出k个数的集合排列问题:N个数按一定规则全排列,有几种排列方式切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集棋盘问题:N皇后,解数独等等。
2025-03-16 16:02:56
161
原创 关于字符串的find,insert,replace,substr,reverse
关于字符串的find,insert,replace,substr。
2025-03-13 14:26:27
639
原创 动态规划dp
当状态转移方程涉及到上一行和当前行的元素时,通常需要使用二维DP数组。例如,背包问题中的状态转移方程常常涉及到两个维度,一个表示物品,一个表示背包容量。如果问题需要保留更多的信息,可能需要使用二维DP数组来存储这些额外的信息,以便后续计算。如果问题中只需要考虑当前状态和前一个状态之间的关系,而不需要考虑更远的状态,可以选择使用一维DP数组。当状态转移方程只涉及到上一行的元素时,可以使用一维DP数组。对于一些复杂的问题,使用二维DP数组可以更直观地表示问题的状态和状态之间的关系,提高代码的可读性。
2025-03-12 22:32:31
130
原创 二分查找/二分答案/二分浮点
找出最短距离,检查如果有更短距离就移除石头,ans++,如果ans大于要移除的石头数量就向左边查找最短距离,,如果ans小于等于要移除的石头,则向右区间查找更大的最短距离。折半查找,每次取中间,去掉不符合的一般,重复直到找到答案。
2025-03-12 22:32:15
239
原创 最短路径(优化版)dijkstra+优先队列
P市有n个公交站,之间连接着m条道路。P市计划新开设一条公交线路,该线路从城市的东站(s点)修建到西站(t点),请为P市设计一条满足上述条件并且最短的公交线路图。链接:https://ac.nowcoder.com/acm/contest/26077/1007。接下来m行,每行3个数a,b,v描述一条无向道路a——b,长度为v。如果有解,输出一行,表示满足条件的最短公交线路的长度c。第一行有4个正整数n,m,s,t。
2025-02-24 22:36:57
209
原创 Dijksktra算法最短路径C++
加入&就是引用,这里的for(const auto &edge: graph[minIndex]),可以直接对edge操作,更新。P市计划新开设一条公交线路,该线路从城市的东站(s点)修建到西站(t点),请为P市设计一条满足上述条件并且最短的公交线路图。链接:https://ac.nowcoder.com/acm/contest/26077/1007。第一位是符号位,0x表示16进制,int是32位,3就是0011,f就是1111。接下来m行,每行3个数a,b,v描述一条无向道路a——b,长度为v。
2025-02-24 22:09:39
421
原创 洛谷P5707上学迟到
给定一个双精度浮点数,对其向上取整。向上取整规则如下:对于正数,取得不小于这个正数的最小的那个正整数。比如3.7,向上取整为4;2.01向上取整为3;5.0向上取整为5。对于负数,取得不大于这个负数的最大的那个负整数。比如-3.7,向上取整为-4;-2.01向上取整为-3;-5.0向上取整为-5提示:以下是本篇文章正文内容,下面案例可供参考。
2024-11-11 19:27:07
363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人