- 博客(16)
- 收藏
- 关注
原创 大数据MapReduce(Java实现)
一、MapReduce流程分析Map的任务是将大任务转换成小任务,Reduce是汇总的意思注意:1、所有的输入和输出都是key-value类型,总共四对2、key2 value2和key3 value3数据类型一致,value3是一个集合,集合中的每个元素是value2k1 value分别是偏移量和输入的数据 k2 value2是进行分词后的单词和频率 k3 value3 ,v...
2018-09-09 14:24:24
1299
原创 大数据基础入门总结
一、大数据的本质: (1):数据的存储:分布式文件系统(多台机器进行分布式存储) (2):数据的计算:分布式计算也指的就是hadoop中的hdfs来解决大数据的存储问题,hdfs的结构是由一个管理员NameNode名称节点和多个DataNode组成的一个hdfs,搭建这个集群最少需要三台机器,我是搭建了3台linux机器解决的问题:使用分布式文件系统能够解决的问题,能...
2018-09-09 13:53:28
800
原创 爬虫爬取股票信息
反爬虫的几种有效的方法:1:伪装成浏览器的头部什么意思呢?它的意思是因为很多网站会识别User-Agent这个参数,如果不更换报头的话,很容易就会知道这个不是人为的查看网页,因为不改User-Agent这个参数就会显示出屎python进行访问页面,一般网站都会进行限制2:随机生成UA,因为如果不进行更换报头浏览器的话,因为爬虫的速度,不到几页就会被网站终止,所以我们需要进行模拟更换浏览
2017-12-11 20:38:58
1315
原创 Carmichael Numbers (快速幂 + 筛法)
#include#include#includelong long int arr[65010];void make(){ arr[1] = 1; memset(arr , 0 , sizeof(arr)); for(int i = 2 ; i < 65010 ; i++){ if(arr[i] == 0){ for(int j = i + i ; j < 65010 ;
2017-08-26 22:37:46
334
原创 Prime Gap(素数表+二分法)
点击打开链接这道题目一开始做感觉挺难的,老是超过时间限制,后来用素数表+二分法过#include#includeusing namespace std;#define MAXN 1299800int arr[MAXN],a[MAXN]; int tot = 0;void init(){ memset(arr , 0 ,sizeof(arr)); a[1] = 1; for
2017-08-26 22:22:13
500
原创 畅通工程
点击打开链接这道题求得是联通村庄间需要的最小的费用首先呢,我认为村庄联通不能重叠,意思就是不能成环吧,就是父节点不能一样,接着是用prim算法解决形成n - 1条边,sort排序#include#include#includeusing namespace std;struct student{ int a; int b; int money;}node[1005]
2017-08-26 15:12:57
288
原创 More is better&&The Suspects
这两道题非常相似,都是计算一个联通中所有节点的个数,只需要在find中加个计算就可以了#includeint parent[10000005];int num[10000005];int find(int x){ if(x != parent[x]) parent[x] = find(parent[x]); return parent[x];}void Merge(int a
2017-08-26 15:09:47
242
原创 Farm Irrigation
这题为并查集的联通问题,主要找到能否联通Merge的条件就可以解决#include#include#includeusing namespace std;int parent[2600];struct student{ int up; int left; int down; int right;}node[60][60];int find(int x){ if(x !=
2017-08-26 15:04:26
302
原创 Find them, Catch them
该题为种类并查集#include #include using namespace std;#define N 112345int pre[N];int Find(int x){ if(x!=pre[x]) pre[x]=Find(pre[x]); return pre[x];}void mix(int x,int y){ x=Find
2017-08-26 15:03:03
330
原创 01背包,完全背包,多重背包
01背包:有N件物品和一个容量为V的背包,每种物品均只有一件。第i件物品的费用是c[i],价值为V[i]。求解将哪些物品装入装入背包可使价值总和最大完全背包:有N种物品和一个容量为V的背包,每种物品都可以无限件的使用,第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包的容量,且价值总和最大。多重背包:有N种物品和一个容量为v的背包,第i种物品
2017-08-24 17:17:26
339
原创 Common Subsequence(相同字符的总数dp)
点击打开链接#include#include#includeint m[1005][1005];int max(int a,int b){ int max; max = a >= b ? a : b; return max;}int main(){ int length1,length2; char str1[1005],str2[1005]; while(~scanf
2017-08-24 16:03:12
294
原创 递增数列最长(dp)
题目:点击打开链接#include#include#includeusing namespace std;int main(){ int n,temp,max1; int a[1010],d[1010]; while(~scanf("%d",&n)){ max1 = 0; if(n == 0) break; memset(a , 0 , sizeof(a));
2017-08-24 15:42:33
388
原创 数塔(dp)
题目:点击打开链接#include#include#includeusing namespace std;int main(){ int T,n; int a[105][105],aux[105][105]; while(~scanf("%d",&T)){ while(T--){ scanf("%d",&n); memset(a , 0 , sizeof(a));
2017-08-24 14:59:46
265
原创 快速排序,归并排序
#includevoid _partition(int arr[],int l,int mid,int r){ //归并的核心代码int aux[r - l + 1];//辅助的数组,演示的下面的示例//aux的赋值,aux是冲0开始的,但是arr不是从0开始的,因为递归传上来的数,不已定是从0开始的,先左到n,在左右到n递归,所以不一定l就是为0for(int i = l
2017-07-18 22:36:13
295
原创 n*n基础排序算法
基础的排序算法(选择排序,插入排序)与希尔排序基础(o(n * n))时间复杂度的算法:优点1:编码简单,易于实现,是一些简单情景首选2:可以利用基础算法衍生出复杂的排序算法选择排序主要是每一次找最小即可,每次从后一位找出最小的再交换位置即可核心代码#includeselectSort(int arr[],int n){for(int i = 0 ; i
2017-07-18 22:32:15
575
原创 发表的第一个程序
#include//该函数是归并排序的核心代码void _merge(int arr[],int l,int mid,int r){ int aux[r - l + 1];//开辟辅助区间 for(int i = l ; i <= r ; i++){ //将arr中所有内容赋值到aux中,注意偏移量,aux数组是从0开始的 aux[i - l] = arr[i]; } int i
2017-07-13 12:36:22
264
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人