算法设计课程
请叫我迷妹
这个作者很懒,什么都没留下…
展开
-
Percolation
算法设计与分析 模拟考 Percolation 原创 ...转载 2020-01-07 14:39:56 · 167 阅读 · 0 评论 -
算法设计课程复习(9)-递归
递归#include <iostream>#include <cstdio>#include <vector>#define Max 100using namespace std;void pre(vector<int> inorder, vector<int> post, vector<int> &re...原创 2020-01-05 23:19:36 · 321 阅读 · 0 评论 -
算法设计课程复习(10)-拓扑排序
拓扑排序sort it all outsorting it all out#include <iostream>#include <cstdio>#include <queue>#include <vector>#include <cstring>#define Max 50#define Maxm 1000using...原创 2020-01-05 11:10:48 · 189 阅读 · 0 评论 -
算法设计课程复习(8)-最短路径
最短路径这里的最短路径算法是bellman算法,同时可以判断该图有没有正权回路或者父权回路Currency ExchangeAC代码#include <iostream>#include <cstdio>#include <cstring>#define Max 1000using namespace std;struct edge { ...原创 2020-01-04 21:03:54 · 161 阅读 · 0 评论 -
算法设计课程复习(7)-BFS & DFS
DFS棋盘问题#include <iostream>#include <cstdio>#include <cstring>#define Max 10using namespace std;int n, k, cnt, way; // cnt表示方案数,way表示这一个方案p放了多少颗棋子char maze[Max][Max];int vis...原创 2020-01-04 20:03:59 · 216 阅读 · 0 评论 -
算法设计课程复习(6)-网络流
网络流dinic算法dining模型详见diningAC代码:#include <limits.h> //INT_MAX的头文件#include <iostream>#include <stdlib.h>#include <assert.h>#include <cstdio>#include <queue>...原创 2020-01-02 14:54:45 · 216 阅读 · 0 评论 -
算法设计课程复习(5)-动态规划
动态规划合并石子这道题中如果只有两堆石子,也可以合并,和那道multiplication puzzle的题不一样,那道题是必须要三堆AC代码#include <iostream>#include <cstdio>#define Max 100#define INF 0x3f3f3f3fusing namespace std;int dp[Max][Max]...原创 2019-12-30 17:28:51 · 230 阅读 · 0 评论 -
算法设计课程复习(4)-分治算法
分治算法求逆序对数ultra-quicksortAC代码://用int会出错,改成用long long#include <iostream>#include <cstdio>#include <vector>#define Max 500005using namespace std;long long merge(int input[], ...原创 2019-12-30 16:24:30 · 216 阅读 · 1 评论 -
算法设计课程复习(3)-MST
MST求解用Krystal算法题目详见Agri-NetAC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#define Maxn 105#define Maxm 10000using namespace std;struc...原创 2019-12-20 19:57:46 · 179 阅读 · 0 评论 -
算法设计课程复习(2)-优先队列
优先队列优先队列的出队顺序是按照优先级来的,可以找到最小或者最大元素,同时支持插入或者删除最小最大元素。优先队列的格式:priority_queue<T, Container, Compare>T:队列中元素的数据类型Container: 用于储存和访问队列元素的底层容器的类型。Compare: 比较关系,默认是数值上的小于关系(return a<b),比如1<...原创 2019-12-20 19:11:18 · 340 阅读 · 0 评论 -
算法设计课程复习(1)-并查集
并查集并查集基本代码如下//定义元素的父母结点int p[Max];//初始化void init(int n) { memset(p, -1, sizeof(p)); //或者这样 for(int i=0; i<n; i++) { p[i] = i; }}//查找祖先int findroot(int a) { if(p[i] != a) { p[a] = ...原创 2019-12-19 20:59:47 · 149 阅读 · 0 评论 -
算法设计-动态规划(2)-背包问题
动态规划背包问题0-1背包问题有一个容量为V的背包,有n种物品,每种物品都有自己的重量w和价值v,每种物品都只有一个,现给出让该背包装最大价值的物品的方案。子问题是,对于每个物品,装下或者装不下。如果装不下,那么和前i-1个物品的最大价值是一样的。如果能够装下,但是装了之后不一定会大于当前相同体积的最优价值。状态是d[i][j],表示的是当背包容量为j时,前i个物品所能达到的最大价值。...原创 2019-11-20 17:03:48 · 595 阅读 · 0 评论 -
匈牙利算法求二分图的最大匹配
最大流算法的核心问题就是寻找增广路径,匈牙利算法也是,它的基本模式为:初始时最大匹配为空while 找得到增广路径do把增广路径加入到最大匹配中去(注:匈牙利算法虽然根本上是最大流算法,但是它不需要建网络模型,所以图中不再需要源点和汇点,仅仅是一个二分图。)对于增广路径可以用一个递归的方法来描述,“从点A出发的增广路径”一定首先连向一个在原匹配(就是我们要找的最大匹配)中没有与A配对的点...原创 2019-11-20 09:52:37 · 142 阅读 · 0 评论 -
算法设计-动态规划(1)-子序列和最大问题
算法设计-动态规划子序列和最大问题子序列和最大递推方程:d[i] = max{a[i], d[i-1]+a[i]},d[i]表示的是子序列一定会包含第i个元素的最大和,要么是从a[i]开始,要么是在原来的最大序列上再添一个a[i]。最终得到的最大子序列和是max{d[i]}(0<=i<=n)代码如下://b[i]的状态转移方程:b[i]=max{b[i-1]+a[i],a...原创 2019-11-18 23:17:06 · 531 阅读 · 0 评论 -
算法设计第三次上机作业-求逆序对数
算法设计第三次上机作业-求逆序对数题目描述对于一个长度为N的整数序列A,满足i < j 且 Ai > Aj.的数对(i,j)称为整数序列A的一个逆序请求出整数序列A的所有逆序对个数输入输入包含多组测试数据,每组测试数据有两行第一行为整数N(1 <= N <= 20000),当输入0时结束第二行为N个整数,表示长为N的整数序列输出每组数据对应一行,输出逆序对...原创 2020-11-06 19:04:04 · 888 阅读 · 0 评论 -
算法设计第三次上机作业-Raid
算法设计第三次上机作业-Raid题目描述有两种类型的点,一种是station,一种是agent,计算station和agent的最小距离。输入第一行是T,代表样例个数之后的每一种情况,第一行是N,代表有N个station和N个agent。接下来的2N行,依次是station和agent的坐标。输出每一行都输出最小距离,保留到小数点后三位。解题思路和求取平面内最小距离点对的解法一...原创 2020-11-06 19:04:25 · 269 阅读 · 0 评论 -
算法设计第三次上机作业-Multiplication Puzzle
算法设计第三次上机作业-Multiplication Puzzle题目描述给出一排写有数字的卡片,每次都从这排卡片中抽取一张拿出(不能拿第一张和最后一张),将该卡片上的数字和其旁边的两个数字进行相乘,重复该过程直到最后只剩下第一张卡片和最后一张卡片。使得乘数相加得到的和最小。例如,卡片上的数字为10 1 50 20 5, 如果抽取顺序为 1,20,50,那么最终得到的结果为10150 + ...原创 2020-11-06 19:04:15 · 220 阅读 · 0 评论 -
算法设计第二次上机作业-贪心算法
算法设计第二次上机作业-贪心算法区间合并题目描述给定 n 个闭区间 [ai; bi],其中i=1,2,…,n。任意两个相邻或相交的闭区间可以合并为一个闭区间。例如,[1;2] 和 [2;3] 可以合并为 [1;3],[1;3] 和 [2;4] 可以合并为 [1;4],但是[1;2] 和 [3;4] 不可以合并。我们的任务是判断这些区间是否可以最终合并为一个闭区间,如果可以,将这个闭区间输出...原创 2019-10-17 16:45:34 · 538 阅读 · 0 评论 -
算法设计第二次上机作业-The Unique MST
算法设计第二次上机作业-The Unique MST题目描述判断一个图的MST树是否唯一输入第一行是输入的测试样例的个数后面的每一个样例的第一行都给出两个数n和m,给出了总节点数和边数。之后的m行给出每条边的两个节点和权重。输出如果MST唯一,则输出权重若不唯一,则输出"Not Unique!"思路:查找MST树用Krustal算法,将所有的边进行排序,每次都选择权重最小的边...原创 2020-11-06 19:04:35 · 205 阅读 · 0 评论