04 2022 档案

摘要:题目链接 https://ac.nowcoder.com/acm/contest/27274/E 模板题 用的Bellman-ford (此题不需要判断负环) 放AC代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N = 阅读全文
posted @ 2022-04-30 14:41 爱吃虾滑 阅读(28) 评论(0) 推荐(0) 编辑
摘要:模板题 解释一下第36行 判断两点间是否有路径 为什么是 INF/2 而不是INF? 题目所说“边权可能为负数”,虽然我们可能无法到达那个点,但是那个点的权值可能会被更新掉。如图所示 因为4到5的边权值为负的,那么1到5的距离是INF,这个点可能经过了4,也就是经过了负边,到点5,这时候1和5的距离 阅读全文
posted @ 2022-04-29 20:51 爱吃虾滑 阅读(19) 评论(0) 推荐(0) 编辑
摘要:· Dijsktra——单源有权最短路径 · 无负权边 · 基于贪心 · 朴素版Dijsktra O(n^2) 适用于稠密图 //朴素版的基于链式前向星和邻接表的时间复杂度为 O((n+m)logn) ,对于稠密图来说比 O(n^2) 还慢。 · 堆优化版Dijsktra O(mlogn) 适用于稀 阅读全文
posted @ 2022-04-27 18:09 爱吃虾滑 阅读(40) 评论(0) 推荐(0) 编辑
摘要:· 单源最短路算法 · 可以处理负边权,甚至可以处理有负环的情况 · 对每一条边额外进行一次松弛,如果松弛成功,即 dis[u]+w(u,v)<dis[v] 成立,则图中存在负环路,也就是说该图无法求出单源最短路径 · 适合稀疏图 · 如果有负权回路,短路不一定存在 void bellman_for 阅读全文
posted @ 2022-04-27 17:27 爱吃虾滑 阅读(22) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P3385 SPFA还没学,先用Bellman-Ford。 //更SPFA——2022.5.2 注意第45行的特判,因为存在某点不连通的情况。(差点没要我命...) Bellman-ford 放AC代码 1 #include 阅读全文
posted @ 2022-04-27 17:02 爱吃虾滑 阅读(18) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P1629 好嘛,又没看清题,我以为只需要让dis*2就好了呢,结果就听取WA声一片了呗。 结果仔细看题目才发现这是个有向图,不是走到终点接着回头这么简单的。 既然这样,邮递员在回来的时候就是求多源点到单源点最短路的情况了, 阅读全文
posted @ 2022-04-26 21:36 爱吃虾滑 阅读(20) 评论(0) 推荐(0) 编辑
摘要:· 适用于不含负边的图 · 可以被堆或者线段树优化 · 需要用到的数组: vis[]标记此点是否走过(或被收录到最优路径集合中);dis[]记录从出发点到每个节点的最短距离;front[]记录前面点 · 总结出两个步骤: ①每次从未标记的节点中选择距离出发点最近的节点,标记,收录到最优路径集合中。 阅读全文
posted @ 2022-04-25 21:33 爱吃虾滑 阅读(9) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P3371 Dijkstra+链式前向星 (因为数据范围太大,用邻接矩阵会炸) 放AC代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,s; 4 in 阅读全文
posted @ 2022-04-25 21:29 爱吃虾滑 阅读(59) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P2819 复习一下dfs 放AC代码 1 #include<bits/stdc++.h> 2 #define max_n 110 3 using namespace std; 4 int n,k,m; 5 int num; 阅读全文
posted @ 2022-04-25 15:27 爱吃虾滑 阅读(39) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P2820 Kruskal最小生成树,求所有不选的边的权值之和 放AC代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,k; 4 int cnt; 5 i 阅读全文
posted @ 2022-04-24 21:49 爱吃虾滑 阅读(23) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P1111 Kruskal求最小生成树最大边 差不多个板子了,怎么总是感觉找不到想做的那种题呢 放AC代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m 阅读全文
posted @ 2022-04-22 21:28 爱吃虾滑 阅读(66) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805098188750848 max_element() :返回容器中的最大值 min_element() :返回容器中的最小值 1、返回的是迭代器,所以输出值的话 阅读全文
posted @ 2022-04-20 20:32 爱吃虾滑 阅读(22) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805113036587008 https://pintia.cn/problem-sets/994805046380707840/problems/99480510 阅读全文
posted @ 2022-04-20 19:00 爱吃虾滑 阅读(23) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805107638517760 两种方式 一、从输出的第一行可以发现是去重+排序,显然要用set。(其实不用也可以emm) 把set中的数(也就是题干中的arr数组) 阅读全文
posted @ 2022-04-20 17:35 爱吃虾滑 阅读(30) 评论(0) 推荐(0) 编辑
摘要:%5d:采用右对齐方式,输出宽度为5,若不到5位在右边补零 %-5d:左对齐 %05d:和%5d一样,在左边补零 %.5:和%05一样 阅读全文
posted @ 2022-04-20 09:18 爱吃虾滑 阅读(2257) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805117167976448 排序+去重=>set (话说题意真的要多看几遍才能看懂。。) 思路:朋友圈人数>1的人可能也帅吧,但是没有帅到要求,放入not_han 阅读全文
posted @ 2022-04-20 09:10 爱吃虾滑 阅读(68) 评论(0) 推荐(0) 编辑
摘要:· 使用 set 容器存储的各个键值对,要求键 key 和值 value 必须相等。基于 set 容器的这种特性,当使用 set 容器存储键值对时,只需要为其提供各键值对中的 value 值(也就是 key 的值)即可。 · set 容器也会默认升序排序(当然也可以手动修改排序规则),只不过 set 阅读全文
posted @ 2022-04-19 21:12 爱吃虾滑 阅读(17) 评论(0) 推荐(0) 编辑
摘要:题目链接: https://pintia.cn/problem-sets/994805046380707840/problems/994805140211482624 结构体 https://pintia.cn/problem-sets/994805046380707840/problems/994 阅读全文
posted @ 2022-04-19 14:18 爱吃虾滑 阅读(27) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805143738892288 觉得我这几天应该多做一下关于字符串和进制的题了....... 感觉第12行是一个很巧妙的地方 放AC代码 1 #include<bit 阅读全文
posted @ 2022-04-18 21:21 爱吃虾滑 阅读(11) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805130426171392 第8、15行给了warning:"comparison of integer expression of different sign 阅读全文
posted @ 2022-04-18 20:42 爱吃虾滑 阅读(36) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805138600869888 1、因子个数不超过sqrt(n)+1 2、如果n为1或质数,那么只有一个因子。所以用一个变量first来记录连乘的第一个因子,若fir 阅读全文
posted @ 2022-04-18 19:13 爱吃虾滑 阅读(27) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805145370476544 一上来感觉没大有头绪,一直在找规律,好像很麻烦的样子,后来发现要用到高斯求和公式。即S=n(a1+an)/2 但是做出来之后会发现其实 阅读全文
posted @ 2022-04-18 15:27 爱吃虾滑 阅读(55) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P2872 谢谢,我真的会哭。。。。。我以为敲一遍的模板题而已。。。。(它就是!)又WA了好多遍还找不到错误。。。 第一个错误点:第20行没有用double把z传进来 第二个:29行两条边也要用double算 放AC代码 1 阅读全文
posted @ 2022-04-17 21:19 爱吃虾滑 阅读(24) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P3367 并:合并。将两个不相交的集合合并,合并时需要先查找。 查:查找。查找两个节点是否在同一集合内,也就是根节点是否相同。 集:集合。将新加入的点的根节点更新。 并查集:用来检查一个图是否存在环;合并合集或者判断是否有 阅读全文
posted @ 2022-04-15 14:42 爱吃虾滑 阅读(65) 评论(0) 推荐(0) 编辑
摘要:· string自带的find():可查找指定字符串和指定字符。 如在string1中查找string2,string1.find(string2);返回值为string2第一次在string1中出现的位置 若希望在特定位置开始查找,可使用 string1.find(string2,location 阅读全文
posted @ 2022-04-14 20:38 爱吃虾滑 阅读(44) 评论(0) 推荐(0) 编辑
摘要:用递归的方法实现以下算法: 1.以二叉链表表示二叉树,建立一棵二叉树; 2.输出二叉树的先序、中序和后序遍历结果; 3.计算二叉树的深度; 4.统计二叉树的结点个数; 5.统计二叉树的叶结点个数; 6.统计二叉树的度为1的结点个数; 7.输出二叉树中从每个叶子结点到根结点的路径。 1 #includ 阅读全文
posted @ 2022-04-14 15:57 爱吃虾滑 阅读(369) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P3366 你,作为一个模板题,我真的要恨恨地夸你几句 :) 点捏的真好,WA了N遍,这题(和队长)让我明白了一个人生道理:条条道路通罗马 TuT Prim:——(4.13) ①选取一个点作为顶点,此点生成一个树 ②找到与树 阅读全文
posted @ 2022-04-13 21:38 爱吃虾滑 阅读(198) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P1090 这题前几天一看到这个数据范围就把我重复排序的想法pass了。。。。 刚巧下午学了堆和哈夫曼树,所以想到这题不就是用小根堆解嘛?直接模板了。 然后看到标签里优先队列这四个认识又不认识的大字....当时学校在上数据结 阅读全文
posted @ 2022-04-11 23:01 爱吃虾滑 阅读(75) 评论(0) 推荐(0) 编辑
摘要:【问题描述】 小明最近迷上了一款名为《扫雷》的游戏。其中有一个关卡的任务如下, 在一个二维平面上放置着 n 个炸雷,第 i 个炸雷 (xi, yi, ri) 表示在坐标 (xi, yi) 处 存在一个炸雷,它的爆炸范围是以半径为 ri 的一个圆。 为了顺利通过这片土地,需要玩家进行排雷。玩家可以发射 阅读全文
posted @ 2022-04-11 13:37 爱吃虾滑 阅读(415) 评论(0) 推荐(0) 编辑
摘要:· map 容器存储的都是 pair 对象,也就是用 pair 类模板创建的键值对。 · 创建 map 容器: map<string,int>all; · 使用 map 容器存储的各个键值对,键的值既不能重复也不能被修改。 · 在使用 map 容器存储多个键值对时,该容器会自动根据各键值对的键的大小 阅读全文
posted @ 2022-04-11 13:18 爱吃虾滑 阅读(28) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P1048 本来想找一个背包的题目试一下,我也真是没想到它这么水..... 这跟01背包不能说是类似,只能说是一模一样。换一个变量名称的事儿。。。。。 放AC代码 二维: 1 #include<bits/stdc++.h> 阅读全文
posted @ 2022-04-08 22:35 爱吃虾滑 阅读(89) 评论(0) 推荐(0) 编辑
摘要:服了,背包问题我真的是学了就忘学了就忘学了就忘…… 写个博客总结一下,加深加深印象(供以后忘了的时候参考)。 问题描述: 有 N 件物品和一个容量为 V 的背包。第 i 件物品的体积是 w[i] ,价值是 v[i] 。求解将哪些物品装入背包可使价值总和最大。 问题特点: 每种物品只有一件,有两个状态 阅读全文
posted @ 2022-04-08 19:11 爱吃虾滑 阅读(36) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P4995 。。。。。。。连着做了好几道一样的题啊。。。。为啥他就是黄题 放AC代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 i 阅读全文
posted @ 2022-04-08 12:34 爱吃虾滑 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P2240 啥啊被骗了。。我还以为是dp。。。 将价值比算出来,并按照价值比从大到小排序。 (所有量用double类型,强转不对不知道为什么,一会儿去学学) 放AC代码 1 #include<bits/stdc++.h> 2 阅读全文
posted @ 2022-04-08 09:32 爱吃虾滑 阅读(49) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P1094 发现贪心总是和排序分不开欸(?) 先排序,用双指针分别从前后向中间走。 假如第一次a[l]+a[r]<=w,那么双指针都移动,否则r--。(很好想吧不解释了) 放AC代码 1 #include<bits/stdc 阅读全文
posted @ 2022-04-07 21:27 爱吃虾滑 阅读(70) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P1208 贪心 水题+1,um...没啥好嗦的(就是又双叒出现一点儿小错误emm....(扇自己一巴掌)) 放AC代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 阅读全文
posted @ 2022-04-07 20:20 爱吃虾滑 阅读(78) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P5019 想用暴力,一眼看到数据范围的我。。。。。。贪心题单还是得用贪心 来自dalao的贪心策略:若a[i]>a[i-1],则sum+=a[i]-a[i-1]。 看过递推后明白了上面是式子怎么出来的:https://ww 阅读全文
posted @ 2022-04-07 18:08 爱吃虾滑 阅读(21) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P1803 非要整些花里胡哨的题目和题意。。。。。。。 经典入门的贪心 因为要参加尽可能多的比赛,所以将结束时间排序,下一场比赛取结束时间早且与上一场比赛时间不冲突的。 放AC代码 1 #include<bits/stdc+ 阅读全文
posted @ 2022-04-06 21:30 爱吃虾滑 阅读(40) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P1223 呃。。。。。。是一道很水的题。。。。 不过好像是第一次用双关键字排序(?) 关于为什么是将所用时间从小到大排序,初中学不等式应该证明过→https://www.luogu.com.cn/blog/user2623 阅读全文
posted @ 2022-04-06 20:51 爱吃虾滑 阅读(39) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P1228 这题一上来让我很摸不着头脑啊............ 好不容易摸着了写的时候又迷糊了........ 好不容易写完了结果传参数传不对........ 好不容易传对了提交7遍都WA了........... 找了半天 阅读全文
posted @ 2022-04-06 14:11 爱吃虾滑 阅读(143) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P1010 看到这么多括号花里胡哨的就不想做。。。但其实还是个比较简单的题的。 思路放代码里吧。 放AC代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n; 阅读全文
posted @ 2022-04-04 21:50 爱吃虾滑 阅读(198) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P3612 思路是看的dalao的。。。代码是模仿dalao的。。。Um... 光看懂题目我就用了好长时间啊。。。但是是一道很有意思的题目! 首先看到数据范围:n<=1018,那么显而易见,分治欢迎您! 梳理题意: 给定一个 阅读全文
posted @ 2022-04-03 23:21 爱吃虾滑 阅读(74) 评论(0) 推荐(0) 编辑
摘要:目前发现有五种方法: ①搜两遍,第一遍倒着算最短路径,第二遍正着输出路径,适用于按字典序输出(比如这道题); ②搜两遍,一遍正着一遍倒着,第一遍先更新出正确的最短路,第二遍如果走到最短路上就标记该点,满足某个点dis1[x][y]+dis2[x][y]=minrode; ③搜一遍,多存一个一维数组, 阅读全文
posted @ 2022-04-02 21:30 爱吃虾滑 阅读(127) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.lanqiao.cn/problems/602/learning/ bfs最短路径输出表示 此题有五种方法orz...(唉。。。。。。。。。。。),总结在这里。这里用的第一种方法(见下面的思路)。 先说一下我错误的思路:先正着从起点开始搜一遍,求出每个点到起点的最短 阅读全文
posted @ 2022-04-02 20:31 爱吃虾滑 阅读(78) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P1259 递归+分治+打表(?) 先说思路: 初始化——(向后移——向前移——判断)(循环递归)——暴力枚举——输出 这题....一上来让我有点儿蒙啊....但其实就在于找规律,举几个例子自己动手写一下就恍然大悟了。 比如 阅读全文
posted @ 2022-04-02 15:36 爱吃虾滑 阅读(238) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://www.luogu.com.cn/problem/P2437 和p1255数楼梯这个题,不能说是毫不相同,只能说是一模一样。 不过是起点变化,不再是第一层了。 放AC代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 阅读全文
posted @ 2022-04-02 13:24 爱吃虾滑 阅读(84) 评论(0) 推荐(0) 编辑
摘要:这篇博客主要总结一下循环队列的顺序存储方式 #define M 100 //最大队列长度 Typedef struct { QElemType *base; //初始化的动态分配存储空间 int front; //头指针 int rear; //尾指针 }SqQueue; 队列的基本操作: Init 阅读全文
posted @ 2022-04-01 09:19 爱吃虾滑 阅读(96) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示