算法
While.True
这个作者很懒,什么都没留下…
展开
-
三角形顺时针和逆时针的判定
利用矢量叉积判断是逆时针还是顺时针。 设A(x1,y1),B(x2,y2),C(x3,y3),则三角形两边的矢量分别是: AB=(x2-x1,y2-y1), AC=(x3-x1,y3-y1) 则AB和AC的叉积为:(2*2的行列式) |x2-x1, y2-y1| |x3-x1, y3-y1| 值为:(x2-x1)*(y3-y1) - (y2-y1)*(x3-x1...转载 2018-05-05 20:08:13 · 1699 阅读 · 0 评论 -
同余定理+逆元
同余定理 定义:给定一个正整数m,如果两个整数a和b满足(a-b)能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m)。举个例子:如果两个数a和b之差能被m整除,那么我们就说a和b对模数m同余(关于m同余)。比如,100-60除以8正好除尽,我们就说100和60对于模数8同余。它的另一层含义就是说,100和60除以8的余数相同。a和b对m...原创 2018-07-24 16:54:14 · 474 阅读 · 1 评论 -
(Til the Cows Come Home )链式前向星存图,优先队列,dijkstra算法
题目链接 USACO 2004 November下面只是介绍模板,对于这道题还要注意边和顶点的输入顺序,下面的模板都是按照先顶点后边的顺序处理的,直接复制提交会wa的,所以最好是自己理解着做,要是偷懒直接复制wa了别怪我常规易于理解的方法#include <stdio.h>#include <queue>#include <string.h&...原创 2018-08-15 00:17:42 · 327 阅读 · 0 评论 -
数据结构BFS与DFS的实现(邻接矩阵)
#include<bits/stdc++.h>#define MaxInt 2e9#define MVNum 100#define OK 1#define ERROR 0using namespace std;typedef char VerTexType;typedef int Status;typedef int ArcType;bool visit[MVNum...原创 2018-11-03 11:04:58 · 528 阅读 · 0 评论 -
哈夫曼编码的实现(读入文件的形式)
#include<bits/stdc++.h>using namespace std;int w[30];typedef struct{ int weight; int parent,lchild,rchild;}HTNode,*HuffmanTree;typedef char **HuffmanCode;void Select(HuffmanTree HT,i...原创 2018-11-04 13:53:53 · 5396 阅读 · 0 评论 -
数据结构BFS与DFS邻接表
#include<bits/stdc++.h>#define MVNum 100#define OK 1#define ERROR 0using namespace std;typedef int Status;typedef int OtherTnfo;typedef char VerTexType;bool visit[MVNum];typedef struc...原创 2018-11-04 15:28:36 · 171 阅读 · 0 评论 -
最短路径(邻接矩阵)(弗洛伊德算法)
#include<bits/stdc++.h>#define MaxInt 1e8#define MVNum 100#define OK 1#define ERROR 0using namespace std;typedef int VerTexType;typedef int Status;typedef int ArcType;bool visit[MVNum]...原创 2018-11-13 19:57:07 · 2472 阅读 · 0 评论 -
插入排序的三种形式所需时间
#include<bits/stdc++.h>#define M 10010#define mod 10000using namespace std;typedef int KeyType;typedef int InfoType;int dt[13] = {5000,2500,1250,625,313,157,79,40,20,10,5,2,1};typedef s...原创 2018-11-27 17:53:06 · 488 阅读 · 0 评论 -
数据结构测试代码
1.二进制转化非递归 2.二进制转化递归 3.斐波那契递归 4.斐波那契非递归 5.大数加法 6.直接插入排序 7.快速排序 8.简单选择排序1.二进制转化非递归#include<stdio.h>int main(){ int j,i = 0; int m,a[100]; scanf("%d",&m); while (m) { i++;...原创 2018-12-24 13:17:53 · 486 阅读 · 0 评论