自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 中vector的使用方法

2018-3-30在c++中,vector是一个十分有用的容器,它能够像容器一样存放各种类型的对象。 简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。实例1:vector<int>test;//建立一个vector,int为数组元素的数据类型,test为动态数组名 简单的使用方法如下:#include<iostream>#i...

2018-03-30 09:40:03 971

原创 利用vector进行图的存储

2018-3-30图的存储有多种方式,我个人比较常用的就是邻接矩阵(存储方式是用两个数组来表示图,一个一维数组存储图中顶点信息,一个二维数组存储图中的边或者弧的信息),优点就是构建起来比较方便,而且我们也可以比较方便的知道任意两点是否有边无边。缺点是如果图中边比较少这样会比较浪费我们的存储空间。但是这里我要说的是使用vector进行存图:#include<iostream>...

2018-03-30 09:26:57 4571 1

原创 USACO-Section1.4 Wormholes(枚举法)

2018-3-27看了b站上的官方视频写出来的。。。/*ID: 18795871PROG: wormholeLANG: C++*/#include<iostream>#include<algorithm>#include<fstream>using namespace std;const int MAXN = 12;int pa...

2018-03-27 20:02:31 204

原创 一个java中HashMap和HashSet的应用实例

2018-3-27老师让我们写代码实现这样的功能: 1.给你好多组关系1,23,42,31,5...表示1和2有联系,3和4有联系… 2.得到和任意一个节点有联系的所有节点 3.判断任意两个节点之间是否有联系我们可以用一个二维数组,x[i][j]为true表示i节点与j节点之间有关系,但是如果给的数特别大呢,又或者不为int类型数据呢?我们这里采用的是Hash...

2018-03-27 19:02:50 1441

原创 USACO-Section1.2 Broken Necklace (枚举法)

2018-3-25昨天晚上有人评论了我的博客,有点小激动,今天就把自己之前写的博客整理了一下,发现自己USACO里面有一道题目没有写博客…于是乎把它给补上。题目大意:给你一串项链,白色,蓝色,红色,白色可以替换为任意颜色,从某个地方,剪短该项链,问你从两边所能得到的珠子和的最大值为多少,每一边得到的珠子数为到第一个不同颜色的珠子截止(w色可以进行替换)。我们最容易想到的,就...

2018-03-25 21:11:09 181

原创 poj 1094 Sorting It All Out(拓扑排序)

2018-3-25拓扑排序的题目,需要注意的是,这里是边输入边判断的,之前有一组数据一直不知道为什么不过:A>FB>DC>EF>DD>EE>F其实当最后一个加进去的时候,应该是出现回路的,而且题目要求我们先判断回路再判断是否解不唯一。#include<iostream>#include<cstdio>...

2018-03-25 09:28:35 100

原创 poj1789 Truck History(最小生成树)

2018-3-24简单的最小生成树问题。题目大意是: 给你n个字符串,他们的distance就是串中不同字符的个数,要求算出所有串的distance’s 最小 sum ;#include<iostream>#include<cstring>#define MAX 10using namespace std;const int N = 2000, ...

2018-03-24 15:30:49 206

原创 最短路算法

2018-3-231.迪杰克斯拉算法(Dijkstra) 感觉和prim有类似的地方。。。#include<iostream>#include<cstring>#define MAX 65535using namespace std;const int N = 100;int n;int x[N+1][N+1],y[N+1],pre[N+1];...

2018-03-24 14:03:13 582

原创 蓝桥杯-算法提高-凶手 断案

2018-3-22问题描述   巴斯维克命案抓住了六个嫌疑犯,他们的口供如下:   A:我不是罪犯   B:A、C中有一个是罪犯   C:A和B说了假话   D:C和F说了假话   E:其他五个人中,只有A和D说了真话   F:我是罪犯   他们中只有一半说了真话,凶手只有一个。   本题可能有多种可能性,即正确答案(找到唯一的凶手)可能有多个,但每一个可能的答案(某一个是凶...

2018-03-22 20:42:13 1890

原创 蓝桥杯-算法提高-打水问题

2018-3-221.打水问题问题描述   N个人要打水,有M个水龙头,第i个人打水所需时间为Ti,请安排一个合理的方案使得所有人的等待时间之和尽量小。 输入格式   第一行两个正整数N M 接下来一行N个正整数Ti。   N,M<=1000,Ti<=1000 输出格式   最小的等待时间之和。(不需要输出具体的安排方案) 样例输入 7 3 3 6 1 4 2...

2018-03-22 19:55:59 936

原创 蓝桥杯-算法提高-种树

2018-3-22因为没有会员,所以并不知道写的对不对…问题描述   A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府决定沿圆形广场外圈种一圈树。园林部门 得到指令后,初步规划出n个种树的位置,顺时针编号1到n。并且每个位置都有一个美观度Ai,如果在这里种树就可以得到这Ai的美观度。但由于A城市土壤 肥力欠佳,两棵树决不能种在相邻的位置(i号位置和i+1号位置叫相邻位置。值得注...

2018-03-22 19:04:08 1861 2

原创 几种排序算法的比较

2018-3-20我花了18元从App Store里面买了Algorithms,这里面的步骤还是比较容易理解的。1.冒泡排序 冒泡排序是两两相邻的进行比较,平均时间复杂度是O(n^2),是比较稳定的排序,因为两个相等的数是不会进行交换的。#include<iostream>using namespace std;const int N = 10;int x[N...

2018-03-20 21:11:31 215

原创 strcpy、strncpy与memcpy的区别与使用方法

2018-3-19一、函数说明 1、memcpy函数void *memcpy(void *s1, const void *s2, size_t n);说明: 函数memcpy从s2指向的对象中复制n个字符到s1指向的对象中。 如果复制发生在两个重叠的对象中,则这种行为未定义。 返回值: 函数memcpy返回s1的值。2、strcpy函数char *s...

2018-03-19 10:18:50 239

原创 全排列的递归与非递归形式

2018-3-181.递归的主要思路是: n个数的全排列=(n-1个数的全排列)+(另一个数作为前缀)#include<iostream>using namespace std;const int N = 3;int x[N+1]={1,2,3};void dfs(int step,int end){ if (step==N){ for...

2018-03-18 19:03:41 343

原创 openjudge 放苹果 1664

2018-3-15这道题目老早就见过,但是在这一次写的时候又出现了 一个问题,我知道如果第n个盘子不用的话就等同于m个苹果放在n-1个盘子中,但是如果我们第n个盘子用了呢?那我们就得把所有的n个盘子里面都放一个才可以,因为我们这个是不考虑顺序的,我们必须保证得到的两个是完全没有交集的,我们不能把相同的情况计算多遍!如果说我们没有把n个盘子都放一个的话,那么我们在f(m,n-1)里面也会出现空的...

2018-03-15 21:21:09 278

原创 openjudge 逆波兰表达式 2694

2018-3-15逆波兰表达式 说实话,我觉得这个题目本身就很神奇,我在想这个题目的时候在纠结输入到底应该如何处理,后来在小伙伴的提醒之下写出了答案。 我们可以在函数里面等待输入,当输入的是运算符的时候,我会等待输入两个数字来进行运算,如果输入的还是运算符,我们可以继续等待,直至输入数字,返回结果与相应的运算符进行运算。#include<iostream>#include...

2018-03-15 21:20:07 367

原创 openjudge 二叉树 2756

2017-3-15这个题目让我们找到两个节点的最大公共节点,我们不难发现二叉树的性质,父节点的值是子节点值的1/2,利用这个特点我们可以一步步的向上找。#include<iostream>using namespace std;int x,y;int dfs(int i,int j){ if (i==j) return i; if (i>j)...

2018-03-15 21:18:33 255

原创 openjudge 菲波那契数列 2753

2018-3-15斐波那契数列 这个对我们来说应该并不陌生,f(n)=f(n-1)+f(n-2),初始化f(1)=1,f(2)=1,当n比较大的时候,我们会发现有些f(m)会被我们计算了多次,那么我们可以先将它们存到数组里,如果我们需要用的话直接去数组里面取就可以了。#include<iostream>#include<cstring>using namesp...

2018-03-15 21:17:09 827

原创 递归算法思路以及题目总结(未完待续...)

2018-3-10之前在一个网站上看到了一些递归题目的合集,题目来源是: http://bailian.openjudge.cn/, 是北京大学ACM训练和相关程序课程在线考试系统。 我先列出所有的题目编号,具体代码会在下面:题目名称/题目ID菲波那契数列 2753二叉树 2756逆波兰表达式 2694放苹果 1664红与黑 2816八皇后问题 2754木棍问题 2...

2018-03-13 15:39:21 426

原创 编写C/C++程序时如何输入包含空格的字符串

2018-3-3在C/C++中,传统的输入流scanf(“%s”,&str) 和cin>>str,遇到空格会返回空格之前的字符串。1.C语言中,可以用gets函数来接收输入的字符串(包含空格)。格式:gets(字符数组名);功能:gets函数用于将输入的字符串内容存放到指定的字符数组中,输入结尾的换行符’\n’被换成’\0’存储在该数组中。举例说明如下:...

2018-03-03 21:06:02 32485 4

原创 hdoj4710 规律题

2018-3-1题目大意比较容易理解,一开始觉得很简单,附上TLE的代码:#include<iostream>using namespace std;int t,n,a,b;int main(){ cin>>t; while (t--){ cin>>n>>a>>b; i...

2018-03-02 19:02:06 394

原创 快速幂运算 《挑战程序设计竞赛》

2018-3-1这里我就对数进行说明,并没有对矩阵进行求解。求x^n,其中n是一个比较大的数如果用一般的方法的话,我们会直接进行累乘即可,时间复杂度是O(n),但是这个好像并不能满足我们的要求,我们来分析一下:n的二进制表示是这样的, n=t1*2^k1+t2*2^k2+t3*2^k3…,其中k1,k2,k3…为0,1,2…,t1,t2…只能是0或者1,附上代码:#inc...

2018-03-01 19:10:25 234

空空如也

空空如也

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

TA关注的人

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