- 博客(9)
- 收藏
- 关注
原创 洛谷题集——最大食物链计数(动态规划、图的基本应用、BFS)
题目给你一个食物网,你要求出这个食物网中最大食物链的数量。(这里的“最大食物链”,指的是生物学意义上的食物链,即最左端是不会捕食其他生物的生产者,最右端是不会被其他生物捕食的消费者。)Delia 非常急,所以你只有 1 秒的时间。由于这个结果可能过大,你只需要输出总数模上 80112002的结果。输入格式第一行,两个正整数n、m,表示生物种类 n 和吃与被吃的关系数 m。接下来 m 行,每行两个正整数,表示被吃的生物A和吃A的生物B。输出格式一行一个整数,为最大食物链数量模上 801120
2020-06-30 09:19:06 391
原创 洛谷题集——单源最短路径(弱化版、spfa+邻接表)
题目给出一个有向图,请输出从某一点出发到所有点的最短路径长度。输入格式第一行包含三个整数 n , m , s 分别表示点的个数、有向边的个数、出发点的编号。接下来 m 行每行包含三个整数 u , v , w 表示一条u→v 的,长度为 w 的边。输出格式输出一行 n 个整数,第 i 个表示 s 到第 i 个点的最短路径,若不能到达则输出 231-1输入输出样例输入4 6 11 2 22 3 22 4 11 3 53 4 31 4 4输出0 2 4 3洛谷测试平台S
2020-06-29 21:11:32 306
原创 牛客网题集——Min Value(逻辑)
Min Value牛客网测试平台题意:一个由 N 个数组成的序列 a1,a2,a3,······,an-1,an,从中任选两个数 ai 和 aj,使得 ai + aj 的绝对值最小,并且计算出 i + j 的值,其中 i ≠ j。输入描述:输入第一行包含一个正整数 N (2 ≤ N ≤ 100000)接下来 N 行,每行一个整数 ai (1 ≤ i ≤ N,-106 ≤ ai ≤ 106)输出描述:输出两个数,中间用空格分开,ai + aj 的绝对值的最小值和 i + j(如果有多组 i 和
2020-06-15 21:29:48 579
原创 C++STL库神器:nth_element() 详解
nth_element()nth_element() 函数头文件:algorithm.h//求第m大的元素arr[n];std::nth_element(arr, arr+m, arr+n);介绍功能将第 m 大的元素放在 arr 数组中适当位置注意①、函数是将第 m 大的元素放在 arr 数组中适当位置,其他元素按照第 m 元素的大小划分。在[ 0, n ]这个范围内,在第 m 个元素之前的元素都小于或等于第 m 个元素,而且第 m 个元素后面的每个元素都会比它大。②、用户可自定义排
2020-06-11 15:13:56 4457 2
原创 快速排序模板(循环+递归)
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归或者非递归进行,以此达到整个数据变成有序序列。快排实现方式:循环+递归#include<cstdio>#include<string.h>#define ll long longusing namespace std;int n;ll arr[100010]
2020-06-08 18:16:17 218
原创 洛谷题集——线性筛素数(一般筛选与线性筛选)
如题,给定一个范围 n,有 q 个询问,每次输出第 k 小的素数。输入格式第一行包含两个正整数 n,qn,q,分别表示查询的范围和查询的个数。接下来 qq 行每行一个正整数 kk,表示查询第 kk 小的素数。输出格式输出 qq 行,每行一个正整数表示答案。输入输出样例输入 #1 复制100 512345输出 #1 复制235711说明/提示【数据范围】对于100% 的数据,n = 108,1≤q≤106,保证查询的素数不大于 n。【普通筛——埃拉托斯特尼(Er
2020-06-06 19:49:48 544
原创 单调递增队列(全过程图文实现 另附习题)
不妨用一个问题来说明单调队列的作用和操作:不断地向缓存数组里读入元素,也不时地去掉最老的元素,不定期的询问当前缓存数组里的最小的元素。最直接的方法:普通队列实现缓存数组。进队出队都是O(1),一次查询需要遍历当前队列的所有元素,故O(n)。题目题目描述一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值。若前面的数不足m项则从第1个数开始,若前面没有数则输出0。输入格式第一行两个数n,m。第二行,n个正整数,为所给定的数列。输出格式n行,第i.
2020-06-05 20:22:12 1161
原创 拓扑排序(最大食物链计数、图文结合)
拓扑排序拓扑排序(topological-sort)是指由某个集合上的一个偏序得到该集合上的一个全序的操作。拓扑排序常用来确定一个依赖关系集中,事物发生的顺序。拓扑排序是对有向无环图的顶点的一种排序,它使得如果存在一条从顶点A到顶点B的路径,那么在排序中B出现在A的后面。最大食物链计数给你一个食物网,你要求出这个食物网中最大食物链的数量。(这里的“最大食物链”,指的是生物学意义上的食物链,即最左端是不会捕食其他生物的生产者,最右端是不会被其他生物捕食的消费者。)由于这个结果可能过大,你只需要
2020-06-02 17:34:21 577
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人