- 博客(7)
- 收藏
- 关注
原创 T1-F 最短路
题目描述: 给定一个包含 n (e3)个结点和 m 条带权边的有向图,求所有点对间的最短路径长度,一条路径的长度定义为这条路径上所有边的权值和。 题目解析: 多源最短路的模板题, Floyd:时间复杂度为O(n^3),能够解决负权边,不能解决负环,缺点就是很慢,不过此题放大了时间限制,floyd也可以过,模板如下。 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll dp[505][.
2021-12-30 20:24:30
179
原创 T1-J 舞会匹配
题目描述: 学校有n位男生n位女生,给定彼此的亲密度,亲密度大于m的男女可组成舞会的搭档。 求最多的搭档数。 题目解析: 二分图最大匹配的模板题。 在此介绍匈牙利算法:每一个左部点u,然后枚举该左部点连出的边,对于一个出点v,如果它没有被先前的左部点匹配,那么直接将u匹配v,否则尝试让v的“原配”左部点去匹配其他右部点,如果“原配”匹配到了其他点,那么将u匹配v,否则u失配。 尝试让“原配”寻找其他匹配的过程可以递归进行。需要注意的是,在一轮递归中,每个右部点只能被访问一...
2021-12-30 19:24:56
205
原创 T1-H 大鱼吃小鱼
题目描述: 给定n条鱼,每条鱼具有其自身体重,以及被捕食者吃掉后,捕食者会增加的体重。 假如你是一条鱼,你可以吃掉任何体重小于等于你的鱼类。现在需要吃掉所有n条鱼,请问你需要具备的最小体重x是多少。 题目解析: 题目的hint指出二分答案,我们的思路便很明确: x不会超过最大鱼的体重,因为最大的鱼直接可以吃掉n条鱼,同时,x也不会小于最小鱼的体重,如果这样的话一条鱼也吃不掉。这样,我们得到了x的范围,在其中进行二分查找即可。 由于鱼具有两种性质,并且需要对体重排序,定义结构如下: struc
2021-12-30 19:00:25
268
原创 T1-E 星际飞船
题目描述: 现有一星际飞船要从A地到达B地,两地距离为m,飞船配备n个引擎,每个引擎具有启动其一次能前进的距离a[i],(引擎可以重复使用),请问到达目的地启动最少的引擎次数是多少?(数据保证题目有解) 题目解析: 乍一看很像贪心,然而之前c3_a就是类似的问题,却需要用01背包求解, (如果不清楚什么是背包问题,移步(38条消息) 背包九讲——全篇详细理解与代码实现_良月澪二的博客-CSDN博客_背包九讲) 这个题不同点在于引擎可以重复使用,即为完全背包问题,只不过收益的最大值转变为个数的最小值
2021-12-30 11:16:03
281
原创 T1-B 概率斐波那契
题目描述: 不同于以往的斐波那契数列 , 本题中数列递推公式为 其中,表示第n项的值为在其前n项中等概率抽取两项的和,规定,现给定一正整数n(1e6),求的期望。(由于结果可能很大,请对998244353取余数) 题解: 对于考试中的一些输入简单整数并且输出简单整数的数学问题,可能很难快速得到结论,这时,我们可以先暴力打表寻找规律再加以证明。 a[0]=1;sum[1]=1; a[1]=2;sum[2]=3; for(int i=2;i<=30;i++) { a[i]=2
2021-12-29 21:55:39
444
原创 算法_板子
点积: 叉积:判断点在直线哪侧; 混合积:平行六面体体积 跨立实验:一条线段两端点相对于另一线段位置关系,可判断两直线相交,如果共线不想交也会通过实验,此时需要快速排斥实验判断 快速排斥试验:判断两线段分别作为对角线的矩形区域是否相交 判断点是否在任意多边形内部:pip 求两直线交点: 任意多边形周长:爆算 任意多边形面积:叉积 #include<cstdio> #include<cmath> using namespace std; int n;//n.
2021-12-26 11:44:22
235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人