自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STL中的全排列函数实现全排列

使用方法 头文件:#inlcude<algorithm>这里先说两个概念:“下一个排列组合”和“上一个排列组合”,对序列 {a, b, c},每一个元素都比后面的小,按照字典序列,固定a之后,a比bc都小,c比b大,它的下一个序列即为{a, c, b},而{a, c, b}的上一个序列即为{a, b, c},同理可以推出所有的六个序列为:{a, b, c}、{a, c, b}、{b, a, c}、{b, c, a}、{c, a, b}、{c, b, a},其中{a, b, c}没有上一个元

2020-09-30 21:17:40 255

原创 7-4 畅通工程之局部最小花费问题 (35分) 迪杰斯特拉算法

算法思想:可取图中任意一个顶点V作为生成树的根,之后若要往生成树上添加顶点W,则在顶点V和W之间必定存在一条边。并且该边的权值在所有连通顶点V和W之间的边中取值最小。7-4 畅通工程之局部最小花费问题 (35分)某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请

2020-09-30 20:43:33 329

原创 图的各种操作

#include<iostream>#include<string.h>using namespace std;int visit[10001];int k;typedef struct EdgeNode//边表结点{ int adjvex;//结点下标 int weight;//结点权值 EdgeNode *next;//next指针} Enode;typedef struct VertexNode{ int data;//顶点数

2020-09-30 19:13:26 101

原创 汤圆の拯救计划-BFS(DFS会超时)

Description又到了汤圆星球一年一度的汤圆节了,但是大魔王却过来把汤圆公主抓走了Σ( ° △ °|||)︴身为汤圆骑士的QAQ蒟蒻自然而然的肩负着拯救汤圆的使命QAQ蒟蒻经历了千辛万苦(并没有)之后,来到了大魔王的城堡,根据情报,汤圆公主就被大魔王放在城堡内,然后QAQ蒟蒻发现自己是一个路痴,所幸的是他拿到了大魔王的城堡的地图,而且在这上面标注了自己和汤圆公主的位置,那么问题来了,聪明的你能帮他计算出需要多少单位的时间来赶到汤圆公主的位置吗?Ps:QAQ蒟蒻每一次都可以移动到相邻的非墙的

2020-09-28 22:34:47 176

原创 Divples .Gym - 102302B

这道题如果直接暴力一定会超时。这个时候可以利用sqrt缩减范围,然后求出另一部分,可以极大的简化代码运行时间。#include <bits/stdc++.h>using namespace std;long long x[2000001];int main(){ long long a,b; cin>>a>>b; int cnt=0; int t=sqrt(a); if(a%b==0) {

2020-09-26 22:54:36 94

原创 7-12 拯救007 (25分)第二个点第三个点

第一个点一定要特判!!!因为是一个圆,而不是一个点若没有特判,第三个点和第二个点会出错7-12 拯救007 (25分)在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑袋跳上岸去!(据说当年替身演员被最后一条鳄鱼咬住了脚,幸好穿的是特别加厚的靴子才逃过一劫。)设鳄鱼池是长宽为100米的方形,中心坐标为 (0, 0),且东北角坐标为 (50, 50)。池心岛是以 (0,

2020-09-25 20:24:11 314

原创 7-8 愿天下有情人都是失散多年的兄妹 (25分)

7-8 愿天下有情人都是失散多年的兄妹 (25分)呵呵。大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人、父母、祖父母、曾祖父母、高祖父母)则不可通婚。本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚?输入格式:输入第一行给出一个正整数N(2 ≤ N ≤10​4​​),随后N行,每行按以下格式给出一个人的信息:本人ID 性别 父亲ID 母亲ID其中ID是5位数字,每人不同;性别M代表男性、F代表女性。如果某人的父亲或母亲已经不可考,则相应的ID位置上标记为-1。接下

2020-09-25 16:43:03 1448

原创 迷宫

Description一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方向任意走一步,并且有些格子是不能走动,求从起点到终点经过每个格子至多一次的走法数。Input第一行一个整数T 表示有T 组测试数据。(T <= 110)对于每组测试数据:第一行两个整数n, m,表示迷宫有n * m 个格子。(1 <= n, m <= 6, (n, m) !=(1, 1) ) 接下来n 行,每行m 个数。其中第i 行第j 个数是0 表示第i

2020-09-24 20:24:45 565

原创 7-11 图着色问题 (25分)

图着色问题是一个著名的NP完全问题。给定无向图G=(V,E),问可否用K种颜色为V中的每一个顶点分配一种颜色,使得不会有两个相邻顶点具有同一种颜色?但本题并不是要你解决这个着色问题,而是对给定的一种颜色分配,请你判断这是否是图着色问题的一个解。输入格式:输入在第一行给出3个整数V(0<V≤500)、E(≥0)和K(0<K≤V),分别是无向图的顶点数、边数、以及颜色数。顶点和颜色都从1到V编号。随后E行,每行给出一条边的两个端点的编号。在图的信息给出之后,给出了一个正整数N(≤20),是待检

2020-09-23 17:24:04 1090

原创 图的基本存储的基本方式四

图的基本存储的基本方式四Description解决图论问题,首先就要思考用什么样的方式存储图。但是小鑫却怎么也弄不明白如何存图才能有利于解决问题。你能帮他解决这个问题么?Input多组输入,到文件结尾。每一组第一行有一个数n表示n个点。接下来给出一个n*n的矩阵 表示一个由邻接矩阵方式存的图。矩阵a中的元素aij如果为0表示i不可直接到j,1表示可直接到达。之后有一个正整数q,表示询问次数。接下来q行每行有一个询问,输入两个数为a,b。注意:点的编号为0~n-1,2<=n<=5

2020-09-23 15:06:44 187

原创 数据结构实验之栈与队列二:一般算术表达式转换成后缀式

#include<iostream>#include<stdio.h>#include<string.h>#include<stack>using namespace std;int main(){ //a*b+(c-d/e)*f# char s[10000]; cin.getline(s,'#'); int len=strlen(s); stack<char>mystack; for(.

2020-09-19 21:15:51 68

转载 神,上帝以及老天爷(错排问题)

错位排列:第一步,错排第一号元素(将第一号元素排在k位置),有n-1种方法。第二步,错排其余n-1个元素。紧接第一步的结果,若第一号元素落在第k个位置,第二步就先把K排好1、 k 号元素排在第1个位置,留下的 n - 2 个元素在与它们的编号集相等的位置集上“错排”,有 f(n -2) 种方法;2、 k 号元素不排第 1 个位置,这时可将第 1 个位置“看成”第 k 个位置(也就是说本来准备放到k位置为元素,可以放到1位置中),于是形成(包括 k 号元素在内的) n - 1 个元素的“错排”,有 .

2020-09-19 19:55:56 122

原创 二叉树的各种操作汇总

#include<iostream>#include<string.h>using namespace std;struct node{ char data; node *lchild,*rchild;};//dbgeafc//dgebfcanode *creatTree()//一行建立二叉树{ node *root; top++; if(a[top]==',') return NULL; else

2020-09-19 19:32:49 122

原创 如何避免使用gets函数与输入一个字符串

在刷题的时候,总会遇到让你输入一行字符串(未知字符串个数)getline与cin.getline前者在string中,后者在istream中都是输入一行字符串默认遇到回车结束cin.ignore( 5, 'c' );//忽略前5个字符除非遇到字符'c',而停止忽略字符cin.getline(<字符数组chs>,<读取字符的个数n>,<终止符>)cin.getline(c,10,'#');getline(cin,s[i]);//s[i]是字符串类型.

2020-09-18 17:32:30 395

原创 Daydreaming Stockbroker

#include<iostream>using namespace std;int main(){ long long a[10001]; int n; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; long long v=100; long long num=0; for(int i=0;i<n-1;i++) { if(a.

2020-09-17 22:10:07 99

原创 PTA 7-2 旅游规划 (25分)

#include <iostream>using namespace std;int v1,v2,w;int n,m,s,d;int j,i,l;int arcs[1501][1501];int len[1501][1501];int vexnum,arcnum;#define maxint 999999int main(){ ios::sync_with_stdio(false); cin.tie(0); int z; cin>&gt.

2020-09-16 17:48:42 431

原创 C++中的STL中map用法

https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html

2020-09-16 15:19:42 80

原创 C++中set库

set的各成员函数列表如下:begin()–返回指向第一个元素的迭代器clear()–清除所有元素count()–返回某个值元素的个数empty()–如果集合为空,返回trueend()–返回指向最后一个元素的迭代器equal_range()–返回集合中与给定值相等的上下限的两个迭代器erase()–删除集合中的元素find()–返回一个指向被查找到元素的迭代器get_allocator()–返回集合的分配器insert()–在集合中插入元素

2020-09-16 15:17:57 680

原创 C++利用递归实现快速排序

#include using namespace std;void qsort(int a[],int left,int right){int i,j;i=left,j=right;int temp;temp=a[left];if(left>=right)return;while(i<j){while(a[j]>=temp&&i<j)j–;a[i]=a[j];while(a[i]<=temp&&i<j)i++

2020-09-12 12:57:25 207

原创 C++中的queue函数与vector

queue<(结构体的名字)> (你定义的队列名字);直接可以用的函数:empty(); 如果队列空则返回真push( (这个里面加入你需要加入的元素或者结构体) ); 在末尾加入一个元素front(); 返回第一个元素back();返回最后一个元素pop(); 删除第一个元素size();返回队列中元素的个数下面是一个层次遍历二叉树的例子:void cengcibianli(node *t){ if(t==NULL) return

2020-09-11 20:02:58 1652

原创 C++中对cin加速

ios::sync_with_stdio(false);cin.tie(0);在开头加上这个后能加速cin,不能与stdio混用

2020-09-10 18:51:14 317

空空如也

空空如也

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

TA关注的人

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