自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 07-图6 旅游规划 (25分)

单源最短路算法#include<bits/stdc++.h>#define inf 260000using namespace std;struct node{ int dist; int cost;};node Map[505][505];int dist[505],cost[505],n,m,s,d;int main(){ scanf("%d %d %d %

2016-04-28 17:37:57 999

原创 05-树7 堆中的路径 (25分)

ac代码#include<stdio.h>#define MaxN 1001#define MinH -10001int H[MaxN],size;void Create(){ size = 0; H[0] = MinH;}void Insert(int X){ int i; for(i=++size;H[i/2]>X;i/=2) H[i] =

2016-04-28 15:50:17 552

原创 05-树8 File Transfer (25分)

并查集#include<bits/stdc++.h>using namespace std;const int maxn = 1000;int father[maxn];int findroot(int x){ if(x != father[x]){ father[x] = findroot(father[x]); } return father[x];

2016-04-28 15:48:48 879

原创 04-树6 Complete Binary Search Tree

用数组ac代码#include<cstdio>#include<cstdlib>const int maxx = 1005;int node[maxx];int tree[maxx];int pos = 0,n;int cmp(const void *a,const void *b){ int *pa = (int *)a; int *pb = (int *)b; r

2016-04-28 15:47:17 451

原创 03-树3 Tree Traversals Again

根据题目: 入栈的顺序即为先序遍历的顺序 出栈的顺序即为中序遍历的顺序 然后根据先序遍历、中序遍历来构建二叉树AC代码#include<iostream>#include<stdlib.h>#include<stdio.h>#include<string>#include<stack>using namespace std;typedef struct TreeNode *BinTre

2016-04-26 16:39:02 400

原创 06-图3 六度空间 (30分)

BFS key:记录BFS的层数,在BFS层数为6的时候计算count/Nv ac代码#include<stdio.h>#include<iostream>#include<queue>using namespace std;int G[10005][10005];bool Visited[10005];int Nv,Ne;void CreateGraph(){ scanf("

2016-04-26 09:54:56 1002

原创 06-图2 Saving James Bond - Easy Version

#include<iostream>#include<vector>#include<cmath>using namespace std;#define MinLen 42.5struct Point{ int x; int y; bool visited;};Point O;int N,D;vector<Point> s;double Distance(Poi

2016-04-25 23:00:29 320

原创 06-图1 列出连通集 (25分)

BFS中非STL实现#include<cstdio>#define N 15int G[N][N],Nv,Ne;bool Visited[N];void InitVisit(){ for(int i=0;i<N;i++) Visited[i] = false;}void DFS(int V){ Visited[V] = true; printf("%d

2016-04-25 22:58:51 466

原创 PAT 1074 Reversing Linked List

题目链接AC代码#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;int list[100010];int node[100010][2];int main(){// freopen("F:\\in1.txt","r",stdin); int str,num,r; scan

2016-04-24 11:08:07 307

转载 蓝桥杯~快速排列

快速排序排序在各种场合经常被用到。 快速排序是十分常用的高效率的算法。其思想是:先选一个“标尺”, 用它把整个队列过一遍筛子, 以保证:其左边的元素都不大于它,其右边的元素都不小于它。这样,排序问题就被分割为两个子区间。 再分别对子区间排序就可以了。下面的代码是一种实现,请分析并填写划线部分缺少的代码。#include<stdio.h>void swap(int a[],int i,int

2016-04-15 11:20:54 2826

原创 蓝桥杯~凑算式

全排列生成1~9的数字然后判断是否满足条件#include<stdio.h>int ans = 0;int num[10];int visit[10];void Solve() { double sum = num[0] + (double)num[1] / num[2] + (double)(num[3]*100+num[4]*10+num[5])/(num[6]*100+

2016-04-15 11:00:26 610 1

原创 03-树2 List Leaves (25分)

在网上看到别人的代码,真心觉得写的很好#include<stdio.h>#include<ctype.h>struct Node{ int root; int left; int right;};int main(){ //create the tree int n; struct Node nodes[10]; scanf("%d",&n

2016-04-13 22:13:38 1081

原创 pat 1009

多项式乘法: 用一个数组储存相乘后的到的元素 使用double型的数组,下标表示指数,対应的值表示系数。#include<stdio.h>#include<math.h>typedef struct{ int expon; double coef;}poly;poly a[15],b[15];double ans[2008];int k1,k2,cnt=0;void In

2016-04-12 09:12:36 313

原创 Pat 1002

多项式加法~数组实现 直接贴代码了#include<stdio.h>typedef struct ploynode{ int expon; double coef;}poly;int main(){ int k1,k2; poly a[12],b[12],c[30]; int i,j,pos=0; scanf("%d",&k1); for(

2016-04-11 22:10:13 374

原创 计算机体系结构与参考模型

计算机网络分层结构 为何要采用分层结构: (1)发起通讯的计算机必须将数据通信的通道激活,所谓激活就是发送一些指令。 (2)要告诉网络如何识别接受的计算机 (3)发起通讯的计算机必须查明对方计算机是否已经开机,并且与网络连接正常 (4)发起通讯的计算机的计算机中的应用程序必须弄清楚对方的文件管理程序是否已经做好接受文件和储存文件的准备工作 (5)如果计算机文件格式不兼容,则至少其中的一台

2016-03-30 08:43:02 808

原创 计算机网络概述

一.计算机网络的概念、组成、功能计算机网络:一些相互连接的、自治的计算机的集合。计算机网络组成: (1)边缘部分:所有连接在Internet上的主机组成,用户直接使用,用来进行通讯和资源共享(2)核心部分:由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的计算机网络的功能:(1)连通性(2)资源共享二.计算机网络的分类1.按网络的作用范围分类: (1)广域网(WAN) Wide

2016-03-29 10:24:23 375

原创 回溯法~相关内容

回溯法:在递归的构建中,生成和检查过程就可以有机的结合起来,从而减少不必要的枚举排列枚举的两种方式void dfs(int index){ if(index = 9) { Solve(); return; } for(int i=1;i<10;i++) { if(!visit[i]) {

2016-03-28 11:49:16 305

原创 C ++排序函数sort(),qsort()

sort():给指定区间的所有元素进行排序example这里写代码片#include<stdio.h>#include<algorithm>using namespace std;int main(){ int a[5] = {1,5,4,2,3}; sort(a,a+5); printf("%d",a[0]); for(int i=1;i<5;i++)

2015-12-17 04:11:55 513

原创 PAT 1045 快速排序

快速排序 题目链接先用快速排序对数组进行排序,对原数组进行遍历 如果满足该数满足他是遍历过程中最大的,而且该数和排好序的数组中对应的元素相等就说名他是主元int comp(const void *a,const void *b){ return *(int *)a - *(int *)b;}qsort(arr_s,N,sizeof(int),comp)

2015-12-10 22:33:06 456

原创 1049 数据片段和

给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列{0.1, 0.2, 0.3, 0.4},我们有(0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这10个片段。给定正整数数列,求出全部片段包含的所有的数

2015-12-08 15:10:01 538

原创 07-图4 哈利波特的考试

哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。现在哈利·波特的手里有一本教材,里面列出了所有的变

2015-12-08 15:01:43 629

原创 最短路径

最短路问题的抽象.在网络中,求两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径. 这条路径就是两点之间的最短路径. 第一个顶点为源点. 最后一个顶点为终点.单源最短路问题:从某个固定点出发,求到其他所有点的最短路径问题. (有向)无权图 (有向)有权图 多源最短路问题:求任意两个顶点之间的最短路径.按照递增(非递减)的顺序找到各个顶点的最短路 无权图的单源最短路问题:dist

2015-11-23 23:47:23 376

原创 06-图1-列出连通集

给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入样例: 8 6 0 7 0 1 2 0 4 1 2 4 3 5输出样例: { 0 1 4 2 7 } { 3 5 } { 6 } { 0 1 2 7 4 } { 3 5 } { 6 }解题思路:

2015-11-20 23:13:58 431

原创

怎样在程序中表示一张图: 1.邻接矩阵表示法 2.邻接表表示法图的建立(邻接矩阵表示):#define MaxVertexNum 100#define INFINITY 65535typedef int Vertex;//用顶点的下标来表示顶点 typedef int WeightType;//边的权值设为整型 typedef char DataType;//顶点存储的数据类型为自符型

2015-11-19 23:35:16 272

原创

堆:优先队列(Priority Queue),特殊的队列,取出元素的顺序是按照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序。用完全二叉树来表示堆从根结点到任意结点路径上结点序列的有序性类型名称:最大堆(MaxHeap) 数据对象集:完全二叉树,每个结点的元素值不小于其子结点的元素值typedef struct HNode *Heap;//堆的类型定义struct HNode{

2015-11-17 22:36:23 355

原创 04-树5- Root of AVL Tree

An AVL tree is a self-balancing binary search tree,In an AVL tree,the heights of the two child subtrees of any node differ by at most one;If at any time they differ by more than one,rebalancing is done

2015-11-16 22:15:33 337

原创 平衡二叉树

平衡二叉树(AVL树): 空树,或者 任一结点左、右子树高度差的绝对值不超过1,即|BF(T)| <= 1不平衡的发现者Mar,麻烦结点Nov在发现者右子树的右边,因而叫RR插入,需要RR旋转不平衡的发现者Mar,麻烦结点Apr在发现者左子树的左边,因而叫LL插入,需要LL旋转typedef struct AVLNode *Position;typedef Position AVLTree;/

2015-11-16 17:01:29 305

原创 04_树4_判断是否为同一二叉搜索树

1.建立两棵搜索树的判别方法 2.不建树的判别方法 3.建立一棵树,再判断其他序列是否与该树一致步骤 1.搜索树的表示 2.建立搜索树 3.判断一序列是否与搜索序列一致#include<stdio.h>#include<stdlib.h>typedef struct TreeNode *Tree;struct TreeNode{ int v; Tree Left,Rig

2015-11-14 22:00:07 312

原创 高精度运算

计算两个整数在相加时需要多少次进位 123 456 555 555 123 594 0 0 样例输出 0 3 1#include<stdio.h>int main(){ int a,b; while(scanf("%d%d",&a,&b) == 2){ if(!a&&!b) break; int c =

2015-10-27 16:17:58 434

原创 03-树1 树的同构 (25分)

03-树1 树的同构 (25分) 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 现给定两棵树,请你判断它们是否是同构的。 输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),

2015-10-25 19:21:05 2015

原创 04-1 还原二叉树

给定一棵二叉树的先序遍历序列和中序遍历序列,要求二叉树的高度。我们知道先序遍历的第一个结点必然是跟结点,可以在中序遍历中找到这个根结点的位置,于是就知道在中序遍历中,根结点左边的所有结点一定属于左子树,右边的所有结点一定属于右子树求二叉树的高度。如果我们已经知道左,右子树的高度,那么树的高度就是左右子树的高度中大的加1.所以我们就可以通过递归来实现。#include<stdio.h>#includ

2015-10-24 01:28:01 560

原创 01-复杂度2 Maximum Subsequence Sum (25分)

题目链接对最大子列和的算法进行简单的判断即可#include<stdio.h>int main(){ int n; int array[100005]; int ThisSum=0,MaxSum=0; int begin=0,end=0; int left; bool allNeg = true; scanf("%d",&n); for

2015-10-23 22:28:56 432

原创 01-复杂度1 最大子列和问题 (20分)

根据求最大子列和的在线处理算法即可。#include<stdio.h>int main(){ int n; int array[100005]; int ThisSum=0,MaxSum=0; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&array[i]); }

2015-10-23 19:57:48 612

原创 多项式求导

#include<stdio.h>#include<stdlib.h>typedef struct PolyNode *Polynomial;struct PolyNode{ int coef; int expon; Polynomial link;};void Attach(int c,int e,Polynomial *pRear){ Polynomial

2015-10-23 19:43:12 727

原创 C语言进阶

把数组传入到函数中,实际上传的就是指针。数组变量是特殊的指针,数组变量本身表达指针,数组名相当于指向数组第一元素的指针数组变量之间不能互相赋值指针与const指针运算一个指针加1,减两个指针时,减得的结果不是地址之间相减,

2015-05-22 15:36:28 453

原创 12!配对

找出输入数据中所有两两相乘的积为12!的个数 输入数据中包含有一些整数n 输出所有两两相乘的积为12!的个数这里写代码片

2015-05-12 22:45:37 617

原创 列出完数

完数:是指一个数恰好等于它所有不同因子之和

2015-05-11 16:26:29 1120

原创 十进制转化为二进制

先通过对这个数不断进行除2,reverse便可得到十进制转化为二进制。

2015-05-02 20:49:34 464

原创 python面对对象

多态: 意味着对不同类的对象使用相同的操作。 封装: 对外部世界隐藏对象的工作细节 继承: 以通用的类为基础建立专门的类对象方法(method):绑定到对象特性上的函数任何不知道对象到底是什么类型,又要对对象做点什么的时候,都会用到多态,这不仅限于方法,很多内建函数都有多态的性质,考虑下面的例子>>> 1+23>>> 'Fish' + 'license''Fishlicense'继承

2015-05-02 20:47:07 528

原创 set集合容器

set集合容器实现了红黑树的平衡二叉搜索树的数据结构,在插入元素时,它会自动调整二叉树的排序,把该元素放在适当的位置,以确保每个子树根结点的键值大于左子树的键值,而小于右子树的键值;另外还得确保左子树的树高和右子树的高等相等,这样,二叉树的高等最小,从而检索速度最快,要注意的是,它不会重复插入相同的键值,而采取忽略处理。 平衡二叉树的检索使用中序遍历算法,检索效率高于vector,deque和li

2015-04-26 23:26:58 500

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除