
数据结构与算法
西瓜不甜不甜不甜
这个作者很懒,什么都没留下…
展开
-
最大公约数GCD(Greatest Common Divisor)算法小结
最大公约数GCD(Greatest Common Divisor)算法小结辗转相除法, 又名欧几里德算法int gcd(int a,int b) { if(b==0) return a; return gcd(b,a%b); } 数学归纳法int gcd(int a,int b) { while(a!=b) {转载 2016-10-29 22:45:29 · 691 阅读 · 0 评论 -
【HDU】5934 Bomb 强连通分量+缩点
http://acm.hdu.edu.cn/showproblem.php?pid=5934N个炸弹。 每个炸弹有坐标x,y,爆炸范围和引爆花费,若一个炸弹的爆炸范围内有另一个炸弹,那么如果该炸弹爆炸,就会引爆所有爆炸范围内的炸弹,求让所有炸弹爆炸的最小花费。先n^2,把每个炸弹爆炸范围内的炸弹都连一条有向边,然后再找强连通分量缩点,这样会形成多个DAG,然后对于每个DAG找一个入度为0的点,找这原创 2017-10-18 19:55:08 · 359 阅读 · 0 评论 -
5-9 集合相似度
给定两个整数集合,它们的相似度定义为:Nc/Nt×100%N_c / N_t \times 100\%Nc/Nt×100%。其中NcN_cNc是两个集合都有的不相等整数的个数,NtN_tNt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。输入格式: 输入第一行给出一个正整数NNN(≤50\le 50≤50),是集合的个数。随后NNN行,每行对应原创 2017-03-15 21:42:32 · 811 阅读 · 0 评论 -
排座位
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。 输入格式: 输入第一行给出一个正整数N(<= 104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下: K N1 P1 … NK PK 其中K(0 <= K <= 20)是发出去的红包个数,Ni是抢到红包的人的编号,Pi(> 0)是原创 2017-03-19 10:38:09 · 364 阅读 · 0 评论 -
抢红包
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。 输入格式: 输入第一行给出一个正整数N(<= 104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下: K N1 P1 … NK PK 其中K(0 <= K <= 20)是发出去的红包个数,Ni是抢到红包的人的编号,Pi(> 0)是原创 2017-03-18 22:17:24 · 371 阅读 · 0 评论 -
二叉树的遍历
先序遍历void InorderTraversal( BinTree BT ){ if (BT){ InorderTraversal(BT->Left); printf(" %c",BT->Data); InorderTraversal(BT->Right); }}中序遍历void PreorderTraversal( BinTree转载 2017-02-23 22:54:25 · 214 阅读 · 0 评论 -
求二叉树高度
int GetHeight( BinTree BT ){ if (BT){ int l=GetHeight(BT->Left); int r=GetHeight(BT->Right); if (l>r) return l+1; else return r+1; } else return 0;}原创 2017-02-23 17:04:40 · 345 阅读 · 0 评论 -
顺序表操作集
本题要求实现顺序表的操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef int Position;ty转载 2017-02-23 12:25:29 · 812 阅读 · 0 评论 -
单链表逆转
List Reverse( List L ){ PtrToNode t=NULL; PtrToNode newlist=NULL; while (L!=NULL){ t=L->Next; L->Next=newlist; newlist=L; L=t; } return newlist;转载 2017-02-22 15:55:56 · 304 阅读 · 0 评论 -
用c++类构建顺序表
#include <iostream>using namespace std;template <class T>class SqListClass{ private: T *Data; int Length; public: void CreateList(T a[],int n){ Data=new原创 2017-03-01 14:55:50 · 669 阅读 · 0 评论 -
5-1 最大子列和问题 (20分)
#include <iostream>using namespace std;int main(){ long int K,i; int a[100001]; int cursum=0; int maxsum=0; cin >> K ; for (i=1;i<=K;i++){ cin >> a[i]; } for (i=1原创 2017-02-23 17:13:39 · 257 阅读 · 0 评论 -
5-2 一元多项式的乘法与加法运算 (20分)
设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6 1 -2 0 3原创 2017-02-27 22:37:59 · 483 阅读 · 0 评论 -
L2-002. 链表去重
from:http://www.voidcn.com/article/p-ttkypqyj-bhh.html给一个链表,去重(去掉值或者绝对值相等的),先输出删除后的链表,再输出删除了的链表。 分析:用结构体数组存储这个链表,大小为maxn = 100000,node[i]表示地址为i的结点。在结构体中定义一个num变量,将num变量先初始化为2 * maxn。通过改变num变量的值最后so...转载 2018-03-12 14:35:25 · 518 阅读 · 0 评论