自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

圣托里尼的日落啊~的博客

这段时间主要用来记录保研历程~

  • 博客(66)
  • 收藏
  • 关注

转载 【哈希】 整数哈希 poj3349

参考博客题意:判断有没有两朵相同的雪花。每朵雪花有六瓣,比较花瓣长度的方法看是否是一样的,如果对应的arms有相同的长度说明是一样的。给出n朵,只要有两朵是一样的就输出有Twin snowflakes found.,如果任何两个都是不一样的输出No two snowflakes are alike。思路:哈希函数:除留余数法,(把余数看成链地址)取关键字被某个不大于哈希表表长m的数prime...

2019-06-30 22:28:12 258

原创 【散列】 字符串hash

题目来源:String Subtraction#include <iostream>#include <string>#include <cstring>using namespace std;int main(){ char s1[10010]; char s2[10010]; int hashTable[130] = {0...

2019-06-30 15:20:02 187

原创 【散列】整数散列

空间换时间直接把输入的数作为数组的下标来对这个数的性质进行统计。可以将查询的复杂度将为O(1)O(1)O(1)。但是上述策略存在一个问题,如果输入的数可能大小达到10910^9109,那么直接作为数组下标是不可以的。或者输入的是一个字符串,也不可以直接作为数组下标。散列将元素通过一个函数转换成整数,使得该整数可以尽量唯一地代表这个元素。这个转换函数就是散列函数H。也就是说,...

2019-06-30 11:08:25 203

原创 【LCS变形】 poj1080

题目来源:poj 1080思路:设dp[i][j]dp[i][j]dp[i][j]表示字符串s1的iii号位和字符串s2的jjj号位之前的字符的最大相似分值。则决定dp[i][j]dp[i][j]dp[i][j]为最优的情况有三种s1取第iii个字母,s2取第jjj个字母:dp[i][j]=dp[i−1][j−1]+score[s1[i]][s2[i]]dp[i][j] =dp[i-1...

2019-06-29 22:18:36 154

原创 【多重背包】 二进制优化 poj1276

题目来源:poj1276思路:多重背包,把总金额看作是背包的容量。简单地介绍一下二进制优化:假设数量是8,则可以把它看成是1,2,4,1的组合,即这4个数的组合包括了1-8的所有取值情况。这是为什么呢?将它们转换成二进制再观察一下:1:12:104:1001:1二进制都只有0,1。所以1,2,4已经能够组成1-7的所有情况,但是这样还不够 还要再加一个1 才能凑成8或许有人...

2019-06-29 16:14:04 255

原创 【01背包】 poj 1837 Balance

题目来源:poj 1837题目大意:一个天平,分别给出c个位置和g个钩码的质量,求解所有钩码全部放上时有多少种使天平平衡的方案,输出方案数。样例输入:2 4// 两个位置可放钩码,共四个钩码;-2 3//两个位置为平衡点左边(感性理解一下)第二格和右边第三格;3 4 5 8//四个钩码的质量;样例输出:2//有两种方案;样例解释:把四个钩码按顺序标号为1,2,3,4,则:方案...

2019-06-29 10:49:01 191

原创 【动态规划】

最长上升子序列求一个序列中最长上升子序列的长度最长公共子序列给定两个字符串A和B,求一个字符串,使得这个字符串是A和B的最长公共部分(子序列可以不连续)。最大连续子序列和给定一个数字序列A1,A2,....,AnA_1,A_2,....,A_nA1​,A2​,....,An​,求i,j(1⩽i⩽j⩽n)i,j(1 \leqslant i \leqslant j \...

2019-06-29 08:10:57 151

原创 【线性代数面试题】

什么是行列式? 参考行列式是一个函数,它可以将方阵(注意只有方阵才有行列式)映射到一个实值,他等于矩阵特征值的乘积,也就是说,他的大小可以衡量矩阵变换后空间扩大或者缩小的情况。比如:如果行列式为0那么说明空间至少沿着某一维完全收缩了,使其失去了所有体积,行列式为1则说明矩阵变换没有改变空间体积。矩阵转置 矩阵的逆以对角线为轴的镜像,手面朝向自己表示原矩阵,先翻过手背,再逆时针旋...

2019-06-29 07:24:41 5742

原创 【概率论面试整理】

转载:https://blog.csdn.net/qian2213762498/article/details/80480888什么是大数定律(LAMDA)先通俗讲再举例大数定律通俗一点来讲,就是样本数量很大的时候,样本均值和数学期望充分接近,也就是说当我们大量重复某一相同的实验的时候,其最后的实验结果可能会稳定在某一数值附近。就像抛硬币一样,当我们不断地抛,抛个上千次,甚至上万次,我们...

2019-06-27 09:01:38 11964 2

原创 【高等数学面试】

什么是行列式行列式是一个函数,它可以将方阵(注意只有方阵才有行列式)映射到一个实值,他等于矩阵特征值的乘积,也就是说,他的大小可以衡量矩阵变换后空间扩大或者缩小的情况。比如:如果行列式为0那么说明空间至少沿着某一维完全收缩了,使其失去了所有体积,行列式为1则说明矩阵变换没有改变空间体积巴拉巴拉矩阵的乘法不满足交换律、消去率,满足结合律和分配律。...

2019-06-26 09:22:32 5424

原创 机器学习面试相关知识点

回归和分类的区别 参考回归通常用来预测一个连续的输出,比如给定房间的面积,求房间的价格;预测明天的温度。一个比较常见的回归算法是线性回归(LR)。分类常用来预测一个离散值,比如贴标签。比如预测明天的天气是阴天,晴天还是雨天;判断一幅图上的动物是猫还是狗。最常见的分类方法是逻辑回归,或者叫逻辑分类。什么是线性回归什么是逻辑回归...

2019-06-26 07:55:46 322

原创 基于Doc2vec训练词向量

基于Doc2vec训练词向量

2019-06-25 13:46:42 442

原创 2018计算机学科夏令营上机考试C题--双DFS

题目来源:百练/poj 1481 The Die Is Cast#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <string>using namespace std;int col, row;const ...

2019-06-24 08:46:27 180

原创 2018计算机学科夏令营上机考试A题--计算两个日期之间的天数

题目来源: 百练 计算两个日期之间的天数#include <iostream>using namespace std;int num[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};i...

2019-06-23 20:12:59 328

原创 【拓扑排序】

有向无环图如果一个有向图的任意顶点都无法通过一些有向边回到自身,那么称这个有向图为有向无环图。拓扑序如果图中从VVV到WWW有一条有向路径,则VVV一定排在WWW之前。满足此条件的顶点序列称为一个拓扑序。拓扑排序获得一个拓扑序的过程就是拓扑排序。...

2019-06-23 15:20:03 76

原创 【最小生成树算法】 --Prim算法 poj2485

题目来源:poj 2485题意:求最小生成树中的最大边#include <iostream>#include <string>#include <cstring>using namespace std;const int maxn = 2010;int G[maxn][maxn];const int INF = 0x3fffffff;bool...

2019-06-23 14:19:37 122

原创 【最小生成树】 -- Prim算法 poj1789

题来源:poj 1789emmmm…注意松弛条件那和Dijkstra算法区分…WA了好几次…#include <iostream>#include <string>#include <cstring>using namespace std;const int maxn = 2010;int G[maxn][maxn];string str[max...

2019-06-23 14:05:11 108

原创 【最小生成树】 --Kruskal算法 poj2031

题目来源:poj 2031思路:依次计算两个球体球心之间的距离,如果距离小于或者等于两个球体半径的大小,则设两个球体的距离为0。否则为两个球体球心的距离减去两个球体半径之和。#include <iostream>#include <algorithm>#include <cmath>using namespace std;const int m...

2019-06-23 10:08:00 138

原创 【Kruskal算法】 -- poj1287

题目来源: poj 1287题意:连通一个图,找最小权值和,有重边要点:因为有重边,所以Prim算法还要取最小的边加入,而Kruskal算法可以直接忽略这个问题,因为一开始要排序,大的自动舍掉了。#include <iostream>#include <algorithm>using namespace std;const int maxn = 100;c...

2019-06-23 09:01:34 143

原创 【最小生成树】 --Kruskal算法 poj 1251

题目来源:poj 1251#include <iostream>#include <algorithm>using namespace std;const int maxn = 100;const int maxm = 5010;int n;struct edge{ int u, v; int w; edge() {} edg...

2019-06-23 08:42:48 151

原创 最小生成树算法

Prim算法:从一个根节点开始,让一颗小树慢慢长大。输入:图G=(V,E,W),V={1,2,...,n}G=(V,E,W),V=\{1,2,...,n\}G=(V,E,W),V={1,2,...,n}输出:最小生成树TTT设计思想:初始S={1}S = \{1\}S={1}选择连接SSS与V−SV-SV−S集合的最短边e={i,j}e=\{i,j\}e={i,j},其中iϵ...

2019-06-22 21:37:13 125

原创 【种类并查集】 --poj2492

题目来源: poj 2492#include <iostream>#include <algorithm>#include <cstdio>#include <map>using namespace std;const int maxn = 100010;int n, m;int father[maxn];int rel[maxn]...

2019-06-22 20:29:55 192

原创 【种类并查集】 -- poj1703

题目来源: poj 1703现在做并查集的题目好像越来越有感觉了开心。思路:#include <iostream>#include <algorithm>#include <cstdio>#include <map>using namespace std;const int maxn = 100010;int n, m;int f...

2019-06-22 19:55:15 148

原创 【种类并查集】 - poj2912

参考:参考博客#include <iostream>#include <algorithm>using namespace std;const int maxn = 50010;int n, m;struct node{ int x, y; int rel; node() {} node(int _x, int _y, int...

2019-06-21 11:14:17 159

原创 【种类并查集】--poj1182 食物链

题目来源:poj1182 参考:博客1 博客2思路:0 - 这个节点与它的父节点是同类1 - 这个节点被它的父节点吃2 - 这个节点吃它的父节点。路径压缩合并操作怎么求1’,2,3呢?1’:(3 - relation[y]) % 32:0 ?1 – d - 13:relation[x]#include <iostream>using nam...

2019-06-21 09:25:51 119

原创 【带权并查集】 -- 向量偏移 hdu3047

来源:hdu 3047 参考:有详细图解的博客#include <iostream>using namespace std;const int maxn = 50010;int n, m;int father[maxn];int sum[maxn]; //从当前结点到根节点的和int ans = 0;void init(){ for (int i = 0; ...

2019-06-20 19:44:33 149

原创 【带权并查集:区间统计】-- poj1733

题目来源:poj 1733参考:kungbin大神的解题报告思路:假如输入的[left,right]判断是同一个集合的,则奇偶性关系已经知道了。例子:加入输入的[left,right]不是同一个集合的,则需要unite。例子:如果已知[5,6]的奇偶性为偶数,[9,12]的奇偶性为奇数,新的输入为[7,12,odd]。则sum[6] = 1 ^ sum[8]^ sum[4]。...

2019-06-20 15:34:11 152

原创 【带权并查集】-- 向量偏移 hdu 3038

题目来源:hdu 3038写的很好的博客:地址sum[px]=sum[y]+value−sum[x]sum[px] = sum[y] + value - sum[x]sum[px]=sum[y]+value−sum[x]#include <iostream>using namespace std;const int maxn = 200010;int n, m;int ...

2019-06-19 21:00:38 163

原创 【带权并查集】 --hdu3635

题目来源:hdu 3635 Dragon BallsSample Input23 3T 1 2T 3 2Q 23 4T 1 2Q 1T 1 3Q 1Sample OutputCase 1:2 3 0Case 2:2 2 13 3 2note部分:在unite之前,会进行find(1)操作,此时要进行路径压缩,先找到父结点tf=father[1]...

2019-06-19 18:00:33 222

原创 【带权并查集】-- poj1988

题目来源:poj 1988 Cube Stacking#include <iostream>using namespace std;const int maxn = 30010;int father[maxn]; //父亲数组int son[maxn]; //包括第i个结点在内的其子树结点的个数int dis[maxn]; //表示第i个结点到根节点的距离/...

2019-06-18 19:48:36 167

原创 【带权并查集】

文章目录统计带权并查集在并查集的基础上,对其中的每一个元素赋有某些值。在对并查集进行路径压缩和合并操作的时候,这些权值具有一定属性,即可将他们与父结点的关系,变化为与所在树的根结点关系。统计poj 1988 Cube Stacking...

2019-06-18 19:46:42 88

原创 【简单并查集】 --poj2236

题目来源:poj 2236 Wireless Network注意:在合并时,我们只需要考虑这台电脑与之前已经修复的电脑能够通讯。设置一个vis数组。#include <iostream>using namespace std;const int maxn = 1010;int father[maxn]; //父亲数组int height[maxn]; //树的高度...

2019-06-18 15:23:10 206

原创 【并查集】

并查集的定义并查集是一种维护集合的数据结构。并查集的每一个集合都是树。它支持两个操作:合并:合并两个集合查找:判断两个元素是否属于一个集合并查集是用数组实现的。int father[i]; //father[i]表示元素i的父亲节点对同一个集合来说,只存在一个根结点,且将其作为所属集合的标识。并查集的基本操作int father[maxn]; //父亲数组...

2019-06-18 09:47:57 77

原创 【Floyd算法】 -- poj 1125

题目来源:poj 1125 股票经纪人思路:先用Floyd算法求出全局最短路径。然后遍历每一行分别求出从1到N作为第一个人开始散播消息所需时间(最长时间),再求出这些所有时间中的最短时间。#include <iostream>using namespace std;const int maxn = 110;const int INF = 0x3fffffff;int...

2019-06-18 08:46:48 177

原创 【Floyd算法】-- 求传递闭包

题目来源:poj 3660 Cow Contest题目让确定有几个人的位置是确定的,如果一个点有x个点能到达此点,从该点出发能到达y个点,若x+y=n−1x+y=n-1x+y=n−1,则该点的位置是确定的。用Floyd算法算出每两个点之间的距离,最后统计时,若dis[a][b]dis[a][b]dis[a][b]之间无路且dis[b][a]dis[b][a]dis[b][a]之间无路,则该点位置...

2019-06-17 21:20:43 405

原创 【SPFA算法】 -- 差分约束系统

题目来源: poj 3169 Layout思路:#include <iostream>#include <vector>#include <algorithm>#include <queue>using namespace std;const int maxn = 10010;const int INF = 0x3fffffff;...

2019-06-17 19:39:31 174

原创 【最短路径算法】 -- SPFA(Shortest Path Faster Algorithm)

SPFA是优化的Bellman-Ford算法Bellman-Ford算法每轮操作都要遍历所有的边,这其中有许多无效的操作。只有当某个顶点u的d[u]值改变时,从它出发的边的邻接点v的d[v]值才有可能被改变。SPFA算法的伪代码queue<int> q;源点s入队;while(队列非空){ 取出队首元素; for(u的所有邻接边u->v) { if(...

2019-06-17 10:10:57 287

原创 【Dijkstra算法】-- 复杂建图 poj 2502 Subway

题目来源:poj 2502 Subway思路:计算任意两个站点之间的距离。但是这里有地铁距离和步行距离,先计算地铁距离,即一条地铁线的点之间所需时间,再计算所有点之间的步行时间,与之前算的地铁距离作比较,取小的那个。#include <iostream>#include <cmath>using namespace std;const int maxn = ...

2019-06-17 09:49:14 133

原创 【Bellman-Ford算法】--判断正环poj 2240套利

题目来源: poj 2240此题与poj1860相似。#include <iostream>#include<string>#include <map>using namespace std;const int maxn = 40;const int maxm = 10000;struct node{ int u, v; d...

2019-06-16 21:43:30 353

原创 【Bellman-Ford算法】--判断是否存在正环(求最长路径)

题目来源:poj 1860#include <iostream>using namespace std;const int maxn = 1010;const int maxm = 110;struct edge{ int u; int v; double rate; double cost;} edge[2 * maxm];int N...

2019-06-16 20:37:58 788

空空如也

空空如也

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

TA关注的人

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